收藏 分销(赏)

windows下非submit-方式运行spark-on-yarn(CDH集群).doc

上传人:二*** 文档编号:4744241 上传时间:2024-10-11 格式:DOC 页数:20 大小:1.49MB 下载积分:5 金币
下载 相关 举报
windows下非submit-方式运行spark-on-yarn(CDH集群).doc_第1页
第1页 / 共20页
本文档共20页,全文阅读请下载到手机保存,查看更方便
资源描述
(word完整版)windows下非submit 方式运行spark on yarn(CDH集群) windows 下运行spark on yarn (非submit方式) 本地环境 本地操作系统: windows 10. 1709 教育版 本地hadoop版本:hadoop-2。6。5 本地winutils版本:hadoop2。6.4-2。6。7 本地spark版本: spark—2.2.0—bin-hadoop2.6 本地scala版本:scala-2。11。11 本地java版本:jdk-1.8。0_151 本地IDEA版本:idea 2017。01 远端环境 集群操作系统: ubuntu-14。04-server版 集群hadoop版本: cloudera—cdh—5.13.0 集群spark 版本: SPARK2-2。2。0.cloudera1—1.cdh5.12.0。p0。142354 集群scala版本: cloudera cdh 5。13 自带spark1。6 (scala运行环境scala-2.9。2) spark2.2默认是用scala—2.11.8编译 集群java版本:jdk-1。8。0_151 资源下载地址 hadoop—2。6。5 http://mirrors.tuna.tsinghua。  spark—2.2。0 http://mirrors.tuna.tsinghua。edu。cn/apache/spark/spark-2.2。0/spark—2.2。0—bin-hadoop2。6.tgz  scala—2.11.11 https://downloads。 winutils https://github。com/steveloughran/winutils java spark2-csd http://archive.cloudera。com/spark2/csd/SPARK2_ON_YARN—2。2。0。cloudera1.jar 安装步骤 cdh5.13安装 该安装步骤不是本文重点,详细方法见文档ubuntu 14.04 搭建cloudera CDH。docx idea 安装 该安装步骤自行百度即可 cdh中安装spark 2。2.0 由于cdh集成的spark依然是spark1。6,需要在集群中添加csd,然后安装spark 2 1. 将csd文件下载并放到cloudera manager 节点的 /opt/cloudera/csd/目录下 此处需要将SPARK2_ON_YARN-2.2。0。cloudera1.jar 的用户的组修改为cloudera—scm:cloudera-scm 2。重启 cloudera-scm—server 服务 service cloudera-scm—server restart 在cloudera manager 的 主机->parcel下 可找到spark2 分配激活,并在集群中添加服务即可 配置系统环境变量 安装好scala和java后,分别配置JAVA_HOME和SCALA_HOME 同样,下载好hadoop和spark后配置SPARK_HOME和HADOOP_HOME。 并在path变量中添加%JAVA_HOME%\bin %SCALA_HOME%\bin %HADOOP_HOME%\bin %SPARK_HOME%\bin 此外需要将winutils工具bin目录下的文件全部拷贝到%HADOOP_HOME%\bin中去(重复的文件忽略) 配置IDEA和MAVEN 配置maven的源,将maven的源修改为aliyun 我们看到,IDEA内建的meven是3.3.9 它默认使用的配置文件是在windows的当前用户的。m2目录下,我们修改setting.xml 在mirrors节添加mirror IDEA配置支持scala File-〉Settings—>Plugins->搜索scala 安装即可,重启idea生效 新建scala工程 在pom。xml中 修改scala的版本,并enable auto import 删除 <dependency〉 <groupId>junit</groupId> 〈artifactId>junit</artifactId〉 <version〉4.4</version〉 <scope〉test〈/scope> 〈/dependency> 〈dependency> <groupId>org.specs</groupId〉 〈artifactId>specs〈/artifactId〉 〈version>1.2.5〈/version〉 〈scope>test</scope〉 </dependency〉 设置target:jvm-1.8 <configuration〉 〈scalaVersion>${scala。version}〈/scalaVersion〉 〈args〉 <arg〉-target:jvm—1.8</arg> </args> 〈/configuration〉 删除测试类 在工程的src/main/路径下创建resources目录 File—〉Project-Structure 1。添加scala类库 设置resources目录为资源目录 将cdh5.13 的5个配置文件拷贝放进resources目录 拷贝 core-site.xml,hdfs—site.xml,mapred-site。xml,yarn—site。xml到resources目录 拷贝 hive—site.xml 到resources目录 (若使用hbase,同理) 添加cloudera cdh maven支持 〈repository〉 <id〉cloudera〈/id〉 <url〉https://repository。cloudera。com/artifactory/cloudera-repos/</url〉 〈/repository> 在〈properties>节中 添加如下 〈properties〉 <scala。version>2。11.11</scala.version> 〈spark.version>2。2。0.cloudera1</spark.version> 〈hadoop.version〉2.6.0—cdh5。13.0〈/hadoop。version〉 〈hbase.version>1。2。0—cdh5.13.0</hbase.version〉 </properties> 在〈dependencies>节中添加spark,hbase,cdh hadoop的依赖 <!—-spark-—〉 <dependency> 〈groupId〉org.apache.spark〈/groupId〉 <artifactId〉spark—yarn_2。11</artifactId> <version〉${spark。version}</version〉 〈/dependency> <dependency〉 <groupId〉org。apache。spark〈/groupId〉 〈artifactId>spark—core_2.11〈/artifactId〉 <version>${spark。version}〈/version〉 〈/dependency> <dependency〉 〈groupId〉org.apache。spark</groupId> <artifactId〉spark—sql_2。11</artifactId> 〈version>${spark.version}〈/version〉 </dependency> 〈dependency〉 〈groupId>org。apache。spark</groupId> 〈artifactId〉spark-streaming_2.11〈/artifactId〉 〈version>${spark。version}〈/version> 〈/dependency> <dependency〉 〈groupId〉org。apache.spark</groupId> 〈artifactId>spark—mllib_2.11</artifactId> <version〉${spark。version}〈/version〉 </dependency> <dependency〉 〈groupId>org。apache.spark</groupId> <artifactId>spark—hive_2.11〈/artifactId> 〈version〉${spark。version}〈/version> </dependency〉 <!-—hbase——> 〈dependency> <groupId〉org。apache.hbase〈/groupId> <artifactId〉hbase〈/artifactId> 〈version>${hbase.version}</version〉 〈/dependency> 〈!-—cdh hadoop--> <dependency〉 〈groupId>org.apache.hadoop</groupId> 〈artifactId>hadoop-common〈/artifactId> <version〉${hadoop。version}</version〉 </dependency> <dependency〉 <groupId〉org.apache。hadoop〈/groupId〉 <artifactId〉hadoop-client</artifactId> <version〉${hadoop。version}</version> 〈/dependency> <dependency〉 〈groupId>org.apache.hadoop〈/groupId> <artifactId〉hadoop—hdfs</artifactId〉 〈version>${hadoop.version}</version〉 </dependency> 此后会自动下载jar包,时间较长,耐性等待 新建一个scala配置对象ConfigObj import org。apache.spark。SparkConf /** * ConfigObj * * @author longhao * @date 2017/11/9 * Email: longhao1@email。szu。edu。cn */ object ConfigObj { var sparkConf = new SparkConf() if (System。getProperty(”os。name”).startsWith("win”) || System.getProperty(”os。name”).startsWith(”Win")) { sparkConf。setJars(List("E:\\java_workspace\\sparkdemo\\out\\artifacts\\sparkdemo_jar\\sparkdemo。jar”)) } sparkConf.set("spark.yarn.jars", ”local:/opt/cloudera/parcels/SPARK2/lib/spark2/jars/*") .set("spark.eventLog。enabled”, "true") .set(”spark.eventLog。dir”, ”hdfs://hdfs—production/user/spark/spark2ApplicationHistory”) .set("spark.yarn。historyServer.address", "http://Medusa001:18089”) 。set("spark。executor.instances”, ”3") .set("spark.yarn.am.memory”, "1g”) .set(”spark。yarn.executor。memoryOverhead", ”2g”) .setMaster(”yarn") } ConfigObj中配置 spark。yarn。jars 避免每次运行都会将%SPARK_HOME%\jars下的jar包上传到集群。spark.eventLog.enabled 和spark.eventLog。dir以及spark.yarn。historyServer.address 配置后可以在集群history server中存储本地的job历史信息.这里的配置参考集群的/opt/cloudera/parcels/SPARK2/lib/spark2/conf下的spark-defaults.conf 如图: 新建测试代码 SparkPi import org。apache。spark.sql。SparkSession import scala.math.random /** * SparkPi * * @author longhao * @date 2017/11/9 * Email: longhao1@ */ object SparkPi { def main(args: Array[String]) { val spark = SparkSession 。builder .appName("Spark Pi”) 。config(conf = ConfigObj。sparkConf) 。getOrCreate() val slices = if (args.length 〉 0) args(0).toInt else 2 val n = math.min(100000L * slices, Int。MaxValue)。toInt // avoid overflow val count = spark.sparkContext。parallelize(1 until n, slices)。map { i => val x = random * 2 — 1 val y = random * 2 - 1 if (x * x + y * y <= 1) 1 else 0 }.reduce(_ + _) println(”Pi is roughly " + 4.0 * count / (n - 1)) spark。stop() } } 此时直接运行会报错与下面文件有关 /etc/hadoop/conf.cloudera.yarn/topology。py 修改core—site.xml文件 找到net.topology.script.file。name屏蔽掉它的值 结果如下; 集群中的历史记录 环境变量中也可以看到windows的路径
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服