參考自https://blogs.msdn.microsoft.com/pliu/2016/06/18/run-hue-spark-notebook-on-cloudera/
說明
使用Cloudera Manager部署CDH群集時,可以使用Hue Web UI運行Hive和Impala查詢。但Spark筆記本沒有開箱即用。在CDH上安裝和配置Spark筆記本並不像現有文檔中描述的那樣簡單。在本博客中,我們將提供有關如何在CDH上使用Livy啟用Hue Spark筆記本的分步說明。
在撰寫本文時,部署的CDH版本為5.9.3,HUE 3.11和Livy 0.3。對於使用Cloudera Manager部署的任何CDH群集,步驟應該類似。請注意,Cloudera尚不支持Livy。
1. 在cloudera manager集群中找到hue服務

2. 添加配置
在Cloudera Manager中,轉到Hue - > Configurations,在hue服務高級配置代碼段(安全閥)中搜索hue_safety_valve.ini的 “安全” ,添加以下配置,保存更改,然后重新啟動Hue:

[spark] server_url=http://fp-01: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"}]' [notebook] show_notebooks=true enable_batch_execute=true enable_query_builder=true enable_query_scheduling=false [[interpreters]] [[[hive]]] # The name of the snippet. name=Hive # The backend connection to use to communicate with the server. interface=hiveserver2 [[[impala]]] name=Impala interface=hiveserver2 [[[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 [[[spark2]]] name=Spark interface=oozie
添加完成之后重啟hue服務。
3. 打開hue web ui界面
Hue Web UI,你應該能夠看到Spark筆記本。Spark筆記本使用Livy提交Spark工作,所以沒有Livy,它還沒有運行。

Hbase Browser:警告原因是因為cdh集群沒有安裝hbase組件。
Impala:警告原因是因為cdh集群沒有安裝impala組件。
Spark:警告原因是因為沒有安裝livy服務。
4. 安裝Livy服務
4.1 下載地址
https://github.com/cloudera/livy/releases
4.2 上傳到服務器並解壓
[root@fp-01 soft]# unzip livy-server-0.3.0.zip -d /opt/
4.3 修改配置文件
[root@fp-01 soft]# cd /opt/livy-server-0.3.0/conf/ [root@fp-01 conf]# vi livy-env.sh
在文件最后添加以下內容
export JAVA_HOME=/opt/jdk1.8.0_151 export SPARK_HOME=/opt/cloudera/parcels/CDH-5.9.3-1.cdh5.9.3.p0.4/lib/spark/ export SPARK_CONF_DIR=/etc/spark2/conf export HADOOP_CONF_DIR=/etc/hadoop/conf
4.4 配置環境變量
[root@fp-01 conf]# vi /etc/profile
#Livy export LIVY_HOME=/opt/livy-server-0.3.0 export PATH=$LIVY_HOME/bin:$PATH
立即生效
[root@fp-01 conf]# source /etc/profile
4.5 創建日志文件夾
如果沒有創建logs,則啟動的時候會報錯找不到logs文件夾
[root@fp-01 conf]# cd /opt/livy-server-0.3.0
[root@fp-01 livy-server-0.3.0]# mkdir logs
4.6 后台啟動livy
[root@fp-01 conf]# cd /opt/livy-server-0.3.0/bin/ [root@fp-01 bin]# nohup ./livy-server > livy.out 2>&1 &
4.7 查看啟動日志
[root@fp-01 bin]# cat livy.out nohup: 忽略輸入 18/08/16 13:41:23 WARN LivySparkUtils$: Current Spark (2,2) is not verified in Livy, please use it carefully 18/08/16 13:41:23 INFO StateStore$: Using BlackholeStateStore for recovery. 18/08/16 13:41:23 INFO BatchSessionManager: Recovered 0 batch sessions. Next session id: 0 18/08/16 13:41:23 INFO InteractiveSessionManager: Recovered 0 interactive sessions. Next session id: 0 18/08/16 13:41:23 INFO InteractiveSessionManager: Heartbeat watchdog thread started. 18/08/16 13:41:23 INFO WebServer: Starting server on http://fp-01:8998
5. 刷新Hue web UI界面
由於已經啟動livy服務,spark警告已經消失

6. CDH集群添加hbase和impala組件

7. 再次刷新Hue web UI界面
此時所有警告已經消失

8. 點擊頁面頂部的Notebooks
8.1 發現頁面報500錯誤

8.2 點擊View logs,查看報錯日志
有一行報錯:NameError:global name 'SHOW_NOTEBOOKS' is not defined

8.3 點擊More info
查看最下面的文件views.py,第68行,問題代碼if not SHOW_NOTEBOOKS.get(),但是前面並沒有定義,所以報錯。

8.4 查看hue源碼
https://github.com/cloudera/hue
https://github.com/cloudera/hue/blob/master/desktop/libs/notebook/src/notebook/views.py
發現是在前面引入

8.5 修改cdh hue的views.py文件
[root@fp-01 ~]# cd /opt/cloudera/parcels/CDH-5.9.3-1.cdh5.9.3.p0.4/lib/hue/desktop/libs/notebook/src/notebook/ [root@fp-01 notebook]# vi views.py

8.6 重啟hue服務,在hue web UI界面點擊notebooks
一切正常

