以前,我们尝试用一个Scala and Spark进场。
下一步是使用电光、hdfs和scala将我们的解决方案部署到hdInsight。
我们将调配一个电光群集:
由于我们要使用HDInsight,因此我们可以利用HDFS,从而使用Azure存储:
然后,我们选择我们的实例类型:
我们已经做好了打造电光集群的准备:
我们的数据将上传到HDFS文件系统。
为此,我们将文本文件上载到与HDFS集成的Azure存储帐户。
有关使用Azure CLI管理存储帐户的更多信息,请查看官方guide。任何文本文件都可以工作。
azure storage blob upload mytextfile.txt sparkclusterscala example/data/mytextfile.txt
由于我们使用的是JDFS,因此我们将对原始脚本进行一些更改:
val text = sc.textFile("wasb:///example/data/mytextfile.txt")
val counts = text.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
counts.collect
然后,我们可以使用SSH将Scala类上传到头节点:
scp WordCountscala.scala demon@{your cluster}-ssh.azurehdinsight.net:/home/demo/WordCountscala.scala
同样,为了运行脚本,事情非常简单:
spark-shell -i WordCountscala.scala
一旦任务完成,我们就会看到电光提示符。此外,我们现在可以将结果保存到HDFS文件系统。
<scala> counts.saveAsTextFile("/wordcount_results")
快速检查一下。
hdfs dfs -ls
/wordcount_results/
hdfs dfs -text /wordcount_results/part-00000
就这样!