如果整合Yarn報錯或無法查看log需做如下操作

1.修改hadoop的yarn-site.xml

vim /export/servers/hadoop/etc/hadoop/yarn-site.xml

        <property>

                <name>yarn.resourcemanager.hostname</name>

                <value>node01</value>

        </property>

        <property>

                <name>yarn.nodemanager.aux-services</name>

                <value>mapreduce_shuffle</value>

        </property>

<!-- 關閉YARN內存檢查 -->

   <property>

                <name>yarn.nodemanager.pmem-check-enabled</name>

                 <value>false</value>

        </property>

        <property>

                    <name>yarn.nodemanager.vmem-check-enabled</name>

                    <value>false</value>

        </property>

   <!-- 如果開啓如下配置則需要開啓Spark歷史服務器

   <property>

                <name>yarn.log-aggregation-enable</name>

                <value>true</value>

        </property>

        <property>

                <name>yarn.log-aggregation.retain-seconds</name>

                <value>604800</value>

        </property>

        <property>

                <name>yarn.log.server.url</name>

                <value>http://node01:19888/jobhistory/logs</value>

        </property>

   -->

2.分發並重啓Hadoop服務

/export/servers/hadoop/sbin/stop-dfs.sh

/export/servers/hadoop/sbin/stop-yarn.sh

/export/servers/hadoop/sbin/start-dfs.sh

/export/servers/hadoop/sbin/start-yarn.sh

●如果要整合YARN歷史服務器和Spark歷史服務器,則還需要如下操作:

1.開啓YARN歷史服務器的配置並啓動

   /export/servers/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver

2.先配置Spark日誌服務器[參考後面的章節]

3.修改spark-defaults.conf

vim /export/servers/spark/conf/spark-defaults.conf

spark.yarn.historyServer.address node01:4000

4.啓動Spark HistoryServer服務

   /export/servers/spark/sbin/start-history-server.sh

●如果依賴的Jar包較多可以上傳到HDFS並告訴YARN去取

在spark-default.conf中配置

spark.yarn.jars = hdfs://node01:8020/sparkjars/*

配置之後各個節點會去HDFS上下載並緩存

如果不配置Spark程序啓動會把Spark_HOME打包分發到各個節點

配置歷史日誌服務器

默認情況下, Spark 程序運行完畢關閉窗口後, 就無法再查看運行記錄的 Web UI (4040)了, 通過 HistoryServer 可以提供一個服務, 通過讀取日誌文件, 使得我們可以在程序運行結束後, 依然能夠查看運行過程

●修改文件名

cd /export/servers/spark/conf

cp spark-defaults.conf.template spark-defaults.conf

●修改配置

vim spark-defaults.conf

spark.eventLog.enabled true

spark.eventLog.dir hdfs://node01:8020/sparklog

 

●注意:hdfs上的目錄需要手動先創建  

hadoop fs -mkdir -p /sparklog

 

●修改spark-env.sh

vim spark-env.sh

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://node01:8020/sparklog"

 

●同步文件

scp  -r /export/servers/spark/conf/ @node02:/export/servers/spark/conf/

scp  -r /export/servers/spark/conf/ @node03:/export/servers/spark/conf/

 

●重啓集羣

/export/servers/spark/sbin/stop-all.sh

/export/servers/spark/sbin/start-all.sh

 

●在master上啓動日誌服務器

/export/servers/spark/sbin/start-history-server.sh

 

●在4000端口查看歷史日誌(如果加載不出來換瀏覽器試試)

http://node01:4000/

 

●如果遇到Hadoop HDFS的寫入權限問題:

org.apache.hadoop.security.AccessControlException

解決方案:在hdfs-site.xml中添加如下配置,關閉權限驗證

<property>

        <name>dfs.permissions</name>

        <value>false</value>

</property>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章