spark-03-spark on yarn
2015-06-13 23:06
225 查看
spark on yarn
spark 简介
spark 是一个比较流行的内存计算(迭代计算,DAG计算)框架
从架构和应用的角度来看,spark是一个仅包含计算逻辑的开发库,而不包含任何资源管理和调度相关的实现,这使的spark可以灵活运行在目前比较主流的资源管理系统上。
目前典型的资源管理系统为mesos和yarn。
yarn 简介
yarn是一个新的mapreduce框架。
mapreduce是一种编程模型,用于大规模数据集的并行计算,它极大的方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
mapdeduce存在一些缺点比如,可扩展性、内存消耗、线程模型、可靠性和性能上的缺陷,为了根本上解决MapReduce上存在的问题,从hadoop0.23.0版本开始,hadoop的MapReduce框架完全重构,新的MapReduce 命名为MapReduceV2,又称之为yarn。
spark on yarn 提交方式
yarn-cluster方式提交
yarn-client方式提交
如果想使用yarn-client方式提交,只需要将yarn-cluster改成yarn-client即可
提交jar到HDFS
在上面的命令中, --conf spark.yarn.jar 指定的路径是hdfs的文件路径,我们可以提交本地文件到hdfs上面,命令如下:
需要配置的环境变量
在执行的时候报了一个错误,大意指找不到HADOOP_CONF_DIR与YARN_CONF_DIR环境变量。环境变量的配置如下:
HDFS nodename 状态
在执行命令的时候出现下面这个错误。
后来查看HDFS nodename状态发现当前状态为standby
之前hadoop1的核心组成是两部分,即HDFS和mapdeduce。目前在hadoop2中变为HDFS和yarn 。
新的HDFS中的namenode不再只有一个了,可以有多个,每个都有相同的职能。如果有2个NodeName的话,一个的状态是active,一个为standby 。active状态的的nodeName是正常运行的,standby处于待命状态。一旦一个nodeName不能工作,可以通过自动或手动切换,standby状态的namenode就会转变为active状态的继续工作。
所以当出现上面的错误,可以把此nodename的状态更改为active。
下面是几个节点命令用来参考(未测试)
注意hdfs路径
在提交下面的命令的时候,
报错为:java.net.unknownHostException:spark
这个错误的原因是hdfs的路径没有写正确,应该加入集群的名字:
spark 简介
spark 是一个比较流行的内存计算(迭代计算,DAG计算)框架
从架构和应用的角度来看,spark是一个仅包含计算逻辑的开发库,而不包含任何资源管理和调度相关的实现,这使的spark可以灵活运行在目前比较主流的资源管理系统上。
目前典型的资源管理系统为mesos和yarn。
yarn 简介
yarn是一个新的mapreduce框架。
mapreduce是一种编程模型,用于大规模数据集的并行计算,它极大的方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
mapdeduce存在一些缺点比如,可扩展性、内存消耗、线程模型、可靠性和性能上的缺陷,为了根本上解决MapReduce上存在的问题,从hadoop0.23.0版本开始,hadoop的MapReduce框架完全重构,新的MapReduce 命名为MapReduceV2,又称之为yarn。
spark on yarn 提交方式
yarn-cluster方式提交
./spark-submit \ --master yarn-cluster \ --executor-memory lg \ --num-executors 4 \ --conf spark.yarn.jar = hdfs://cluster1/spark/spark-assembly-1.3.1-hadoop2.6.0.jar \ --class java.cloud.bigdata.spark.SparkListTest \ /home/hadoop/spark-1.3.1/bin/sparkyarn1.jar | 提交任务 master 提交到hdfs上的spark-hadoop.jar文件 jar包中的class类 本地写的程序打成的jar包 |
如果有参数的话可以在以上命令下面加入参数 |
如果想使用yarn-client方式提交,只需要将yarn-cluster改成yarn-client即可
./spark-submit \ --master yarn-client\ --executor-memory lg \ --num-executors 4 \ --conf spark.yarn.jar = hdfs://cluster1/spark/spark-assembly-1.3.1-hadoop2.6.0.jar \ --class java.cloud.bigdata.spark.SparkListTest \ /home/hadoop/spark-1.3.1/bin/sparkyarn1.jar |
在上面的命令中, --conf spark.yarn.jar 指定的路径是hdfs的文件路径,我们可以提交本地文件到hdfs上面,命令如下:
进入hadoop文件夹下执行下面命令: ./hadoop fs -put /home/hadoop/spark-1.3.1/lib/spark-assembly-1.3.1-hadoop2.6.0.jar / 上面的命令会把文件提交的HDFS的根目录下面,如果要把文件提交某个文件夹之下,可以执行下面的命令: /hadoop fs -put /home/hadoop/spark-1.3.1/lib/spark-assembly-1.3.1-hadoop2.6.0.jar /spark/ 执行上面的命令要先创建 spark文件夹 |
创建文件夹命令如下: /hadoop fs -makdir spark |
在执行的时候报了一个错误,大意指找不到HADOOP_CONF_DIR与YARN_CONF_DIR环境变量。环境变量的配置如下:
打开etc/profile,输入: export HADOOP_HOME=/home/hadoop/hadoop export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export YARN_CONF_DIR =${HADOOP_HOME}/etc/hadoop 保存之后执行: source ect/profile |
在执行命令的时候出现下面这个错误。
Operation category WRITE is not supported in state standby |
之前hadoop1的核心组成是两部分,即HDFS和mapdeduce。目前在hadoop2中变为HDFS和yarn 。
新的HDFS中的namenode不再只有一个了,可以有多个,每个都有相同的职能。如果有2个NodeName的话,一个的状态是active,一个为standby 。active状态的的nodeName是正常运行的,standby处于待命状态。一旦一个nodeName不能工作,可以通过自动或手动切换,standby状态的namenode就会转变为active状态的继续工作。
所以当出现上面的错误,可以把此nodename的状态更改为active。
下面是几个节点命令用来参考(未测试)
启动standby的nodename: sbin/hadoop-daemon.sh start namenode |
在提交下面的命令的时候,
.. --conf spark.yarn.jar=hdfs://spark/spark-assembly-1.3.1-hadoop2.6.0.jar .. |
这个错误的原因是hdfs的路径没有写正确,应该加入集群的名字:
--conf spark.yarn.jar=hdfs://cluster1/spark/spark-assembly-1.3.1-hadoop2.6.0.jar |
相关文章推荐
- 简单易懂云计算(转自天涯感谢原楼主iamsatisfied)
- Spark随谈——开发指南(译)
- 2011云计算知识库:盘点千奇百怪的云名称
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- Spark,一种快速数据分析替代方案
- 康诺云推出三款智能硬件产品,为健康管理业务搭建数据池
- C#分布式事务的超时处理实例分析
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- Erlang分布式节点中的注册进程使用实例
- C++实现的分布式游戏服务端引擎KBEngine详解
- php+ajax导入大数据时产生的问题处理
- C# 大数据导出word的假死报错的处理方法
- ASP.NET通过分布式Session提升性能
- Hadoop2.X/YARN环境搭建--CentOS7.0 JDK配置
- Hadoop2.X/YARN环境搭建--CentOS7.0系统配置
- 用Python实现协同过滤的教程
- Python利用多进程将大量数据放入有限内存的教程
- mongodb常遇到的错误。
- 分享一个简单易用的RPC开源项目—Tatala
- 手把手教你配置Hbase完全分布式环境