10小时大数据:第9章-前沿技术拓展Spark Flink Beam

吐槽MapReduce
    开发起来爽不爽?
    运行速度如何?
    框架多样性?
Spark特点
    spark.apache.org
    读懂英文介绍
    speed
    ease of use
    generality
    runs everywhere
Spark与Hadoop深入对比
    这个对比好好看一下
Spark开发语言及运行模式
    学spark就直接从头学习scala
    运行模式,建议local模式
Scala,Maven安装
    安装scala,scala-2.11.8.tgz
    解压到app下面和hadoop一个目录下
    将scala配置到环境变量中去
    启动scalascala
    安装maven,apache-maven-3.3.9-bin.tar.gz
    解压到app下
    配置到环境变量中去
    测试mvn -version
Spark环境搭建及wordcount案例实现
    环境部署先去官网下载spark源码包,选择2.1.0版本,source code,具体如何编译看文章http://spark.apache.org/docs/2.1.0/building-spark.html
    解压编译好的包到app目录下
    在spark的bin目录下去启动
    启动一个spark-shell --help
    本地启动spark-shell --master local[2],2表示以两个线程的方式,参考http://spark.apache.org/docs/2.1.0/submitting-applications.html#master-urls
    如何实现wordcount
    进入scalascala
    var file = sc.textFile("file:///home/hadoop/data/hello.txt")定义一个文件
    输出一下内容file.collect
    查看有多少行数据file.count
    spark实现wc:
 

	val file = sc.textFile("file:///home/hadoop/data/hello.txt")
	val a = file.flatMap(line => line.split(" "))
	// 转换一下
	val b = a.map(word => (word,1))
	// 目前的数据内容为:Array((hadoop,1), (welcome,1), (hadoop,1), (hdfs,1), (mapreduce,1), (hadoop,1), (hdfs,1))
	// 将key相同的两两相加
	val c = b.reduceByKey(_ + _)
	// c的内容:Array((mapreduce,1), (welcome,1), (hadoop,3), (hdfs,2))

    一句话可以搞定上边写的代码sc.textFile("file:///home/hadoop/data/hello.txt").flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_ + _).collect
    通过浏览器监控地址在启动spark的时候有显示http://ip:4040
    spark和mapreduce的易用性?
Flink概述
    也是分布式计算框架,流式的处理框架
    官网flink.apache.org
使用Flink完成wordcount统计
    Flink环境搭建
    官网下载http://flink.apache.org/,解压到app目录下
    启动本地在flink的bin目录下./start-local.sh
    浏览器ui界面http://ip:8081
    项目源码https://github.com/apache/flink
    如何使用https://ci.apache.org/projects/flink/flink-docs-release-1.4/quickstart/setup_quickstart.html,在github上去看wordcount源码

./bin/flink run ./examples/batch/WordCount.jar \
--input file:///home/hadoop/data/hello.txt --output file:///home/hadoop/tmp/flink_wc_output

Beam概述
google新老三驾马车
    老的三驾马车:GFS,MapReduce,BigTable
    新的三驾马车:Dremel(交互式分析系统),Pregel(图计算),Caffeine(增量索引)
beam
    官网beam.apache.org
    将批处理和流处理的作业运行在不同的引擎(Flink、Spark等)之上
将wordcount的Beam程序以多种不同的runner(FlinkRunner,SparkRunner等)运行
    如何启动呢?https://beam.apache.org/get-started/quickstart-java/
    运行测试
 

Beam运行:
#direct方式运行
mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--inputFile=/home/hadoop/data/hello.txt --output=counts" \
-Pdirect-runner

#spark方式运行
mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--runner=SparkRunner --inputFile=/home/hadoop/data/hello.txt --output=counts" -Pspark-runner

Flink
flink方式运行
 

Flink运行
./bin/flink run ./examples/batch/WordCount.jar \
--input file:///home/hadoop/data/hello.txt --output file:///home/hadoop/tmp/flink_wc_output

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值