博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark任务上传
阅读量:6586 次
发布时间:2019-06-24

本文共 3781 字,大约阅读时间需要 12 分钟。

hot3.png

环境:Spark1.6.1+Hadoop2.6.4+Scala2.10.6

目标:自己用Scala开发一个word count小程序,并上传到spark集群运行成功。

步骤:

1、本地开发代码。

1.1、配置pom

4.0.0
com.xhj.scalafirst
scalafirst
1.0-SNAPSHOT
1.8
1.8
UTF-8
2.10.6
1.6.1
2.6.4
org.scala-lang
scala-library
${scala.version}
org.apache.spark
spark-core_2.10
${spark.version}
org.apache.hadoop
hadoop-client
${hadoop.version}
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
3.2.2
compile
testCompile
-make:transitive
-dependencyfile
${project.build.directory}/.scala_dependencies
org.apache.maven.plugins
maven-shade-plugin
2.4.3
package
shade
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
com.qf.spark.WordCount

1.2、写代码

package scalapackage.testsparkimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}import scala.collection.mutable/**  * Created by Germmy on 2018/5/3.  */object SparkWC {  def main(args: Array[String]) {    val sparkConf: SparkConf = new SparkConf().setAppName("SparkWC")//.setMaster("local[*]")    val sc: SparkContext = new SparkContext(sparkConf)    val lines: RDD[String] = sc.textFile(args(0))    val by: RDD[(String, Int)] = lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _).sortBy(_._2)//    val toBuffer: mutable.Buffer[(String, Int)] = by.collect().toBuffer//    println(toBuffer)    by.saveAsTextFile(args(1))    sc.stop()  }}

1)、setMaster(local[*])表示是本地CPU开多线程模拟Spark集群的,本地调通后,在上传Spark集群之前,需要将其注释掉

2)、此程序接受2个参数,一个是从哪里读,一个是结果写到哪里去

2、打包。

2.1、运行命令(当然用手点击Intellij右边的maven插件也可以)

mvn clean package

2.2、产生2个jar,一个很小,一个超大如下图所示

2.3、将较大的那个改成wcg.jar,用winscp上传至node01节点上

2.4、在spark集群中运行如下命令:

./bin/spark-submit --class scalapackage.testspark.SparkWC --master spark://node01:7077 --executor-memory 1g --total-executor-cores 2 /home/germmy/wcg.jar hdfs://node01:9000/myinput/a.txt hdfs://node01:9000/output/08

注:

1)、scalapackage.testspark.SparkWC 表示程序的入口类,类似jar包的Main  Class

2)、hdfs://node01:9000/myinput/a.txt表示从哪里读文件

3)、hdfs://node01:9000/output/08表示结果存在哪,注:不能重复,否则会报错

2.4.1、运行时,可以观察web监控页面

 

2.4.2、运行后node01节点控制台显示

2.4.3、查看hdfs中的内容

 

3、中途遇到的问题解决

3.1、本地运行SparkWC时,报could not locate executable null bin winutils.exe in the hadoop binaries

原因:因为windows没有配HADOOP_HOME环境变量。

解决:需要先下载hadoop的,在环境变量中配上HADOOP_HOME=D:\software_package\work_related\bigdata\hadoop-common-2.2.0-bin-master,并将path配置成$HADOOP_HOME\bin

注意:Intellij必须在配置环境变量后重启,否则可能会读取不到环境变量。因为你开Intellij在先,配置环境在后,是读不到的,这是有的。

3.2、exitCode: 1 due to: Exception from container-launch.

这是因为mapred-site.xml中的jobhistory服务器配置的不对导致的,改成正确主机名问题解决。

转载于:https://my.oschina.net/windows20/blog/1807822

你可能感兴趣的文章
微软URLRewriter.dll的url重写的简单使用(实现伪静态)
查看>>
leetcode -- Combination Sum II
查看>>
Navicat for MySQL 使用SSH方式链接远程数据库(二)
查看>>
poj 1274The Perfect Stall
查看>>
HDU 4720 Naive and Silly Muggles (外切圆心)
查看>>
scrapy爬虫框架实例一,爬取自己博客
查看>>
React是UI的未来吗?
查看>>
手把手教你通过Thrift 访问ApsaraDB for HBase
查看>>
Vue+webpack+Element 兼容问题总结
查看>>
复杂recyclerView封装库
查看>>
见微知著 —— Redis 字符串内部结构源码分析
查看>>
Command './js-ant' failed to execute
查看>>
阿里云NFS NAS数据保护实战
查看>>
Spring cloud配置客户端
查看>>
Android API中文文档(111) —— MailTo
查看>>
Linux 中如何卸载已安装的软件
查看>>
thinkphp 3.2 增加每页显示条数
查看>>
oracle日常简单数据备份与还原
查看>>
黑马程序员__反射总结
查看>>
Quartz原理
查看>>