使用hadoop和spark在Azure上的WordCount

时间:2015-11-17 17:24:59

标签: scala azure hadoop apache-spark hdinsight

我必须在Azure中的群集Hdinsight上运行一个简单的wordcount。我创建了一个带有hadoop和spark的集群,我已经有了代码的jar文件,我不知道如何设置集群的问题以及在Azure上启动spark的正确代码行,I想尝试不同的节点组合(工人,2-4-8),看看程序如何扩展。

每次我使用spark-submit in mode yarn-client启动应用程序时,它都可以工作,但总是带有2个执行器和1个核心,大约3分钟即可获得1gb输入文本文件,如果我设置更多执行程序和更多核心设置,但他没有使用它,所以我认为它与RDD的问题,它不会在正确的模式分割输入文件,因为它只创建2个任务开始2 worknode和其他节点保持不活动状态。

使用sbt包创建的jar文件。

启动Spark的命令:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import java.io._
import org.apache.hadoop.fs
import org.apache.spark.rdd.RDD


object SimpleApp {
def main(args: Array[String]){
//settingsparkcontext
val conf = new SparkConf().setAppName("SimpleApp")
val sc = new SparkContext(conf)
//settingthewordtosearch
val word = "word"
//settingtime
val now = System.nanoTime
//settingtheinputfile
val input = sc.textFile("wasb://xxx@storage.blob.core.windows.net/dizionario1gb.txt")

//wordlookup
val splittedLines = input.map(line=>line.split(""))
val find = System.nanoTime
val tot = splittedLines.map(x => x.equals(word)).count()
val w=(System.nanoTime-find)/1000000
val rw=(System.nanoTime-now)/1000000
//reportingtheresultofexecutioninatxtfile
val writer = new FileWriter("D:\\Users\\user\\Desktop\\File\\output.txt",true)
try {
writer.write("Word found "+tot+" time total "+rw+" mstimesearch "+w+" time read "+(rw-w)+"\n")
}
finally writer.close()
//terminatingthesparkserver
sc.stop()
}}              

WordCount代码:

label {
    display:block;
}
span {
    float:left;
    margin-right: 50px;
}

input {
    width:50px;
}

#total:before {
    content: "=";
    float: left;
    position: relative;
    top: 21px;
    left: -34px;
}

1 个答案:

答案 0 :(得分:0)

并行程度

“除非您为每个操作设置足够高的并行度,否则将无法充分利用群集.Spark会自动设置每个文件根据其大小运行的”map“任务的数量(尽管您可以通过可选项控制它)参数到SparkContext.textFile等)您可以将并行级别作为第二个参数传递(请参阅spark.PairRDDFunctions文档),或者设置配置属性spark.default.parallelism以更改默认值。一般情况下,我们建议2-群集中每个CPU核心有3个任务。“

<强>来源: https://spark.apache.org/docs/1.3.1/tuning.html