到目前为止,基于RDD的spark streamming实时应用和离线应用(主要解析日志)已经写了一些,但是对spark的了解还是很少,所以决心花点精力,对spark做一些比较深入的了解和学习。参照之前hbase的学习经验,感觉除了看一些文章之外,搭建调试环境,碰到问题通过源码去了解细节,对于学习开源产品有着非常重要的作用。所以决定先把spark的本地调试环境搭建起来。
依赖: JDK,maven,scala, IDEA
1, 下载spark源码,并且编译
到github的的spark主页上下载指定branch的源码,并且编译。
1
2
|
git clone -b branch-2.1 https://github.com/apache/spark.git
build/mvn -DskipTests clean package
|
2, IDEA添加scala插件,导入spark工程
点击IDEA中的Perferences…,在弹出的如下页面中,搜搜scala,安装即可。安装完毕后,通过File,open spark工程。
3, 启动master和worker
在idea中跳转(Command + O)到master,然后可以直接启动master。同样在跳转到worker中,需要添加一下两个参数后,可以启动worker.
1
|
--webui-port 8081 spark://172.17.10.20:7077
|
至此,spark在本地便跑起来了。
4,小结
总体来说,spark的本地环境搭建还是蛮简单的。中途碰到一些问题,比方说启动的时候,出现Class not found com.google.common.找不到等,可以把对应的scope从provide改成compile. 另外,如果在生产环境碰到问题,可能远程调试更有用,这块暂时还没试。