5分钟学习spark streaming之 轻松在浏览器运行和修改Word Counts
方案一:根据官方实例,下载预编译好的版本,执行以下步骤:
- nc -lk 9999 作为实时数据源
- ./bin/run-example org.apache.spark.examples.sql.streaming.StructuredNetworkWordCount localhost 9999
- 在第一步的terminal 窗口输入一些句子
- 第二步的output 就是实时执行结果
此方案的问题有
- 探索其中的api 比较困难,比如我想试试另外一种写法,需要改源码,然后编译,时间就变长了
- 如果是一个裸机的话,需要安装好java 环境,spark和java版本之间的依赖也要特别小心
方案二(2个docker 命令,你就可以为所欲为的在浏览器里面运行,更改Word counts这个hello word了)
除去下载docker img的时间,5min没法完成以下步骤,请立即私信给我,有奖,哈哈
- docker run -p 8080:8080 --rm fancyisbest/zeppeinsparkstreaming:0.1 (第一次会花很长时间在pull img)
- docker exec -it `docker ps -q` nc -lkp 9999 (注意如果你有多个container在运行,请把`docker ps -q` 替换成上一个的container id)
- 打开浏览器输入http://localhost:8080/#/, 左下角有Word counts,点击进入notebook,点击运行所有段落。
- 在第二步termial输入些句子,你就可以在notebook里面观察到streaming 在执行。
此方案的优势
- 除了docker,不需要安装任何依赖,这很dev ops
- 可以狠狠地改代码,改完就可以立即执行,不用担心会破坏任何环境,探索你的世界,你做主。
提示:
- 此方案的技术堆是:docker+zeppelin+spark
- docker img是我在zeppelin img上加入了必要的命令和notebook 打包成的img,请放心使用。
- 如果你对docker,zeppelin不熟悉,不要担心,它们都很简单,只要稍微花点时间就可以掌握,请记住我们的目标是学习spark streaming
参考:
zeppelin 官网http://zeppelin.apache.org/