hive的安装配置:
从官网上下载相关的hive软件包
把安装文件apache-hive-3.1.2-bin.tar.gz和mysql8.0的安装文件mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar和mydsql的jar包传输进集群里面
用tar命令解压hive安装包和mysql安装包,解压路径为/opt/moudle,命令为:
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module
mkdir /opt/module/mysql8.0
tar -zxvf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar -C /opt/module/mysql8.0
修改文件夹名称,之后先删除mariadb 和之前系统自带的mysql
rpm -qa | grep mariadb | rpm -qa | grep mariadb
(因为这个和mysql占用端口号一样)
安装mysql依赖
安装命令:按照顺序执行命令,如果遇到报错请自行百度
rpm -ivh mysql-community-common-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.27-1.el7.x86_64.rpm
初始化mysql数据库
mysqld --initialize --console
目录授权:
chown -R mysql:mysql /var/lib/mysql/
启动mysql:
systemctl start mysqld.service
查看mysql服务启动状态:
systemctl status mysqld.service
查看mysql的临时密码:
grep "A temporary password" /var/log/mysqld.log
进入MySQL数据库之后修改密码:
mysql -uroot -p
set password=’123456’;
重新进入mysql:
mysql -uroot -p123456
更换数据库、修改host表内容创建metastore元数据库刷新并退出
Use mysql;
update user set host='%' where host='localhost';
delete from user where host!='%';
create database metastore;
flush privileges;
exit;
因为hive3.1.2中的有些jar包和比hadoop版本中的jar包版本低,所以我们需要进行一个jar包的替换,把hive中的/hive/lib中的guava-19.0.jar包改名为guava-19.0.jar.bak并从/hadoop-3.1.3/share/hadoop/common/lib中把guava-27.0-jre.jar复制到hive的lib目录下,并把log4j-slf4j-impl-2.10.0.jar文件改名,因为文件冲突问题。
把mysql-connect-java的jar包移动到hive的lib目录下
在hive的conf目录下创建hive-site.xml文件里面的内容为:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc连接的URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<!-- Hive默认在HDFS的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!-- Hive元数据存储的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!-- 元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- 指定存储元数据要连接的地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop102:9083</value>
</property>
<!-- 指定hiveserver2连接的host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop102</value>
</property>
<!-- 指定hiveserver2连接的端口号 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
</configuration>
初始化元数据库:
schematool -initSchema -dbType mysql -verbose
在启动hive之前先启动hadoop集群
命令如下:
Start-dfs.sh
Start-yarn.sh
启动hive
/opt/module/hive/bin hive
启动hiveserver2
/opt/module/hive/bin hiveserver2
这样启动hiveserver2会占用当前窗口(我误以为卡了很久,其实是有窗口占用,其中可能会有报错tez大数据处理引擎信息,不要管,建议用下面这个命令)
nohup /opt/module/hive/bin hiveserver2 2&1 &
启动元数据库服务(同理建议用第二个命令)
hive --service metastore
nohup hive --service metastore 2>&1 &
用hive命令启动hive
hive
配置完成
版权归原作者 摆烂的电子锁 所有, 如有侵权,请联系我们删除。