目录
- 一、安装环境
- 二、下载Hive
- 三、解压gzip包
- 四、创建mysql hadoop用户
- 五、配置mysql connector依赖
- 六、Hive配置
- 七、初始化Hive元数据
- 八、检查Hive安装结果
- 九、遇到的问题
一、安装环境
系统版本:CentOS 7.3
系统账户:hadoop账户(之前安装hadoop使用的账户)
mysql版本:5.7.30
hadoop:3.2.1
Hive版本:3.1.2
二、下载Hive
Hive默认使用derby库,但实际使用数据库常为mysql,因此使用mysql作为hive元数据库,因此需先安装mysql。可参考Linux —— CentOS 7 安装并配置mysql5.7。
下载Hive镜像,Hive镜像站:https://mirrors.cnnic.cn/apache/hive/
可以下载完后使用 lrzsz 上传也可以直接wget下载我使用的是直接下载后上传的方式,下面是使用wget的方式。
选中想要下载的Hive版本,这里下载的是hive-3.1.2,然后拼接下载url。
将文件名拼接到url后即为所需下载url地址。
wget https://mirrors.cnnic.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
三、解压gzip包
tar -zxvf apache-hive-3.1.2-bin.tar.gz
cd apache-hive-3.1.2-bin/
四、创建mysql hadoop用户
mysql -u root -p
grant all on *.* to hadoop@'localhost' identified by 'hadoop';
grant all on *.* to hadoop@'%' identified by 'hadoop';
grant all on *.* to hadoop@'master' identified by 'hadoop';
flush privileges;
create database hive_13;
quit;
Tips:这里可能会出现一下情况,解决方法参考 九、遇到的问题——第2小点
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
五、配置mysql connector依赖
mysql java connector:官网下载地址
下载完后使用 lrzsz的rz命令 上传到linux服务器,然后解压。
tar -zxvf mysql-connector-java-5.1.49.tar.gz
cd mysql-connector-java-5.1.49/
sudo cp mysql-connector-java-5.1.49.jar /home/hadoop/apache-hive-3.1.2-bin/lib
六、Hive配置
- hive-site.xml配置
cd conf/
vim hive-site.xml
<?xml version&#61;"1.0" encoding&#61;"UTF-8" standalone&#61;"no"?>
<?xml-stylesheet type&#61;"text/xsl" href&#61;"configuration.xsl"?>
<configuration><property><name>datanucleus.schema.autoCreateAll</name><value>true</value></property><property><name>hive.metastore.local</name><value>true</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive_13?characterEncoding&#61;UTF-8&useSSL&#61;false</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hadoop</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hadoop</value></property>
</configuration>
- hive-log4j2.properties配置
cp hive-log4j2.properties.template hive-log4j2.properties
mkdir /home/hadoop/apache-hive-3.1.2-bin/logs
vim hive-log4j2.properties
hive.log.dir&#61;/home/hadoop/apache-hive-3.1.2-bin/logs
- hive-env.sh配置
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
export JAVA_HOME&#61;XXXXXXXX
HADOOP_HOME&#61;XXXXXXX
export HIVE_CONF_DIR&#61;hive根目录/conf
- hive-exec-log4j2.properties配置
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
- 环境变量配置
vim ~/.bash_profile
export HIVE_HOME&#61; hive根目录XXXX
export PATH&#61;$PATH:$HIVE_HOME/bin
七、初始化Hive元数据
./schematool -initSchema -dbType mysql
Tips:
如果出现org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver&#xff0c;请检查connector jar包是否已放入hive根目录/lib下。
如果出现Error: Syntax error: Encountered “” at line 1, column 64. (state&#61;42X01,code&#61;30000)&#xff0c;请检查 hive-site.xml 命名是否正确。
八、检查Hive安装结果
sudo bin/hive
启动成功命令行将变为 hive>
输入 show databases; 显示结果如下代表安装完成。
九、遇到的问题
-
wget下载卡住
由于中途网络波动导致wget卡在79%处。
解决方法&#xff1a;crtl &#43; z&#xff08;不要输成crtl &#43; c&#xff09;之后下使用 wget -c url地址 进行断点续传。
-
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这主要是mysql5.7默认密码策略要求密码为字母&#43;数字&#43;特殊字符且长度8位或以上&#xff0c;解决方法参考https://blog.csdn.net/weixin_41485724/article/details/105843885——文章第6点
-
遇到java.lang.NoSuchMethodError
请参考这篇文章&#xff1a;http://www.bubuko.com/infodetail-3286965.html
-
使用Hive中出现一堆 SSL 相关 WARN
WARN: Establishing SSL connection without server&#39;s identity verification is not recommended. According to MySQL 5.5.45&#43;, 5.6.26&#43; and 5.7.6&#43; requirements SSL connection must be established by default if explicit option isn&#39;t set.
For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#39;false&#39;.
You need either to explicitly disable SSL by setting useSSL&#61;false, or set useSSL&#61;true and provide truststore for server certificate verification.
由于mysql5.5.45&#43;,5.6.25&#43;,5.7.6&#43;需要SSL连接&#xff0c;如果不设置mysql连接参数useSSL&#61;false就会不断出现&#xff0c;解决方法为在mysql连接url后面加上useSSL&#61;false参数。
- Unexpected character ‘&#61;’ (code 61); expected a semi-colon after the reference for entity &#39;useUnicode
Xml文件中不能使用&&#xff0c;要使用他的转义 & amp;&#xff08;去掉&与a间空格&#xff09;来代替&#xff0c;在hive-site.xml中将&修改为 & amp;&#xff08;去掉&与a间空格&#xff09;。