Spark on YARN

Spark on YARN

MapReduce1.x

    JobTracker    资源的管理和作业的调度    TaskTracker

单点    缺点:单点故障,作业没法提交
JobTracker是瓶颈
仅支持MapReduce
资源利用率    空闲时没有利用好资源

Hadoop2.x  YARN

ApplicationMaster 职责 : 管理Task作业

        RM 要配HA,但可能存在问题:有时候一个挂掉,另外一个起不来。所以要对RM改造成真正的HA。


2)Spark on YARN

    2.1 Spark on YARN的区别就是:Driver端运行在哪里

cluster:driver run in am am in nm (AM不仅要申请资源,还要分发作业)

client:driver run in client(本地应用程序,AM仅仅需要申请资源。因为作业分发,是由driver端完成的)

    2.2 Spark on YARN有没有worker?

        没有,worker只有standalone的模式才有。

    2.3 对于Spark on YARN来说,excutor运行在nm里面的container里面


3)配置参数

    3.1 Spark on YARN启动时,会有以下提示,并把本地的jar包提交到yarn,因为耗性能所以要调整   

 

        spark-env.sh

            spark.yarn.jars hdfs:xxx:xxxx/.../*.jar    把spark用到的jar都放到该hdfs目录

    3.2 其他jar包

        spark.executor.extraClassPath  /xxx/.jar

        spark.driver.extraClassPath       /xxx/.jar

    3.3 最大端口数量

        spark.port.maxRetires    16    生产必须调大,spark访问最大值

    3.4 --properties-file FILE参数:不同业务线取不同配置,文件形式读取   /***/a.conf

    3.5 --conf 默认配置,优先级最高



--master
--deploy-mode
简写:yarn client  ==> yarn / yarn-client
简写:yarn cluster ==> yarn-cluster





设置完config并成功启动后,必须到UI页面确保配置是否生效成功

SparkSubmitArguments    *****源码  在这里找配置才是最全的


Spark代码之美
executorMemory = Option(executorMemory)
.orElse(sparkProperties.get("spark.executor.memory"))
.orElse(env.get("SPARK_EXECUTOR_MEMORY"))
.orNull

def getDefaultPropertiesFile(env: Map[String, String] = sys.env): String = {
    // 系统环境变量中设置: export SPARK_CONF_DIR=$SPARK_HOME/conf
env.get("SPARK_CONF_DIR")
      // /home/hadoop/app/spark-2.2.0-bin-2.6.0-cdh5.7.0/conf/spark-default.conf
 .orElse(env.get("SPARK_HOME").map { t => s"$t${File.separator}conf" })
      .map { t => new File(s"$t${File.separator}spark-defaults.conf")}
      .filter(_.isFile)
      .map(_.getAbsolutePath)
      .orNull
}


client
CoarseGrainedExecutorBackend * 2
SparkSubmit
ExecutorLauncher

转载:http://www.cnblogs.com/MOBIN/p/5857314.html
请使用spark-submit提交我们的wc分别在client和cluster模式下测试
注意两者在运行过程中进程的差别

-----------------------------------------------------------

// TODO...
Spark on YARN


HistoryServer


job = n stage = n task


开启historyserver
1) 开关 
2) 日志记到什么地方去
A
B
3) 展示

--spark.eventLog.enabled=true 把UI的日志存在机器上
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop000:8020/spark_log"

spark.history.cleaner.enabled    false

spark.history.fs.cleaner.interval    1d

spark.history.fs.cleaner.maxAge    7d

这3个参数一定要打开    不然hdfs会有压力


UI监控:    

    /api/v1/applications    返回spark json

    /api/v1/applications/id/jobs    返回spark作业的json


Class.forName(.....)




SQL :  thriftserver/beeline

bin/beeline -u jdbc:hive2://localhost:10000 -n hadoop    !q退出





 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值