大数据之06Hive部署搭建

  • 时间:
  • 浏览:
  • 来源:互联网

大数据之06Hive搭建

第一步:Hive安装及配置

(1) 把apache-hive-3.1.2-bin.tar.gz上传到linux的/opt/software目录下

(2) 解压apache-hive-3.1.2-bin.tar.gz到/opt/module/目录下面

tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/

(3) 修改apache-hive-3.1.2-bin.tar.gz的名称为hive

mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive

(4) 修改/etc/profile.d/my_env.sh,添加环境变量

sudo vim /etc/profile.d/my_env.sh

添加内容

#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

重启Xshell对话框使环境变量生效

(5) 替换hive中的guava.jar

cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib/
rm $HIVE_HOME/lib/guava-19.0.jar

(6) 解决日志Jar包冲突

mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak

第二步:Hive元数据配置到MySql

(1) 拷贝驱动

将MySQL的JDBC驱动拷贝到Hive的lib目录下

cp /opt/software/mysql-connector-java-5.1.48.jar $HIVE_HOME/lib

MySQL安装参考

(2) 配置Metastore到MySQL
在$HIVE_HOME/conf目录下新建hive-site.xml文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--连接MySQL数据库-->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
    </property>
<!--驱动路径-->
    <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>000000</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>

    <property>
        <name>datanucleus.schema.autoCreateAll</name>
        <value>true</value>
    </property>

    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop102:9083</value>
    </property>

    <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    </property>

    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>

    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
<!--修改Hive的计算引擎-->
    <property>
         <name>hive.execution.engine</name>
        <value>tez</value>
    </property>

</configuration>

第三步:安装Tez引擎

Tez是一个Hive的运行引擎,性能优于MapReduce。
(1) 将tez安装包拷贝到集群
(2) 解压tar包

tar -zxvf /opt/software/apache-tez-0.9.2-bin.tar.gz -C /opt/module

(3) 重命名

mv /opt/module/apache-tez-0.9.2-bin /opt/module/tez

(4) 上传tez依赖到HDFS

hadoop fs -mkdir /tez
hadoop fs -put /opt/module/tez/share/tez.tar.gz /tez

(5) 新建tez-site.xml

vim $HADOOP_HOME/etc/hadoop/tez-site.xml

添加如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
	<name>tez.lib.uris</name>
    <value>${fs.defaultFS}/tez/tez.tar.gz</value>
</property>
<property>
     <name>tez.use.cluster.hadoop-libs</name>
     <value>false</value>
</property>
<property>
     <name>tez.history.logging.service.class</name>     <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
</property></configuration>

(6) 修改Hadoop环境变量
编辑hadoop-env.sh

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

添加Tez的Jar包相关信息

export TEZ_CONF_DIR=$HADOOP_HOME/etc/hadoop
export TEZ_JARS=/opt/module/tez
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*

(7) 修改Hive的计算引擎

vim $HIVE_HOME/conf/hive-site.xml

添加

<property>
    <name>hive.execution.engine</name>
    <value>tez</value>
</property>

(8) 解决日志Jar包冲突

rm /opt/module/tez/lib/slf4j-log4j12-1.7.10.jar

第四步:启动metastore和hiveserver2

(1)编写hive服务启动脚本

vim $HIVE_HOME/bin/hiveservices.sh

内容如下:

#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs
META_PID=/tmp/meta.pid
SERVER_PID=/tmp/server.pid

mkdir -p $HIVE_LOG_DIR

function hive_start()
{
    nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &
echo $! > $META_PID
sleep 8
    nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveserver2.log 2>&1 &
    echo $! > $SERVER_PID
}

function hive_stop()
{
    if [ -f $META_PID ]
    then
        cat $META_PID | xargs kill -9
        rm $META_PID
    else
        echo "Meta PID文件丢失,请手动关闭服务"
    fi
    if [ -f $SERVER_PID ]
    then
        cat $SERVER_PID | xargs kill -9
        rm $SERVER_PID
    else
        echo "Server2 PID文件丢失,请手动关闭服务"
    fi

}

case $1 in
"start")
    hive_start
    ;;
"stop")
    hive_stop
    ;;
"restart")
hive_stop
sleep 2
    hive_start
    ;;
*)
    echo Invalid Args!
    echo 'Usage: '$(basename $0)' start|stop|restart'
    ;;
esac

(2)添加执行权限

chmod +x $HIVE_HOME/bin/hiveservices.sh

(3)hive日志配置信息修改

[tan@daoop102 conf]$ mv hive-log4j2.properties.template hive-log4j2.properties	#重命名
[tan@daoop102 conf]$ vim hive-log4j2.properties 	#修改成如下配置

在这里插入图片描述

(4)启动Hive后台服务

hiveservices.sh start	#启动hive
jps	#查看节点启动情况
netstat -nltp | grep -E 25776\|25633 #查看节点对于的端口启动

在这里插入图片描述

Hive,Tez安装包

链接:https://pan.baidu.com/s/1Idh_jdHoFAYIhbYGjKfc6w 提取码:1907
复制这段内容后打开百度网盘手机App,操作更方便哦

本文链接http://www.dzjqx.cn/news/show-617387.html