赞
踩
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 可使用迅雷下载
tar zxvf apache-hive-3.1.2-bin.tar.gz /app/hive
2.1 首先需要JDK1.8的环境 (搭建参考地址)
/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>

如果mysql安装的是8.0版本以上,需要把 mysql-connector-java-8.0.22.jar 上传至 /app/hive/apache-hive-3.1.2-bin/lib 目录下。
/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
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
通过 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
3步骤脚本执行后,执行hive命令行,能进入hive则安装成功
# 查看占用的端口
若启动失败也可用命令行查看配置文件的相关端口是否启用,具体原因具体排查
sudo netstat -ntlp on the master
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。