1.本地运行
上篇文章的运行方式就是在本地的运行方式,并且是单线程的,如果你想多线程运行spark,则使用如下方式(以4个线程运行):
2.standalone mode
首先需要关闭hadoop,到spark的sbin目录下运行:
以上命令会在终端输出日志文件路径,tail该日志文件可看到类似spark://HOST:PORT的URL,如下:
表示spark的master节点已启动成功,在地址栏输入http://localhost:8080可看到spark的一些信息。日志中的spark://uohzoaix.local:7077是用来连接workers或者作为SparkContext的master参数进行传递。
上面已经启动了master节点,这时需要启动workers节点并连接到master节点,到bin目录下运行:
其中spark://IP:PORT就是上面日志中出现的那个URL。当出现如下信息表示启动成功:
此时刷新localhost:8080则可发现有worker已经注册到master上了。也可以通过http://localhost:8081来浏览worker的一些信息。其中7.0GB RAM是由于spark会预留1GB的内存给操作系统。
这个时候就可以启动spark-shell了:
再次刷新localhost:8080可再running applications栏里出现spark shell的信息。
此时运行如下代码:
终端输出res0: Array[Int] = Array(1, 2, 3)。
若要关闭spark集群执行:./sbin/stop-master.sh即可。
3.脚本方式
在conf/spark-env.sh文件中添加:
接着启动hadoop集群,通过localhost:8080可以看到集群的启动状况。
4.YARN和Mesos
待续……
由于目前spark多是已standalone方式运行,接下来会详细讲解该方式。
spark第二课结束。