文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州
▲ 本章节目的
⚪ 了解HIve的安装概念;
⚪ 掌握HIve安装步骤和Linux常用命令;
⚪ 掌握HIve安装的连接池jar包冲突和日志打印jar包冲突;
⚪ 掌握HIve安装的Hadoop安装配置;
⚪ 掌握HIve安装的JDK安装配置;
⚪ 掌握HIve安装的MySQL安装配置;
⚪ 掌握HIve安装的Hive的元数据库初始化和启动;
⚪ 掌握HIve安装的指定Hive运行日志生成路径;
⚪ 掌握HIve安装的Hive参数配置原则;
一、安装
1. 概述
1. Hive是基于Hadoop来使用的(基于HDFS来存储,基于Hadoop YARN来执行),所以Hive的版本要受Hadoop版本的影响。
2. 到目前为止,Hadoop2.X支持Hive1.X和Hive2.X版本,Hadoop3.X支持Hive3.X。
3. Hive在安装过程中还需要改变元数据库。
a. 在Hive中,同样需要建库建表,这个时候产生的库名、表名、字段名、分区名、分桶信息、函数、数据类型等信息都属于元数据,这些数据是用于描述Hive中数据的特点,统称为元数据。
b. Hive的元数据是维系在关系型数据库中的(Hive管理的数据存储在HDFS上,Hive的元数据存储在数据库中)。
c. 到目前为止,Hive1.X和Hive2.X的元数据库只支持两种:Derby和MySQL。Hive3.X的元数据库还支持Oracle等数据库。如果不指定,无论是Hive的哪一个版本,都默认使用Derby(微型,单连接)来作为元数据库,就意味着Hive每次都只能允许一个用户连接,因此需要更换Hive的元数据库。
2. 安装步骤
1. 要求云主机或者虚拟机上必须先安装好Hadoop3.1.3+JDK1.8;要求硬件环境内存不少于3G。
2. 进入/home/software,下载或者上传Hive的安装包。
cd /home/software/
#云主机下载地址
wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/apache-hive-3.1.2-bin.tar.gz
3. 解压安装包。
tar -xvf apache-hive-3.1.2-bin.tar.gz
4. 重命名。
mv apache-hive-3.1.2-bin hive-3.1.2
5. 配置环境变量。
vim /etc/profile
#在文件尾部添加
export HIVE_HOME=/home/software/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
#保存退出,重新生效
source /etc/profile
#测试是否配置正确
hive --version
6. 解决连接池的jar包冲突。
cd /home/software/hive-3.1.2/lib
rm -rf guava-19.0.jar
cp /home/software/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar ./
7. 解决日志打印的jar包冲突。
mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.bak
8. Centos7中自带了残缺的MySQL发行版mariadb,需要先卸载残缺的mariadb。
rpm -qa | grep -i mariadb | xargs rpm -ev --nodeps
9. 卸载其他的MySQL。
rpm -qa | grep -i mysql | xargs rpm -ev --nodeps
10. 删除MySQL卸载遗留的文件。
find / -name mysql | xargs rm -rf
find / -name my.cnf | xargs rm -rf
cd /var/lib
rm -rf mysql
11. 下载或者上传MySQL的安装包。
cd /home/software/
#云主机的下载地址。
wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
12. 解压MySQL的安装包。
tar -xvf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
13. 安装MySQL,注意安装顺序,不能调换。
rpm -ivh mysql-community-common-5.7.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.33-1.el7.x86_64.rpm
14. 启动MySQL。
systemctl start mysqld
15. 第一次安装MySQL的时候,会产生初始的密码,如果需要登录MySQL,那么首先需要去查看这个初始密码。
grep 'temporary password' /var/log/mysqld.log
16. 登录MySQL。
mysql -u root -p
#将初始密码输入
#注意:在MySQL5.7中,密码策略相对比较复杂,要求密码中至少包含12个字符,必须包含至少1个小写字母,1个大写字母,1个数字以及1个特殊符号
#更改MySQL的密码策略
set global validate_password_length=4;
set global validate_password_policy=0;
#修改MySQL的密码
set password for 'root'@'localhost' = 'root';
17. 配置MySQL的远程登录。
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
quit;
18. 重启MySQL。
systemctl restart mysqld
19. 进入Hive的配置目录。
cd /home/software/hive-3.1.2/conf
20. 编辑文件。
vim hive-site.xml
#添加内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--指定Hive的元数据库,默认值是derby-->
<property>
<name>hive.metastore.db.type</name>
<value>mysql</value>
</property>
<!--MySQL的连接地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive?useSSL=false</value>
</property>
<!--指定MySQL的驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--指定MySQL的用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--指定MySQL的连接密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<!--指定元数据的存储目录-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!--对元数据进行校验验证-->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--Hive采用的序列化框架是Thrift-->
<!--配置Thrift的连接地址-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop01:9083</value>
</property>
<!--配置Thrift服务器的连接端口号-->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<!--配置Thrift要绑定的服务器-->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop01</value>
</property>
<!--自动认证-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!--如果没有对应的元数据表,那么是否自动建立-->
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
</configuration>
21. 下载MySQL的驱动jar包。
cd ../lib
wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/mysql-connector-java-5.1.27.jar
22. 修改Hadoop的配置。cd /home/software/hadoop-3.1.3/etc/hadoop/
vim mapred-site.xml
#在文件中添加如下内容:
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
23. 查看是否有初始化Hive元数据库的脚本。cd /home/software/hive-3.1.2/scripts/metastore/upgrade/
#查看是否有mysql/目录,如果没有
wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/hive-mysql-tar.gz
tar -xvf hive-mysql-tar.gz
24. 进入MySQL。
mysql -u root -p
#建立Hive的元数据库
create database hive;
#退出数据库
quit;
25. 初始化Hive的元数据库。
schematool -initSchema -dbType mysql --verbose
26. 启动Hadoop。
start-dfs.sh
start-yarn.sh
27. 启动Hive的元数据服务。
hive --service metastore &
28. 启动hiveserver2服务。
hive --service hiveserver2 &
29. 进入Hive的客户端。
hive
二、其他
1. Hive运行日志
1. Hive在运行过程中会产生运行日志,如果不指定,那么默认情况下,Hive的运行日志是放在/tmp/hive.log文件中。
2. 修改存放位置:
#进入Hive的配置文件目录
cd /home/software/hive-3.1.2/conf
#复制文件
cp hive-log4j2.properties.template hive-log4j2.properties
#编辑文件
vim hive-log4j2.properties
#修改属性property.hive.log.dir
property.hive.log.dir = /home/software/hive-3.1.2/logs
#启动Hive
hive --service metastore &
hive --service hiveserver2 &
hive
2. Hive的参数配置
1. 可以在hive-site.xml文件中来配置Hive的运行参数,这种配置方式是永久有效的,并且对所有的会话都生效。
2. 可以通过hive -hiveconf来配置Hive的运行参数,例如hive -hiveconf mapred.reduce.tasks=3;这种配置方式只在当前会话中生效,对其他会话不产生影响。文章来源:https://www.toymoban.com/news/detail-630526.html
3. 在Hive的命令窗口中,可以通过set方式来配置,例如set mapred.reduce.tasks=3;同样这种方式也是只在当前会话中生效,对其他会话不产生影响。文章来源地址https://www.toymoban.com/news/detail-630526.html
到了这里,关于大数据课程F2——HIve的安装操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!