此文主要记录学习spark2.0例子的一些信息。
spark2基本不需要安装配置,直接装上scala就行。当然,有些example是依赖hadoop的hdfs的。因此你的机器上得先装好对应版本的hadoop。
spark2.0和spark早期版本有一些不同,早期的spark版本bin目录下的脚本会和hadoop的启动脚本重名。好像spark1.6以后就没这个问题了,所以可以放心配置$PATH环境变量.
如果想通过scala脚本来做一些事情,直接在终端运行spark-shell. 接下来你就可以编写一下scala语句来做一些事情了。这个网上例子很多,不详记。
run-example脚本就是专门用来运行example的。所有的scala example都放在$SCALA_HOME/example/..../scala/...
比如运行其中的一个例子,
$run-example SparkPi
接下来你会看到一堆的日志信息,完全不清楚输出的结果是哪句。这些日志信息是很有用的,它会告诉你程序有没有出错,哪个job在执行。但大多数正常情况不需要关注它。那就重定向输出结果吧。
$run-example SparkPi > textout
$ more text
Pi is roughly 3.142875714378572
现在是不是结果清晰很多呢。
接下来看看sparkstreaming 的例子。开两个终端,一个作为“nc”终端,
$ nc -lk 9999 < readme.txt
意思是建立一个监听服务器,端口为9999,允许多个客户端连接。然后向写缓冲区输入readme.txt的内容。
打开第二个终端运行我们的spark streaming example.
$ run-example NetworkWordCount localhost 9999 > textout
这个就是运行NetworkWordCount这个例子,参数为localhost和9999. 输出信息重定向到textout. 接下来你会看到一大堆的log输出,然后去打开textout看你的结果。
跑例子的过程很简单,但是example的内容还需去理解,注意example里的源码不是改了就行的,还得提交,这样run-example脚本才能用。还有像streaming, spark sql里面的很多例子是需要访问hdfs文件的,所以在这之前得让你的hadoop run起来。