hive有三种安装方式:本地模式、单用户模式、多用户模式。
本地模式中依赖本地derby数据库,单用户和多用户模式依赖mysql数据库。
开始安装
1、准备安装节点
192.168.25.101 node01 //安装mysql服务
192.168.25.102 node02 //安装hive
2、安装mysql
yum install mysql-server -y
解决yum安装没有可用包https://www.cnblogs.com/yowamushi/p/8043054.html
修改mysql权限:
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123’ WITH GRANT OPTION;
flush privileges;
3、解压apache-hive-1.2.1-bin.tar.gz
tar -xzvf apache-hive-1.2.1-bin.tar.gz -C 目标文件夹
4、配置hive-site.xml文件
将hive-default.xml.template更改为hive-site.xml
文件中配置为:
hive.metastore.warehouse.dir指定元数据存放文件夹
javax.jdo.option.ConnectionURL指定mysql的url地址
javax.jdo.option.ConnectionDriverName指定mysql连接驱动
javax.jdo.option.ConnectionUserName指定mysql用户名
javax.jdo.option.ConnectionPassword指定mysql登录密码
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node01/hive_remote?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
</property>
5、配置环境变量
export HIVE_HOME=/opt/hive
PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin:
Z
O
O
K
E
E
P
E
R
H
O
M
E
/
b
i
n
:
ZOOKEEPER_HOME/bin:
ZOOKEEPERHOME/bin:HIVE_HOME/bin
export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export HADOOP_HOME=/opt/hadoop
export HIVE_HOME=/opt/hive
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$HIVE_HOME/bin
6、将mysql驱动包mysql-connector-java-5.1.32-bin.jar拷贝到hive安装包lib下
mv mysql-connector-java-5.1.32-bin.jar /opt/hive/lib
7、node02节点中执行hive命令(需打开hadoop,才会执行hive成功)
若出现下面错误
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.TerminalFactory.create(TerminalFactory.java:101)
错误的原因: Hadoop jline版本和hive的jline不一致
将当期hive中的jline文件覆盖hadoop中的jline文件即可