Hive集群搭建
- 配置hadoop集群,参见hadoop-3.0.0集群搭建。hive只需在一个节点配置即可,例如
master
节点 - 下载Hive
wget -c http://ftp.riken.jp/net/apache/hive/hive-2.3.2/apache-hive-2.3.2-bin.tar.gz
- 解压
tart -zxvf apache-hive-2.3.2-bin.tar.gz -C /usr/java/
- 配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export HADOOP_HOME=/usr/java/hadoop-3.0.0
export PATH=$HADOOP_HOME:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HIVE_HOME=/usr/java/apache-hive-2.3.2-bin
export PATH=$HIVE_HOME/bin:$PATH
- 立即生效
source /etc/profile
- 安装mysql,参看mysql安装配置
- 新建hdfs文件
hdfs dfs -mkdir -p /home/wujinlei/hive/warehouse
conf
下新建hive-site.xml
,添加如下配置
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>wujinlei</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/home/wujinlei/hive/warehouse</value>
</property>
</configuration>
lib
文件夹下下载jdbc
jar包
wget -c http://central.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar
Mysql
数据库初始化
schematool -dbType mysql -initSchema
-
启动hive
- 方式一:启动hiveserver2
hiveserver2
ps:如果提示log4j重复,删除其中的一个log4j jar包即可。如果提示没有hbase,安装hbase设置/etc/profile即可。 访问hive web页面:http://192.168.56.101:10002/
- 启动完
hiveserver2
之后,使用beeline
连接hive
beeline !connect jdbc:hive2://master:10000
也可以执行如下命令:
beeline -u jdbc:hive2://master:10000 -n wujinlei -p wujinlei --verbose=true
如果报错如下
Error: Could not open client transport with JDBC Uri: jdbc:hive2://master:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: wujinlei is not allowed to impersonate wujinlei (state=08S01,code=0)
需要在hadoop的
core-site.xml
配置文件里面加入如下配置:<property> <name>hadoop.proxyuser.wujinlei.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.wujinlei.hosts</name> <value>*</value> </property>
如不报错,继续输入用户名
wujinlei
,密码wujinlei
,登录成功之后,即可执行HQL
命令。例如:show databases;
- 方式二
hive
执行
HQL
命令。