一、Home环境变量配置
二、配置
1、3.X版本以上需解决日志jar包冲突 : mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak
2、初始化数据库: bin/schematool -dbType derby -initSchema
3、启动hive: bin/hive
4、将mysql-connector-java-5.1.48.jar驱动包复制至/lib文件夹下
三、mysql安装
1、查看本地是否存在数据库 : rpm -qa | grep mariadb
2、卸载数据库:sudo rpm -e --nodeps mariadb-libs
3、sudo rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
4、sudo rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
5、sudo rpm -ivh mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm
6、sudo rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
7、sudo rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
8、sudo mysqld --initialize --user=mysql
9、查看初始密码: sudo cat /var/log/mysqld.log
10、启动mysql服务: sudo systemctl start mysqld
11、登录mysql:mysql -uroot -p'初始密码'
12、修改本机root账号密码: set password=password('123456');
13、更新mysql下user表: update mysql.user set host='%' where user='root';
13、刷新: flush privileges;
四、hive配置
1、conf文件夹创建hive-site.xml文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<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>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--指定数据存储目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!--指定存储元数据连接地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop102:9083</value>
</property>
<!--指定hiveserver2连接host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop102</value>
</property>
<!--指定hiveserver2连接端口号 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
</configuration>
2、初始化数据库: schematool -initSchema -dbType mysql -verbose
3、开启元数据服务: bin/hive --service metastore
4、开启hiveserver2服务:bin/hive --service hiveserver2
5、开启beeline: bin/beeline -u jdbc:hive2://hadoop102:10000 -n 登录用户名
6、再次启动hive: bin/hive
五、其他
1、开启元数据服务: bin/hive --service metastore
2、要启动beeline客户端需要添加hadoop core-site.xml 代理属性权限
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
3、后台开启服务范例: nohup hive --service metastore 2>&1 &
六、启动脚本 hiveservice.sh
#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs
if [ ! -d $HIVE_LOG_DIR ]
then
mkdir -p $HIVE_LOG_DIR
fi
#检查进程是否运行正常,参数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
&"
[ -z "$metapid" ] && eval $cmd || echo "Metastroe 服务已启动" server2pid=$(check_process HiveServer2 10000)
cmd="nohup 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
网友评论