apachesparkbook's People
Forkers
xccoder zcw5116 greatming sunnyrivers wangdxh hammerzh-z trungnghiahoang96 xiexinyuan341 chen2fly acuriouscat-lab hellowuc kpboy19893311 wlazjr datali01 rocmarshal developer-xc wuhainan wanyinsheng yiaoyiyou desperado2 opencoder-cn wallace-163 anatanick devilt yangxuanxc soranimi ncepu-lihao hellozepp jdktomcatapachesparkbook's Issues
大神这本书写的很好,是我看过的spark方面最好的书了。有没有写一本flink书的计划呢???
flink我初步了解了下,好像比spark先进,至少容错上更先进一点,他们用分布式快照
书本实践分享1: 在docker集群上运行GroupByTest例子
编程还是要多实践,这里给大家分享下我的实践过程,希望对大家有帮助。
前提
装好ubuntu的虚拟机
运行docker集群
具体的操作可以参考下面这两篇文章:
1、使用 Docker 搭建 Hadoop + Hive + Spark 集群(上)
2、使用 Docker 搭建 Hadoop + Hive + Spark 集群(下)
其实也就是直接运行下面这几个命令就可以把集群起起来了
git clone https://github.com/bambrow/docker-hadoop-workbench.git
cd docker-hadoop-workbench
./start_demo.sh
运行GroupByTest例子
• 进入spark-master
docker exec -it spark-master /bin/bash
• 进入Spark目录
cd spark
• 可能需要重启woker
docker-compose restart spark-worker
• 运行GroupByTest
bin/run-example –executor-memory 2g –num-executors 1 –executor-cores 1 GroupByTest 3 4 100 2
DAG图查看
• 打开localhost:18080
这是History Server的地址,8080和8081端口是worker和slave的地址
• 随便点击一个运行成功的APP
• 看到程序被分解为2个Job,一个Action一个Job
• 回顾一下GroupByTest.scala的内容
先产生一个随机数组,然后计数、groupByKey+计数
• Stage0、Stage1、Stage2的RDD的DAG图
点进入蓝色的地方可以看到有3个Task,说明分区数量为3
Stage1虽然是Stage0的缓存,但还是画出了具体的流程。
可能出现的问题
分享一下我遇到的问题,我在使用以下命令运行官方的测试例子的时候出现了以下的错误:initial job has not accepted any resources check your cluster ui to ensure,大意是资源不够,一开始我还没怎么在意,后面给作者发邮件,才知道真的是资源不足。
1、进入spark-master容器:docker exec -it spark-master /bin/bash
2、进入Spark目录:cd spark
3、运行例子: bin/run-example GroupByTest 3 4 100 2
做法:
1、增大机器内存和核心
2、运行的时候减少性能,比如bin/run-example –executor-memory 2g –num-executors 1 –executor-cores 1 GroupByTest 3 4 100 2,好像没有加–executor-memory 2g,默认是16g,因此会出现不够用的情况,改小资源之后就可以正常使用啦。
第一章《大数据处理框架概览》勘误与修改建议
未来写作方向建议
请问有书里面的原始图片吗
前言建议
page105,倒数第八行,stage i 应该是stage 1
大神您好,有个问题能否解答下
spark,父子RDD分区是一对多的关系,有没有可能是窄依赖???如果有可能,能否举个例子呢
为啥shuffle必须要落盘,直接在内存中不能进行数据重新分布吗???
是不是看了这本书,就不用再看您的spark internals文档了???
关于第三章rdd的join的疑问?
Rdd的join和spark sql的join是否相同?
我看了一些资料说,“当前SparkSQL支持三种join算法:Shuffle Hash Join、Broadcast Hash Join以及Sort Merge Join。”。例如这篇文章,
https://segmentfault.com/a/1190000021033287
这里面提到的join和书中将的rdd join有大的区别。想问下rdd join和spark join是不同的实现?如果是相同的实现那么文章中的说法是错的?
第四章《Spark 物理执行计划》勘误与修改建议
Shuffle Write和Shuffle Read阶段溢写的时机不同
NarrowDependency中的ManyToManyDependency不会造成重复计算吗?
我在看书籍图3.2的时候发现ManyToManyDependency和ShuffleDependency很像,但ManyToManyDependency属于NarrowDependency,那么Stage划分的时候不会分成两个分区,这样按照P103的想法2,每次计算child RDD的每个分区的时候都需要重复计算全部的父RDD,因此将ManyToManyDependency划分为ShuffleDependency会不会更好一点呢?ManyToManyDependency可以看作在shuffle write的时候写入整个分区到各个子RDD的ShuffleDependency。
Book Translation
When can we expect the english translation of this book.
page48,关于宽窄依赖的划分
1、你说 父RDD的一个或多个分区的数据需要全部流入子RDD的一个或多个分区,就是窄依赖。是不是可以这么理解,只要需要通过partitioner进行分发的,就是宽依赖,否则就是窄依赖。
假如父RDD有3个分区,但每个分区只有一条数据,是不是无论子RDD如何,这都是窄依赖,因为符合你上面说的。假如走了partitioner分发呢??
2、为什么宽依赖就不能以pipeline的方式处理呢?无非就是中间加个partitioner判断而已。
3、假如一个stage里面有很多窄依赖,导致节点负载过重,有没有办法强行在窄依赖之间划分stage呢?flink是可以的
请问SparkSQL中先union再join,会比先join再union更高效吗?
假如有A、B、C三个表,下面两种操作 (A union B) join C 会比 (A join C) union (B join C) 更快吗?考虑到网络IO和Hash Join等操作的情况下。
大数据处理框架相关问题探讨
第二章《Spark 系统部署与应用运行的基本流程》勘误与修改建议
第六章《Shuffle 机制》勘误与修改建议
第八章《错误容忍机制》勘误与修改建议
page74第四行
原:rdd2中某些分区个数过多或过少
应该是:rdd2中某些分区数据的个数过多或过少
书本实践分享2: 运行ComplexApplication应用
• 到github下载ComplexApplication.scala
• 将ComplexApplication.scala放到一个工程中编译成Jar包
• 上传到虚拟机
• 设置卷映射,使得当前的Jar包能被spark-master的容器读取到
• 运行提交应用的命令
docker exec -it spark-master /spark/bin/spark-submit --class ComplexApplication /apps/ComplexApplication.jar
• 查看18080端口可以看到应用成功运行了
• 设置alias
alias run_complex=' docker exec -it spark-master /spark/bin/spark-submit --class ComplexApplication /apps/ComplexApplication.jar'
代码都提供了,依赖不能提供下嘛大佬
第九章《内存管理机制》勘误与修改建议
您好,书中代码及配图在这个项目目录下嘛?
第4页中,提到mapreduce模型不能join多张表?
第4页中,提到mapreduce模型不能join多张表?这个不理解,把多张表的数据读进来进行处理不就可以了吗
第七章《数据缓存机制》勘误与修改建议
第三章《Spark 逻辑处理流程》勘误与修改建议
page59,关于groupByKey在不同partitoner时的shuffle问题
1.你说groupByKey在左右2个算子的partitioner相同时不会进行shuffle,这里的partitioner相同应该怎么理解。应该是分区器的类型和分区都要相同吗。如果左边的分区数比右边大,子RDD的一个分区依赖父RDD多个分区的全部,应该也不需要shuffle吧。
2.groupByKey的默认分区器就是hashPartitoner吗,可以换吗
第五章《迭代型 Spark 应用》勘误与修改建议
框架执行空间不足时,可以向数据缓存空间借用空间,但至少要保证数据缓存空间具有约50%左右的空间?
P236中间有这么一句话:"框架执行空间不足时,可以向数据缓存空间借用空间,但至少要保证数据缓存空间具有约50%左右的空间?",这句话看起来好像框架执行空间最多只能占用50%的空间,但实际上在缓存空间用了少于50%,比如20%的时候,框架执行内存还是可以使用80%的吧?我理解是只有数据缓存空间真的用了50%的时候,框架执行空间才只能占用50%。
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.