因为测试需求,需要将各个开源平台整合到一个大的平台中,所以引入了hue,具体操作步骤如下: 此次引入了有postgre,hive,phoenix,hbase,yarn,hdfs
1.拉取镜像
直接从dockerhub拉取已经编译好的hue:
代码语言:javascript复制docker pull gethue/hue
拉取好镜像后,传入自己的harbor,本地仓库,方便后续集成到h8s管理,具体操作之前也有讲过。
2.开启镜像安装相应的软件并修改hue.ini
开启镜像命令:docker run -it -p 8888:8888 --add-host:xxx.com:你的ip gethue/hue:latest
进入镜像,因为要使用root用户操作,所以进入命令如下:
docker exec -ti --user root 容器id bash
我这个版本的hue镜像存在/usr/share/hue/desktop/conf/目录下,因为此版本hue并未提供vim,要自行下载,命令如下:
代码语言:javascript复制apt-get install vim
最好再装一个ping:
代码语言:javascript复制apt install iputils-ping
最后进行文件的修改:
代码语言:javascript复制vim hue.ini
修改配置如下: 修改时区:
postgre相关项:
hive相关项
hbase相关项:
yarn相关项:
hdfs相关项:
phoenix配置项:
这段需要自己加官网也有说:
改完后保存退出容器打包镜像docker commit即可。
3.修改集群中的响应配置文件
首先修改hdfs的相关文件
其次修改hbase的相关文件
4.开启相关代理服务
4.1 java
首先集群上肯定要有java环境并配置好JAVA_HOME环境变量,并且此hue的对应的版本为java8
4.2 queryserver
在集群上下载好phoenix的服务端并开启服务,因为我们的项目使用的是hbase的2版本,所以下载的是apache-phoenix-5.0.0-HBase-2.0-bin.tar,方法如下: 首先确定你的集群上有HBASE_HOME的环境变量,接下来解压后来到bin目录下:
执行./queryserver.py start即可,虽然是python写的,但是内部最终起来是java来起,会开启一个java进程:
注意hbase-site里面的zookeeper配置项我用的不是hbase自带,使用的是集群模式,而且写得host域名后不要跟2181它会默认去找2181,如果写了会报错,这里应该是hue的一个bug,希望它们后面能改进。
4.3 ThriftServer
开启hbase的ThriftServer服务在9090端口:
代码语言:javascript复制HBASE_HOME/bin/hbase-daemon.sh start thrift
接下来可以看效果了
4.4 开启hive
hive脚本:
代码语言:javascript复制#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs
if [ ! -d $HIVE_LOG_DIR ]
then
mkdir -p $HIVE_LOG_DIR
fi
echo "1"
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
}
echo "2"
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 start"
server2pid=$(check_process HiveServer2 10000)
cmd="nohup hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
[ -z "$server2pid" ] && eval $cmd || echo "HiveServer2 start"
}
echo "3"
function hive_stop()
{
metapid=$(check_process HiveMetastore 9083)
[ "$metapid" ] && kill $metapid || echo "Metastore not start"
server2pid=$(check_process HiveServer2 10000)
[ "$server2pid" ] && kill $server2pid || echo "HiveServer2 not start"
}
case $1 in
"start")
hive_start
echo "2"
;;
"stop")
hive_stop
;;
"restart")
hive_stop
sleep 2
hive_start
;;
"status")
check_process HiveMetastore 9083 >/dev/null && echo "Metastore normalnormal" || echo "Metastore exception"
check_process HiveServer2 10000 >/dev/null && echo "HiveServer2 normalnormal" || echo "HiveServer2 exception"
;;
*)
echo Invalid Args!
echo 'Usage: '$(basename $0)' start|stop|restart|status'
;;
esac
此脚本一定要是unix格式,可以通过set ff=unix命令来使用