#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam


文章目录

  • 概览
  • Spark
    • mr问题
    • Spark特征
    • Spark生态系统对比Hadoop生态系统
    • 开发语言及运行环境
    • Scala&Maven安装
    • 配置Spark
    • 总结
  • Flink分布式计算框架(流处理)
    • 概述
    • 配置环境
    • Flink运行
    • 检验
  • Beam
    • quickstart-java

概览 Spark、Flink、Beam
Beam编写完适用于Spark、Flink使用
Spark mr问题 mr->spark?
开发不爽 mr两个过程
速度不快 m存硬盘r存hdfs
框架多样性 批处理 流式处理
Spark特征 http://spark.apache.org/
速度快 内存和磁盘 都比mr快
易用 支持多语言 命令行直接运行
通用性 同一个应用程序同时引用库
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片
运行 可运行在hdfs之上计算
Spark生态系统对比Hadoop生态系统 #|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

对比
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片
对比mr和spark
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

开发语言及运行环境 开发Spark
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

运行模式
代码是一样的提交参数不同 导致运行模式不同

Scala&Maven安装 【#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam】解压文件
tar -zxf apache-maven-3.6.1-bin.tar.gz -C ./

环境变量配置
export SCALA_HOME=/root/software/scala-2.10.6 export PATH=$SCALA_HOME/bin:$PATH export MAVEN_HOME=/root/software/apache-maven-3.6.1 export PATH=$MAVEN_HOME/bin:$PATH//刷新配置 source /etc/profile

验证
scalamvn -version

配置Spark #|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

手动编译适合cdh的压缩包(注意1.7的jdk可能会过时了)
spark-2.4.3-bin-2.6.0-cdh5.15.1.tgz
进入bin目录启动模式(本地测试local好)
/root/software/spark-2.4.3-bin-2.6.0-cdh5.15.1/bin
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

master URL
[]两个线程
//启动spark两个线程 ./spark-shell --master local[2]

快速指南
简单helloworld
注意本地读取
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

[root@hadoop01 data]# cat hello.txt hello world hello hadoop hello hdfsscalascala> val textFile = spark.read.textFile("/root/data/hello.txt")scala> textFile.collect res1: Array[String] = Array(hello world, hello hadoop, hello hdfs, "")scala> textFile.count res2: Long = 4

检验
http://hadoop01:4040/jobs/
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

总结
spark启动:spark-shell --master local[2]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))val c = b.reduceByKey(_ + _) 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

Flink分布式计算框架(流处理) 概述 #|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

配合使用的框架,流入流出
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

注意hadoop版本和scala版本,新版flink并未细分下载选项
配置环境 flink解压
tar -zxf flink-1.12.1-bin-scala_2.11.tgz -C ./

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

检验
[root@hadoop01 tmp]# cat flink_wc_output hadoop 1 hdfs 1 hello 3 world 1

#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

Beam java\python编写应用于批处理、流处理
#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片
https://beam.apache.org/
quickstart-java jdk1.7之后 和 maven 前置环节
treeBeam运行: mvn archetype:generate \ -DarchetypeGroupId=org.apache.beam \ -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \ -DarchetypeVersion=2.27.0 \ -DgroupId=org.example \ -DartifactId=word-count-beam \ -Dversion="0.1" \ -Dpackage=org.apache.beam.examples \ -DinteractiveMode=false#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方式运行

#|【快速入门大数据】前沿技术拓展Spark,Flink,Beam
文章图片

    推荐阅读