centos7安装Hive3

一、hive安装

1.1 上传安装包 解压

[root@node1 ~]# cd /export/software/
[root@node1 ~]# tar zxvf apache-hive-3.1.2-bin.tar.gz -C /export/server/

1.2 解决Hive与Hadoop之间guava版本差异

cd /export/server
mv apache-hive-3.1.2-bin hive-3.1.2
cd /export/server/hive-3.1.2
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

测试

[root@node1 hive-3.1.2]# ll lib | grep guava
-rw-r--r-- 1 root root  2747878 910 13:10 guava-27.0-jre.jar
-rw-r--r-- 1 root root   971309 521 2019 jersey-guava-2.25.1.jar

1.3 修改配置文件

1.3.1 hive-env.sh

cd /export/server/hive-3.1.2/conf
mv hive-env.sh.template hive-env.sh

vim hive-env.sh
export HADOOP_HOME=/opt/module/hadoop-3.3.1
export HIVE_CONF_DIR=/opt/module/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/opt/module/hive-3.1.2/lib

1.3.2 hive-site.xml(新建)

<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
	<name>javax.jdo.option.ConnectionURL</name>
	<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=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>root</value>
</property>

<property>
	<name>javax.jdo.option.ConnectionPassword</name>
	<value>123456</value>
</property>

<!-- H2S运行绑定host -->
<property>
    <name>hive.server2.thrift.bind.host</name>
    <value>node1</value>
</property>

<!-- 远程模式部署metastore metastore地址 -->
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://node1:9083</value>
</property>

<!-- 关闭元数据存储授权  --> 
<property>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <value>false</value>
</property>
</configuration>

1.4上传mysql jdbc驱动到hive安装包lib下

mysql-connector-java-5.1.32.jar

验证是否上传:

[root@node1 conf]# cd /export/server/hive-3.1.2/ 
[root@node1 hive-3.1.2]# ll lib | grep mysql-connector
-rw-r--r-- 1 root root   969018 911 11:52 mysql-connector-java-5.1.32.jar

1.5初始化元数据

cd /export/server/hive-3.1.2/

bin/schematool -initSchema -dbType mysql -verbos
#初始化成功会在mysql中创建74张表

1.6在hdfs创建hive存储目录

hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse

1.7 启动hive

#前台启动  关闭ctrl+c
/export/server/hive-
	
#前台启动开启debug日志
/export/server/hive-3.1.2/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console  

#后台启动 进程挂起  关闭使用jps+ kill -9
nohup /opt/module/hive-3.1.2/bin/hive --service metastore &

1.8 启动hiveserver2服务

nohup /opt/module/hive-3.1.2/bin/hive --service hiveserver2 &
#注意 启动hiveserver2需要一定的时间  不要启动之后立即beeline连接 可能连接不上

检测

[root@node1 hive-3.1.2]# jps
26645 Jps
25981 RunJar
24553 RunJar
20086 NameNode
20311 DataNode
20849 ResourceManager
21051 NodeManager
21498 JobHistoryServer

1.9beeline客户端连接

连接访问

[root@node1 ~]# /export/server/hive-3.1.2/bin/beeline
beeline> ! connect jdbc:hive2://node1:10000
beeline> root
beeline> 直接回车
0: jdbc:hive2://node1:10000> show databases;
+----------------+
| database_name  |
+----------------+
| default        |
+----------------+
1 row selected (1.242 seconds)

二、启动脚本

vim /bin/hiveservice.sh
#添加以下内容

#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs

mkdir -p $HIVE_LOG_DIR

#检查进程是否运行正常,参数1为进程名,参数2为进程端口
function check_process()
{
    pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}')
    ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)
    echo $pid
    [[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1
}

function hive_start()
{
    metapid=$(check_process HiveMetastore 9083)
    cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"
    cmd=$cmd" sleep 4; hdfs dfsadmin -safemode wait >/dev/null 2>&1"
    [ -z "$metapid" ] && eval $cmd || echo "Metastroe服务已启动"
    server2pid=$(check_process HiveServer2 10000)
    cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
    [ -z "$server2pid" ] && eval $cmd || echo "HiveServer2服务已启动"
}

function hive_stop()
{
    metapid=$(check_process HiveMetastore 9083)
    [ "$metapid" ] && kill $metapid || echo "Metastore服务未启动"
    server2pid=$(check_process HiveServer2 10000)
    [ "$server2pid" ] && kill $server2pid || echo "HiveServer2服务未启动"
}

case $1 in
"start")
    hive_start
    ;;
"stop")
    hive_stop
    ;;
"restart")
    hive_stop
    sleep 2
    hive_start
    ;;
"status")
    check_process HiveMetastore 9083 >/dev/null && echo "Metastore服务运行正常" || echo "Metastore服务运行异常"
    check_process HiveServer2 10000 >/dev/null && echo "HiveServer2服务运行正常" || echo "HiveServer2服务运行异常"
    ;;
*)
    echo Invalid Args!
    echo 'Usage: '$(basename $0)' start|stop|restart|status'
    ;;
esac
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值