在安装前说明

1. hadoop、hive、flink等目前版本基本依赖于jdk1.8, 所以需要专门的JDK环境,毕竟现在大多开发者都是使用>=11版本了。

2. windows 系统建议使用VMware通过新建虚拟机安装,适用windows的版本在安装中配置、安装后使用都会挺麻烦(权限、cmd启动脚本、切换开发使用的jdk版本等),也会比较卡,毕竟Contos7系统目前是最贴近服务器环境的。

3.apache-hive 依赖一种DB结合使用,这里以已经装好的MySql为例。

下面,直接进入正题!

第一步: 下载

https://archive.apache.org/dist/hive/hive-3.1.2/apache-hive-3.1.2-src.tar.gz  可使用迅雷下载

第二步: 安装

1. gz文件解压到指定目录

tar zxvf apache-hive-3.1.2-bin.tar.gz /app/hive

2.安装前的一些准备

2.1  首先需要JDK1.8的环境 (搭建参考地址)

2.2  xml 配置文件的修改

/app/hive/apache-hive-3.1.2-bin/conf

mysql的相关配置需要改成自己环境的配置, 在mysql新建一个hive数据库;

其他ip需要设置成自己本机的ip地址,后面启动会用上

<configuration>
	
    <!-- 数据库连接地址配置 -->
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://xx.xx.xxx.xxx:3306/hive?serverTimezone=UTC&amp;useSSL=false&amp;allowPublicKeyRetrieval=true</value>
		<description>
		JDBC connect string for a JDBC metastore.
		</description>
	</property>
 
    <!-- 数据库驱动配置 -->
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.cj.jdbc.Driver</value>
		<description>Driver class name for a JDBC metastore</description>
	</property>
 
    <!-- 数据库用户名 -->
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>xxx</value>
		<description>Username to use against metastore database</description>
	</property>
 
    <!-- 数据库访问密码 -->
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>xxxxxxxxx</value>
		<description>password to use against metastore database</description>
	</property>
	
	<!-- 指定存储元数据要连接的地址 -->
	<property>
	  <name>hive.metastore.uris</name>
	  <value>thrift://192.168.254.130:9083</value>
	</property>
	
	<!-- 指定 hiveserver2 连接的 host -->
	<property>
	  <name>hive.server2.thrift.bind.host</name>
	  <value>192.168.254.130</value>
	</property>

	<!-- 指定 hiveserver2 连接的端口号 -->
	<property>
	  <name>hive.server2.thrift.port</name>
	  <value>10000</value>
	</property>
	
</configuration>

2.2.1  mysql 驱动包

如果mysql安装的是8.0版本以上,需要把 mysql-connector-java-8.0.22.jar 上传至 /app/hive/apache-hive-3.1.2-bin/lib 目录下。

2.3  sh 配置文件的修改

/app/hive/apache-hive-3.1.2-bin/conf 目录下的 hive-env.sh 文件

HADOOP_HOME:hadoop的安装目录

HIVE_CONF_DIR: hive 解压后的conf 根目录

HIVE_CONF_DIR: hive 解压后的lib 根目录

# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/app/hadoop/hadoop-3.1.3

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/app/hive/apache-hive-3.1.2-bin/conf

# Folder containing extra libraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/app/hive/apache-hive-3.1.2-bin/lib
2.4  ContOS7 系统 hive 环境变量 HIVE_HOME 配置
vi /etc/profile
#JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64
export PATH=$PATH:$JAVA_HOME/bin

#:HADOOP_HOME
export HADOOP_HOME=/app/hadoop/hadoop-3.1.0
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

#HIVE_HOME
export HIVE_HOME=/app/hive/apache-hive-3.1.2-bin
export PATH=$PATH:${HIVE_HOME}/bin

#flink
export FLINK_HOME=/app/flink/flink-1.17.2
export PATH=$PATH:$FLINK_HOME/bin

刷新配置

source /etc/profile

3.启动

通过 myhive.sh 脚本启动

myhive.sh start  启动

myhive.sh stop  停止

VE_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

给脚本添加执行曲线

chmod +x myhive.sh

4.验证

3步骤脚本执行后,执行hive命令行,能进入hive则安装成功

# 查看占用的端口

 若启动失败也可用命令行查看配置文件的相关端口是否启用,具体原因具体排查

sudo netstat -ntlp  on the master

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐