docker整合hue

2021-05-18 11:11:33 浏览数 (1)

因为测试需求,需要将各个开源平台整合到一个大的平台中,所以引入了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用户操作,所以进入命令如下:

代码语言:javascript复制
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命令来使用

5.成功界面演示

0 人点赞