一厦滤、Home環(huán)境變量配置 及mysql安裝
二、配置?
1、3.X版本以上需解決日志jar包沖突 : mv $HIVE_HOME/lib/log4j-slf4j-impl-2.6.2.jar? $HIVE_HOME/lib/log4j-slf4j-impl-2.6.2.jar.bak? ? ? ??
2、將mysql-connector-java-5.1.48.jar驅(qū)動(dòng)包復(fù)制至/lib文件夾下?
3袁波、登錄mysql:mysql -uroot -p123456
3、create database metastore
2蜗侈、初始化數(shù)據(jù)庫(kù): bin/schematool? -dbType derby? -initSchema?
3篷牌、啟動(dòng)hive: bin/hive?
三、mysql安裝?
1宛篇、查看本地是否存在數(shù)據(jù)庫(kù) :?rpm -qa | grep mariadb?
2、卸載數(shù)據(jù)庫(kù):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蚕泽、啟動(dòng)mysql服務(wù):??sudo systemctl start mysqld?
11、登錄mysql:mysql -uroot -p'初始密碼'?
12桥嗤、修改本機(jī)root賬號(hào)密碼:?set password=password('123456');??
13须妻、更新mysql下user表:?update mysql.user set host='%' where user='root';
13、刷新:?flush privileges;
四泛领、hive配置
1荒吏、conf文件夾創(chuàng)建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>
? ? <!--指定數(shù)據(jù)存儲(chǔ)目錄 -->
? ? <property>
? ? ? ? <name>hive.metastore.warehouse.dir</name>
? ? ? ? <value>/user/hive/warehouse</value>
? ? </property>
? ? <!--指定存儲(chǔ)元數(shù)據(jù)連接地址 -->
? ? <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連接端口號(hào) -->
? ? <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、初始化數(shù)據(jù)庫(kù):?schematool -initSchema -dbType mysql -verbose??
3渊鞋、開啟元數(shù)據(jù)服務(wù):?bin/hive --service metastore? ?
4绰更、開啟hiveserver2服務(wù):bin/hive --service hiveserver2?
5瞧挤、開啟beeline: bin/beeline -u jdbc:hive2://hadoop102:10000 -n 登錄用戶名
6、再次啟動(dòng)hive:??bin/hive?
五儡湾、其他?
1特恬、開啟元數(shù)據(jù)服務(wù):?bin/hive --service metastore?
2、要啟動(dòng)beeline客戶端需要添加hadoop core-site.xml 代理屬性權(quán)限?
<property>
? ? ? ? <name>hadoop.proxyuser.root.groups</name>
? ? ? ? <value>*</value>
? ? </property>
? ? <property>
? ? ? ? <name>hadoop.proxyuser.root.hosts</name>
? ? ? ? <value>*</value>
? ? </property>?
3徐钠、后臺(tái)開啟服務(wù)范例: nohup hive --service metastore 2>&1 &?
六癌刽、啟動(dòng)腳本 hiveservice.sh
#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs
if [ ! -d $HIVE_LOG_DIR ]
then
? ? mkdir -p $HIVE_LOG_DIR
fi
#檢查進(jìn)程是否運(yùn)行正常,參數(shù)1為進(jìn)程名丹皱,參數(shù)2為進(jìn)程端口
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 服務(wù)已啟動(dòng)" server2pid=$(check_process HiveServer2 10000)
cmd="nohup hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
[ -z "$server2pid" ] && eval $cmd || echo "HiveServer2 服務(wù)已啟動(dòng)"
}
function hive_stop()
{
metapid=$(check_process HiveMetastore 9083)
[ "$metapid" ] && kill $metapid || echo "Metastore 服務(wù)未啟動(dòng)" server2pid=$(check_process HiveServer2 10000)
[ "$server2pid" ] && kill $server2pid || echo "HiveServer2 服務(wù)未啟動(dòng)"
}
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 服務(wù)運(yùn)行 正常" || echo "Metastore 服務(wù)運(yùn)行異常"
check_process HiveServer2 10000 >/dev/null && echo "HiveServer2 服務(wù)運(yùn) 行正常" || echo "HiveServer2 服務(wù)運(yùn)行異常"
;;
*)
echo Invalid Args!
echo 'Usage: '$(basename $0)' start|stop|restart|status'
;;
esac