![img_54f3ab1bd96d4bda54ea1d68c0fc091b.png](https://i-blog.csdnimg.cn/blog_migrate/4da550560d5b30c801c982bd2165381f.png)
![img_f1411d0b805929220394cb3584bcb809.png](https://i-blog.csdnimg.cn/blog_migrate/3af62a8fa4872cbaa664328cbef41bae.png)
spark
![img_a0c02128d6165392e1fdf0c6b3feacc6.png](https://i-blog.csdnimg.cn/blog_migrate/e336de06aef63c1357dad0d55f9a9b5a.png)
![img_36414a82f9be7f5e924206eb392405b2.png](https://i-blog.csdnimg.cn/blog_migrate/162741d3bf8084ff58e7a96090d6e991.png)
![img_8c9d9961ccb0e42397fb164930390f7d.png](https://i-blog.csdnimg.cn/blog_migrate/8410d8948b20d023aaf5c3f007dd6ca5.png)
![img_72cdf516fd84447c898129d55ea649b9.png](https://i-blog.csdnimg.cn/blog_migrate/5ddecf52dd428784e51d3137b2319ce6.png)
![img_b2608e4a2c905ce3d4bcee509db1a658.png](https://i-blog.csdnimg.cn/blog_migrate/cea8eef57692f31b0bea8b47944e41f1.png)
![img_8086400e1264cec173ada8565a00f8b3.png](https://i-blog.csdnimg.cn/blog_migrate/8e9fd210ce1a5f96b02049e6681a23f1.png)
![img_93452893b7a67d2e3fe036654e4c5c70.png](https://i-blog.csdnimg.cn/blog_migrate/98a491b09bfd176bd4366e90af5b039b.png)
Spark 开发语言及运行模式介绍
![img_4977a11deb910c23a13183f14a7e4b87.png](https://i-blog.csdnimg.cn/blog_migrate/cfc56cb01d373797f8c05dd8e4100f62.png)
![img_78a2bb37a5f6c880ad3d54097cd16f0d.png](https://i-blog.csdnimg.cn/blog_migrate/f66852cce03a6dfe91663a1165134c4a.png)
Scala安装
![img_24529867fbf29bd75ea365ff80e0e00e.png](https://i-blog.csdnimg.cn/blog_migrate/8fbeffbd32b558722b8b1996539c265c.png)
下载 Scala
![img_4032393bd9339350606f71d2da1c6cc7.png](https://i-blog.csdnimg.cn/blog_migrate/f6b97838fe51df995a6aee0fd2411188.png)
配置到系统环境变量
![img_8522936af61ad949dbf00997440ab3d9.png](https://i-blog.csdnimg.cn/blog_migrate/16617cab203d0ae76fdad2f8e4c45dd9.png)
配置成功
Spark环境搭建及 wordCount 案例实现
![img_350b21be0cbebf46657c10d96759b4b8.png](https://i-blog.csdnimg.cn/blog_migrate/a9dc3b736cc42a243b1ffc34cd584e08.png)
下载 spark
![img_ba69e0528186da0e9bfd1e7b6066150e.png](https://i-blog.csdnimg.cn/blog_migrate/a8ab83d47f8a9895bcc1107f02057700.png)
解压编译
![img_8e10ae085d49fcc2ff40c9528dc083ce.png](https://i-blog.csdnimg.cn/blog_migrate/deee483d27ae2f22d80f6a8da60e7640.png)
spark-shell可执行程序
如何提交应用程序
![img_d7d2ffa3a8060218d2c99b64f7e15729.png](https://i-blog.csdnimg.cn/blog_migrate/5baf853bbb5427efa91a72cdf14d73f0.png)
开启2个即可
![img_bc7fac50576918cd2dcdd6c34d4438a1.png](https://i-blog.csdnimg.cn/blog_migrate/dc8f6a29a95733dab09b2625cbc0c6a4.png)
![img_f465eac7d6eaca56807fb4901c7e9c9e.png](https://i-blog.csdnimg.cn/blog_migrate/a51ca41cb5d2a2167f34646458b72e35.png)
./spark-shell --master local[2]
读取输出文件内容
![img_ee17204732f22e375e1c2e5710f46cf4.png](https://i-blog.csdnimg.cn/blog_migrate/e17810138da5069de25d37f543e8c973.png)
![img_a5d790c7565b5d37dbdf32d3419a4c43.png](https://i-blog.csdnimg.cn/blog_migrate/f93e47e9e519e514c5cec9878356826b.png)
![img_e34279f3ade4c35c6f1b7c04ba2dad77.png](https://i-blog.csdnimg.cn/blog_migrate/8511039f1ad9de36b9cc12e17798b0f4.png)
3行数据
按空格拆分
![img_2e4afc545cc0beca8024367fc20b8fd5.png](https://i-blog.csdnimg.cn/blog_migrate/bde015044fe274c882db82c32d566a8a.png)
为每个单词赋1,表出现频率
![img_043619d1f1e3cddecbefd0ccb449426c.png](https://i-blog.csdnimg.cn/blog_migrate/ba44d9e5735245a67e617ca225845306.png)
a.map(word => (word,1))
统计
![img_bfd72d5c31e592e72b9018aa5a5e59c7.png](https://i-blog.csdnimg.cn/blog_migrate/60e92947c2bbf4f65575b6ff877ef9ac.png)
以上操作其实通过一条方法链即可完成!!!
![img_e5d3e2c95c83a379609f47d441a0e8a4.png](https://i-blog.csdnimg.cn/blog_migrate/8e6c108816af8e03cfdd2871abe3bdb5.png)
sc.textFile("file:///Volumes/doc/data/hello.txt").flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_).collect
GUI 管理界面
![img_d1e31664a596cd06aeeb0fbbcc7227ce.png](https://i-blog.csdnimg.cn/blog_migrate/4b196378d84a4c111fa51903074dcdad.png)
访问该地址即可
![img_4ab05f691fb4b7d86876855c66e1061f.png](https://i-blog.csdnimg.cn/blog_migrate/8d2d02d981c2f069e65ffca5d4b2fdbf.png)
http://localhost:4040
Flink 概述
使用 Flink 完成 wordcount 统计
Flink 环境部署
![img_d4b7ac59623079e32822db50f3af03f9.png](https://i-blog.csdnimg.cn/blog_migrate/b3b5fac4647abea347c8494f1e573a19.png)
下载
![img_4a7a476c5552a94b85d658977e753738.png](https://i-blog.csdnimg.cn/blog_migrate/ac9a804d796c75afd8d47512f2889fc3.png)
下载镜像到本地
![img_1cd772918ff39af3d6e2dafcc880c1f2.png](https://i-blog.csdnimg.cn/blog_migrate/0a5beb41ff4a067e10fea1654ac62f60.png)
解压
查看官网指南
![img_452dd1628804436409d064052fda0137.png](https://i-blog.csdnimg.cn/blog_migrate/fa9d0d204357b227f3ac3460118a1f42.png)
启动本地的一个 flink
![img_205871dbe44775b702eb7159eed01c3e.png](https://i-blog.csdnimg.cn/blog_migrate/1fe311a5545fb4c5408e01082797a153.png)
![img_1f61ef46f48c4e9584e2a7fb4c105ee4.png](https://i-blog.csdnimg.cn/blog_migrate/ef069af5a7c68903d48bd88c1cd6c077.png)
![img_dd2fdf998e2b589ee5eaa1098b5ba8fe.png](https://i-blog.csdnimg.cn/blog_migrate/3b14ec9017963434f8ee69c1fe9a6d26.png)
浏览器访问:http://localhost:8081/
使用方法
![img_b22ec8d04a51575d444bb7047a2fcae0.png](https://i-blog.csdnimg.cn/blog_migrate/1a7ec4bb1767aef1fd919fb79a129015.png)
Beam 概述
将 wordCount的 Beam 程序以多种不同 Runner运行
Java 版本快速入门指南
![img_d9448f7cacd2cb6190f1f3c67e5a9412.png](https://i-blog.csdnimg.cn/blog_migrate/8b4569c1f88238e64bc0d2daa74036a7.png)
![img_f174a31291f4a7ecb1326b3a9a8f5e1b.png](https://i-blog.csdnimg.cn/blog_migrate/0b626c9a58cb5f374fefa2e8578de391.png)
![img_b7f5f14cdd65d8aaaf024c1861457cd0.png](https://i-blog.csdnimg.cn/blog_migrate/1403fb19842ea14a0f24224bcfcf6961.png)
maven 命令执行成功
![img_87a6ac7d9d0e28daa92b0fb7f3c12298.png](https://i-blog.csdnimg.cn/blog_migrate/42476e0e7d52ff92cec8a6e374092adc.png)
运行命令
![img_1322ba198eaf5d95a9e0e55d79aa7e45.png](https://i-blog.csdnimg.cn/blog_migrate/8f9bda9f392f5983f89730f0023b3161.png)
![img_950c8f4512164662647a9ec80213ddb8.png](https://i-blog.csdnimg.cn/blog_migrate/bae15bd5e9df8f81d440dd2f747398db.png)
生成文件
![img_4ec74149560979ccf34e29a066aa84d8.png](https://i-blog.csdnimg.cn/blog_migrate/a1bd84cb1c5508af1a753060830f7f56.png)
查询结果