【快速入门大数据】前沿技术拓展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_第1张图片运行 可运行在hdfs之上计算

Spark生态系统对比Hadoop生态系统

【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第2张图片【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第3张图片

对比
【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第4张图片对比mr和spark
【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第5张图片

开发语言及运行环境

开发Spark
【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第6张图片
运行模式
代码是一样的提交参数不同 导致运行模式不同

Scala&Maven安装

解压文件

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

验证

scala

mvn -version

配置Spark

【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第7张图片
【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第8张图片
手动编译适合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_第9张图片
master URL
[]两个线程

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

快速指南
简单helloworld

注意本地读取
在这里插入图片描述

[root@hadoop01 data]# cat hello.txt
hello world
hello hadoop
hello hdfs

scala

scala> 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_第10张图片

总结

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_第11张图片
【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第12张图片
配合使用的框架,流入流出
【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第13张图片
注意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_第14张图片

Beam

java\python编写应用于批处理、流处理
【快速入门大数据】前沿技术拓展Spark,Flink,Beam_第15张图片https://beam.apache.org/

quickstart-java

jdk1.7之后 和 maven 前置环节

tree

Beam运行:
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_第16张图片

你可能感兴趣的:(#,Hadoop)