在安装前说明
hadoop、hive、flink等目前版本基本依赖于jdk1.8, 所以需要专门的JDK环境,毕竟现在大多开发者都是使用>=11版本了。
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&useSSL=false&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
版权归原作者 深藏功与名呀 所有, 如有侵权,请联系我们删除。