導(dǎo)語
HDP2.4的Hadoop版本為2.7.1,Spark版本為Spark1.6。很多感興趣的朋友想要在HDP2.4的環(huán)境上嘗鮮Spark2.0,筆者自己也嘗試著在HDP2.4的環(huán)境下運(yùn)行了spark2.0 on YARN模式。將一些配置整理如下,感興趣的朋友可以作為參考。
1. 環(huán)境準(zhǔn)備
- 安裝HDP2.4,不包含Spark組件。
- 下載Spark2.0預(yù)覽版spark-2.0.0-preview-bin-hadoop2.7.tar
2. 配置
解壓縮spark-2.0.0-preview-bin-hadoop2.7.tar 到目錄/usr/hdp/2.4.0.0-169下。
進(jìn)入Spark配置目錄 /usr/hdp/2.4.0.0-169/spark-2.0.0-preview-bin-hadoop2.7/conf
-
配置hive-site.xml 為如下:
<configuration> <property> <name>hive.metastore.uris</name> <value>thrift://url:9083</value> </property> </configuration>其中,thrift://url:9083為hive metastore url.
-
配置spark-env.sh為如下,相應(yīng)的配置根據(jù)安裝環(huán)境設(shè)置。
export SPARK_CONF_DIR=/usr/hdp/2.4.0.0-169/spark-2.0.0-preview-bin-hadoop2.7/conf # Where log files are stored.(Default:${SPARK_HOME}/logs) #export SPARK_LOG_DIR=${SPARK_HOME:-/usr/hdp/current/spark-historyserver}/logs export SPARK_LOG_DIR=/var/log/spark # Where the pid file is stored. (Default: /tmp) export SPARK_PID_DIR=/var/run/spark # The scheduling priority for daemons. (Default: 0) SPARK_NICENESS=0 export HADOOP_HOME=/usr/hdp/current/hadoop-client export HADOOP_CONF_DIR=/usr/hdp/current/hadoop-client/conf # The java implementation to use. export JAVA_HOME=/usr/jdk64/jdk1.8.0_60/ if [ -d "/etc/tez/conf/" ]; then export TEZ_CONF_DIR=/etc/tez/conf else export TEZ_CONF_DIR= fi -
配置spark-defaults.conf為如下,相應(yīng)的配置根據(jù)環(huán)境設(shè)置,spark.yarn.historyServer.address 為spark history server地址.
spark.eventLog.dir hdfs:///spark-history spark.eventLog.enabled true spark.history.fs.logDirectory hdfs:///spark-history spark.history.kerberos.keytab none spark.history.kerberos.principal none spark.history.provider org.apache.spark.deploy.history.FsHistoryProvider spark.history.ui.port 18080 spark.yarn.containerLauncherMaxThreads 25 spark.yarn.driver.memoryOverhead 384 spark.yarn.executor.memoryOverhead 384 spark.yarn.historyServer.address ochadoop02.jcloud.local:18080 spark.yarn.max.executor.failures 3 spark.yarn.preserve.staging.files false spark.yarn.queue default spark.yarn.scheduler.heartbeat.interval-ms 5000 spark.yarn.submit.file.replication 3 在hdfs上創(chuàng)建文件夾/spark-history,權(quán)限為執(zhí)行spark的用戶所有。
打開Ambari,在YARN配置里,diable yarn.timeline-service.enabled。這樣的原因是在Spark2.0中Yarn依賴的jersey版本為1.9, Spark2.0依賴的Jersey版本為2.x。Spark沒有對(duì)Jersey版本進(jìn)行很好的適配。
打開Ambari,在MapReduce配置里,修改/usr/hdp/ ${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar為/usr/hdp/2.4.0.0-169/hadoop/lib/hadoop-lzo-0.6.0.2.4.0.0-169.jar