參見 HDP2.4安裝(五):集群及組件安裝 ,安裝配置的spark版本為1.6, 在已安裝HBase、hadoop集群的基礎上通過 ambari 自動安裝Spark集群,基於hadoop yarn 的運行模式。 目錄: Spark集群安裝 參數配置 測試驗證 Spark集群安裝: 在ambari ...
參見 HDP2.4安裝(五):集群及組件安裝 ,安裝配置的spark版本為1.6, 在已安裝HBase、hadoop集群的基礎上通過 ambari 自動安裝Spark集群,基於hadoop yarn 的運行模式。
目錄:
- Spark集群安裝
- 參數配置
- 測試驗證
Spark集群安裝:
- 在ambari -service 界面選擇 “add Service",如圖:
- 在彈出界面選中spark服務,如圖:
- "下一步”,分配host節點,因為前期我們已經安裝了hadoop 和hbase集群,按嚮導分配 spark history Server即可
- 分配client,如下圖:
- 發佈安裝,如下正確狀態
參數配置:
- 安裝完成後,重啟hdfs 和 yarn
- 查看 spark服務,spark thrift server 未正常啟動,日誌如下:
16/08/30 14:13:25 INFO Client: Verifying our application has not requested more than the maximum memory capability of the cluster (512 MB per container) 16/08/30 14:13:25 ERROR SparkContext: Error initializing SparkContext. java.lang.IllegalArgumentException: Required executor memory (1024+384 MB) is above the max threshold (512 MB) of this cluster! Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb'. at org.apache.spark.deploy.yarn.Client.verifyClusterResources(Client.scala:284) at org.apache.spark.deploy.yarn.Client.submitApplication(Client.scala:140) at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:56) at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:144) at org.apache.spark.SparkContext.<init>(SparkContext.scala:530) at org.apache.spark.sql.hive.thriftserver.SparkSQLEnv$.init(SparkSQLEnv.scala:56) at org.apache.spark.sql.hive.thriftserver.HiveThriftServer2$.main(HiveThriftServer2.scala:76) at org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.main(HiveThriftServer2.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
View Code -
解決方案:調整yarn相關參數配置 yarn.nodemanager.resource.memory-mb、yarn.scheduler.maximum-allocation-mb
-
yarn.nodemanager.resource.memory-mb
表示該節點上YARN可使用的物理記憶體總量,預設是8192(MB),註意,我本機的hdp2-3記憶體為4G,預設設置的值是512M,調整為如下圖大小
-
yarn.scheduler.maximum-allocation-mb
單個任務可申請的最多物理記憶體量,預設是8192(MB)。
-
保存配置,重啟依賴該配置的服務,正常後如下圖:
-
測試驗證:
- 在任一安裝spark client機器(hdp4),將目錄切換至 spark 安裝目錄的 bin目錄下
- 命令: ./spark-sql
- sql命令: show database; 如下圖
- 查看歷史記錄,如下: