前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【快速入门大数据】前沿技术拓展Spark,Flink,Beam

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

作者头像
瑞新
发布2021-12-06 14:03:13
5390
发布2021-12-06 14:03:13
举报

文章目录

概览

Spark、Flink、Beam Beam编写完适用于Spark、Flink使用

Spark

mr问题

mr->spark?

开发不爽 mr两个过程 速度不快 m存硬盘r存hdfs 框架多样性 批处理 流式处理

Spark特征

http://spark.apache.org/

在这里插入图片描述
在这里插入图片描述

速度快 内存和磁盘 都比mr快 易用 支持多语言 命令行直接运行 通用性 同一个应用程序同时引用库

在这里插入图片描述
在这里插入图片描述

运行 可运行在hdfs之上计算

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Tachyon 正式更名为 Alluxio,新的版本新增支持任意存储系统如阿里云对象存储 OSS、Amazon S3……

MPI是一个跨语言的通讯协议,,用于编写并行计算机。MPI的目标是高性能,大规模性,和可移植性。

生态对比hadoop、spark

在这里插入图片描述
在这里插入图片描述

对比hadoop、spark

在这里插入图片描述
在这里插入图片描述

对比mr和spark

在这里插入图片描述
在这里插入图片描述

开发语言及运行环境

开发Spark

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

在这里插入图片描述
在这里插入图片描述

Scala&Maven安装

解压文件

代码语言:javascript
复制
tar -zxf apache-maven-3.6.1-bin.tar.gz -C ./

环境变量配置

代码语言:javascript
复制
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

验证

代码语言:javascript
复制
scala

mvn -version

配置Spark

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手动编译适合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

在这里插入图片描述
在这里插入图片描述

master URL []两个线程

代码语言:javascript
复制
//启动spark两个线程
./spark-shell --master local[2]

快速指南 简单helloworld

注意本地读取

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[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/

在这里插入图片描述
在这里插入图片描述

总结

代码语言:javascript
复制
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分布式计算框架(流处理)

概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配合使用的框架,流入流出

在这里插入图片描述
在这里插入图片描述

注意hadoop版本和scala版本,新版flink并未细分下载选项

配置环境

flink解压

代码语言:javascript
复制
tar -zxf flink-1.12.1-bin-scala_2.11.tgz -C ./

wordcount

Flink运行

代码语言:javascript
复制
./bin/flink run ./examples/batch/WordCount.jar \
--input file:///root/data/hello.txt --output file:///root/data/tmp/flink_wc_output

检验

代码语言:javascript
复制
[root@hadoop01 tmp]# cat flink_wc_output
hadoop 1
hdfs 1
hello 3
world 1
在这里插入图片描述
在这里插入图片描述

Beam

java\python编写应用于批处理、流处理

在这里插入图片描述
在这里插入图片描述

https://beam.apache.org/

quickstart-java

jdk1.7之后 和 maven 前置环节

代码语言:javascript
复制
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方式运行
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 概览
  • Spark
    • mr问题
      • Spark特征
        • Spark生态系统对比Hadoop生态系统
          • 开发语言及运行环境
            • Scala&Maven安装
              • 配置Spark
                • 总结
                • Flink分布式计算框架(流处理)
                  • 概述
                    • 配置环境
                      • Flink运行
                        • 检验
                        • Beam
                          • quickstart-java
                          相关产品与服务
                          对象存储
                          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档