天天看点

CDH6.3中HUE的配置,集成mysql,hive,hbase,spark,sparksql,pyspark

CDH集成环境里开启hue组件,只需要在《hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀)》里写入配置文件即可正常工作,

然后按照需要的服务,安装服务。

最终看起来很是挺轻松的,但是详细的说明教程还真是不多,再加上版本问题。参考各位大佬的教程,对照官方文档(给差评)整理记录。

集成hive服务

hive服务里开启hiveserver2服务

CDH6.3中HUE的配置,集成mysql,hive,hbase,spark,sparksql,pyspark

hue配置里声明服务地址,(hive的这些是默认就有的,如果要加其他的配置还是显示的写出来比较好)

[beeswax]
  hive_server_host=node1
  hive_server_port=10000
           

在notebook里声明要实现的服务

[notebook]
    [[interpreters]]
       [[[hive]]]
          name=Hive
          interface=hiveserver2
           

集成hbase服务

hbase组件里开启HBase Thrift Server服务

CDH6.3中HUE的配置,集成mysql,hive,hbase,spark,sparksql,pyspark

在hue配置里,增加以下内容

[hbase]
      hbase_conf_dir={{HBASE_CONF_DIR}}
      thrift_transport=buffered
           

集成MYSQL服务

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服务

将livy集成至CDH集中管理(暂时不能用)

该方法把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文件

[[email protected] ~]# mkdir -p ~/github/cloudera
[[email protected] ~]# cd ~/github/cloudera
[[email protected] ~]# git clone https://github.com/cloudera/cm_ext.git
[[email protected] ~]# cd cm_ext
[[email protected] ~]# mvn package

# 如果打包测试不通过,使用这条打包
mvn clean package -Dmaven.test.skip=true
           
# 下载livy包制作工具
[[email protected] cloudera]git clone https://github.com/Automattic/cm-livy-scripts.git
[[email protected] cloudera]cd cm-livy-scripts
[[email protected] cm-livy-scripts]# ./build_parcel.sh 0.6 el7
[[email protected] cm-livy-scripts]# ./build_csd.sh 0.6
[[email protected] 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服务中

[[email protected] cm-livy-scripts]# mkdir /var/www/html/livy
[[email protected] cm-livy-scripts]# cd /var/www/html/livy/    
[[email protected] livy]# cp /root/github/cloudera/cm-livy-scripts/LIVY-0.6-el7.parcel ./
[[email protected] livy]# cp /root/github/cloudera/cm-livy-scripts/manifest.json ./
[[email protected] 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目录下

[[email protected] livy]# cd /opt/cloudera/csd/
[[email protected] 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服务

[[email protected] csd]# systemctl restart cloudera-scm-server
[[email protected] csd]# systemctl status cloudera-scm-server
           

独立部署livy服务

选择一个节点手工部署启用livy服务。

下载解压

​ livy项目地址https://livy.incubator.apache.org/

配置conf/livy.conf文件

​ 这个部分的内容在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
           

配置conf/livy-env.sh

​ 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配置文件

在 《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