hue 集成spark+livy
一.先決條件
安裝hue、hadoop。
二.spark on yarn 安裝
1.添加環境變量 vim /etc/profile
SCALA_HOME=/opt/scala
SPARK_HOME=/opt/spark
2.配置spark; vim conf/spark-env.sh
#服務器域名 SPARK_LOCAL_IP=node7 #master 地址 SPARK_MASTER_HOST=node7 #master 端口 SPARK_MASTER_PORT=7077 #spark ui 端口 SPARK_MASTER_WEBUI_PORT=8080 #hadoop 配置目錄 export HADOOP_CONF_DIR=/opt/hadoop-2.7.4/etc/hadoop/
3.配置spark ;vim conf/spark-defaults.conf
#spark 依賴的jar包 spark.yarn.jars=hdfs://node7:9010/user/sparkJars/jars/*
hdfs://node7:9010/user/sparkJars/jars/* 該路徑的由來:
1. 找到spark程序目錄的jars目錄,如下圖:

2.將該路徑的jars包上傳到hdfs的目錄 (本例子中的hdfs路徑是:/user/sparkJars/jars)
注:如果不配置該路徑,那么每次提交spark 程序時就會上傳jars包,這樣會影響提交程序的效率,同時會占用hdfs的磁盤空間。
4.測試部署
使用spark-shell打開scala客戶端。
./bin/spark-shell --master yarn --deploy-mode client
如果yarn 后台上面出現下圖的記錄,則表示部署成功。

三.安裝livy
1. 下載livy 安裝包
下載地址:http://livy.incubator.apache.org/download/

2.設置環境變量
vim /etc/profile
#spark程序目錄
export SPARK_HOME=/opt/spark #hadoop 配置目錄 export HADOOP_CONF_DIR=/opt/hadoop-2.7.4/etc/hadoop/
再執行source profile命令,讓環境變量生效
3.解壓zip包
unzip livy-0.5.0-incubating-bin.zip
mv livy-0.5.0-incubating-bin.zip livy-0.5.0
4.配置livy
vi livy.conf
#livy服務端口 livy.server.port = 8998 #spark程序部署使用yarn集群 livy.spark.master = yarn #spark 程序使用客戶端模式 livy.spark.deploy-mode =client
四.配置hue
1.配置hue.ini
vim hue.ini
[spark] # livy 服務器域名 livy_server_host=node8 # livy 服務器端口 ## livy_server_port=8998 # Configure Livy to start in local 'process' mode, or 'yarn' workers. livy_server_session_kind=yarn
五.驗證配置是否正確
1.登錄hue后台,打開scala編輯頁,執行以下scala代碼
var counter = 0 val data = Array(1, 2, 3, 4, 5) var rdd = sc.parallelize(data) // Wrong: Don't do this!! rdd.map(x=>x+1).collect()
出現如下結果,則證明集成成功。

六.可能出現的問題
1. 在執行spark on yarn部署階段,執行“spark-shell --master yarn --deploy-mode client” 命令,出現異常:spark on yarn Another instance of Derby may have already booted the database
則執行ps -ef |grep spark-shell ,找到進程號,執行 命令:“kill -9 進程號”,殺死spark-shell進程,再次執行“spark-shell --master yarn --deploy-mode client” 就解決了。
2.再執行spark on yarn部署階段,執行“spark-shell --master yarn --deploy-mode client” 命令,出現:Spark on yarn Container beyond virtual memory limits
解決方法:修改hadoop 的yarn-site.xml ,新增如下配置
<property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>
