CDH集成环境里开启hue组件,只需要在《hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀)》里写入配置文件即可正常工作,
然后按照需要的服务,安装服务。
最终看起来很是挺轻松的,但是详细的说明教程还真是不多,再加上版本问题。参考各位大佬的教程,对照官方文档(给差评)整理记录。
hive服务里开启hiveserver2服务
hue配置里声明服务地址,(hive的这些是默认就有的,如果要加其他的配置还是显示的写出来比较好)
[beeswax]
hive_server_host=node1
hive_server_port=10000
在notebook里声明要实现的服务
[notebook]
[[interpreters]]
[[[hive]]]
name=Hive
interface=hiveserver2
hbase组件里开启HBase Thrift Server服务
在hue配置里,增加以下内容
[hbase]
hbase_conf_dir={{HBASE_CONF_DIR}}
thrift_transport=buffered
mysql服务肯定是已经存在了,直接加配置。
同样的,先声明接口服务信息
[librdbms]
[[databases]]
[[[mysql]]]
nice_name="My SQL DB"
# 库限制 name=mysql
engine=mysql
host=node5
port=3306
user=admin
password=password
options= {"init_command":"SET NAMES 'utf8'"}
再由notebook展示
[notebook]
[[[mysql]]]
name=Mysql
interface=rdbms
该方法把livy打包为parcel包,并制作CDH使用的csd文件,然后CDH即可进行全面管理
这种由SCM集中管理的方案应该是效果最好的,再尝试安装后,发现达不到预期效果,暂时放弃,具体表现在角色只有gateway(看别人的至少应该有两种)8998端口没有UI服务,看到的内容大概是SCM对他的管理信息。可能是版本问题,期待以后更新.
livy服务类似于spark 的thirf接口
https://livy.incubator.apache.org/download/
export PATH=$PATH:/usr/local/mysql/bin
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export PATH=$PATH:$JAVA_HOME/bin
xport CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar:$CLASS_PATH
export MVN_HOME=/usr/local/maven
export PATH=$MVN_HOME/bin:$PATH
制作Livy的Parcel包和csd文件
[root@node01 ~]# mkdir -p ~/github/cloudera
[root@node01 ~]# cd ~/github/cloudera
[root@node01 ~]# git clone https://github.com/cloudera/cm_ext.git
[root@node01 ~]# cd cm_ext
[root@node01 ~]# mvn package
# 如果打包测试不通过,使用这条打包
mvn clean package -Dmaven.test.skip=true
# 下载livy包制作工具
[root@centos7x235 cloudera]git clone https://github.com/Automattic/cm-livy-scripts.git
[root@centos7x235 cloudera]cd cm-livy-scripts
[root@centos7x235 cm-livy-scripts]# ./build_parcel.sh 0.6 el7
[root@centos7x235 cm-livy-scripts]# ./build_csd.sh 0.6
[root@centos7x235 cm-livy-scripts]# ll
总用量 90976
......
-rw-r--r-- 1 root root 93113607 11月 21 09:46 LIVY-0.6-el7.parcel
-rw-r--r-- 1 root root 3584 11月 21 09:47 LIVY-0.6.jar
-rw-r--r-- 1 root root 309 11月 21 09:46 manifest.json
......
将Parcel包和manifest.json文件部署到httpd服务中
[root@centos7x235 cm-livy-scripts]# mkdir /var/www/html/livy
[root@centos7x235 cm-livy-scripts]# cd /var/www/html/livy/
[root@centos7x235 livy]# cp /root/github/cloudera/cm-livy-scripts/LIVY-0.6-el7.parcel ./
[root@centos7x235 livy]# cp /root/github/cloudera/cm-livy-scripts/manifest.json ./
[root@centos7x235 livy]# ll
总用量 90936
-rw-r--r-- 1 root root 93113127 11月 21 09:22 LIVY-1.0-el7.parcel
-rw-r--r-- 1 root root 309 11月 21 09:22 manifest.json
访问httpd服务查看是否可用
http://192.168.22.235/livy/
将生成的csd文件,复制到cloudera-manager-server服务所在节点的/opt/cloudera/csd目录下
[root@centos7x235 livy]# cd /opt/cloudera/csd/
[root@centos7x235 csd]# cp /root/github/cloudera/cm-livy-scripts/LIVY-0.6.jar ./
在主机—>parcel---->配置里加入http://192.168.22.235/livy/
如果碰到hash校验问题,就自己手动吧parcel考过去,并删掉livy的http配置(我碰到这个问题很神奇,系统把包复制到在parcels文件夹后,parcel文件大小会变大,导致hash改变从而失败)
重启cloudera-scm-server服务
[root@centos7x235 csd]# systemctl restart cloudera-scm-server
[root@centos7x235 csd]# systemctl status cloudera-scm-server
选择一个节点手工部署启用livy服务。
livy项目地址https://livy.incubator.apache.org/
这个部分的内容在hue.ini里也有相关,冲突???(比如livy_server_session_kind=yarn)
deployMode可以使用client/cluster
livy.spark.master = yarn
livy.spark.deployMode = client
livy.server.session.timeout = 1h
#只有开启impersonation,才能实现多用户
livy.impersonation.enabled = true
jdk使用cdh自带的版本,注意log目录,可以不配置,默认在${livy_home}/logs
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/
export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark
export SPARK_CONF_DIR=/etc/spark/conf
export HADOOP_CONF_DIR=/etc/hadoop/conf
export LIVY_LOG_DIR=/var/log/livy
启动livy服务
bin/livy-server
在 《hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀)》里加入配置内容即可。
此处是包含以上所有配置的最终编辑结果。
编辑此文件时,注意参考原版hue.ini和官方文档https://docs.gethue.com/administrator/configuration/connectors/
[desktop]
app_blacklist=
use_new_editor=true
[beeswax]
hive_server_host=node1
hive_server_port=10000
[hbase]
hbase_conf_dir={{HBASE_CONF_DIR}}
thrift_transport=buffered
[spark]
# 这个是hiveserver2的配置
sql_server_host=node1
# 此处是livy的配置
livy_server_url=http://node3:8998/
languages='[{"name": "Scala Shell", "type": "spark"},{"name": "PySpark Shell", "type": "pyspark"},{"name": "R Shell", "type": "r"},{"name": "Jar", "type": "Jar"},{"name":"Python", "type": "py"},{"name": "Impala SQL", "type": "impala"},{"name": "Hive SQL", "type": "hive"},{"name": "Text", "type": "text"}]'
[librdbms]
[[databases]]
[[[mysql]]]
nice_name="My SQL DB"
# 库名 name=mysql
engine=mysql
host=node5
port=3306
user=admin
password=password
options= {"init_command":"SET NAMES 'utf8'"}
[notebook]
show_notebooks=true
enable_batch_execute=true
enable_query_builder=true
[[interpreters]]
[[[hive]]]
name=Hive
interface=hiveserver2
[[[mysql]]]
name=Mysql
interface=rdbms
[[[sparksql]]]
name=SparkSql
interface=hiveserver2
# interface=livy
[[[spark]]]
name=Scala
interface=livy
[[[pyspark]]]
name=PySpark
interface=livy
[[[jar]]]
name=Spark Submit Jar
interface=livy-batch
[[[py]]]
name=Spark Submit Python
interface=livy-batch
其中sparksql服务,使用livy服务报了400错误,原因不明。发现hiveserver2可以继续使用,在spark里配置hiveserver2与livy不冲突。
感谢
link
link
link
等