一、安装hive
组件安排如下:
172.16.57.75 bd-ops-test-75 mysql-server172.16.57.77 bd-ops-test-77 Hiveserver2 HiveMetaStore
1.安装hive
在77上安装hive:
# yum install hive hive-metastore hive-server2 hive-jdbc hive-hbase -y
在其他节点上可以安装客户端:
# yum install hive hive-server2 hive-jdbc hive-hbase -y
2.安装mysql
yum方式安装mysql:
# yum install mysql mysql-devel mysql-server mysql-libs -y
启动数据库:
# 配置开启启动# chkconfig mysqld on# service mysqld start
安装jdbc驱动:
# yum install mysql-connector-java# ln -s /usr/share/java/mysql-connector-java.jar /usr/lib/hive/lib/mysql-connector-java.jar
设置mysql初始密码为bigdata:
# mysqladmin -uroot password 'bigdata'
进入数据库后执行如下:
CREATE DATABASE metastore;USE metastore;SOURCE /usr/lib/hive/scripts/metastore/upgrade/mysql/hive-schema-1.1.0.mysql.sql;CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'localhost';GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%';FLUSH PRIVILEGES;
注意:创建的用户为 hive,密码为 hive ,你可以按自己需要进行修改。
修改 hive-site.xml 文件中以下内容:
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://172.16.57.75:3306/metastore?useUnicode=true&characterEncoding=UTF-8</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property>
3.配置hive
修改/etc/hadoop/conf/hadoop-env.sh,添加环境变量 HADOOP_MAPRED_HOME,如果不添加,则当你使用 yarn 运行 mapreduce 时候会出现 UNKOWN RPC TYPE 的异常
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
在 hdfs 中创建 hive 数据仓库目录:
hive 的数据仓库在 hdfs 中默认为 /user/hive/warehouse,建议修改其访问权限为 1777,以便其他所有用户都可以创建、访问表,但不能删除不属于他的表。
每一个查询 hive 的用户都必须有一个 hdfs 的 home 目录( /user 目录下,如 root 用户的为 /user/root)
hive 所在节点的 /tmp 必须是 world-writable 权限的。创建目录并设置权限:
# sudo -u hdfs hadoop fs -mkdir /user/hive# sudo -u hdfs hadoop fs -chown hive /user/hive# sudo -u hdfs hadoop fs -mkdir /user/hive/warehouse# sudo -u hdfs hadoop fs -chmod 1777 /user/hive/warehouse# sudo -u hdfs hadoop fs -chown hive /user/hive/warehouse
修改hive-env设置jdk环境变量 :
# vim /etc/hive/conf/hive-env.shexport JAVA_HOME=/opt/programs/jdk1.7.0_67
启动hive-server和metastore:
# service hive-metastore start# service hive-server2 start
4、测试
$ hive -e'create table t(id int);'$ hive -e'select * from t limit 2;'$ hive -e'select id from t;'
新闻热点
疑难解答