文档介绍:精品文档
精品文档
葿1
腿莆
膃蒈
薃羀
膈螃
芈羅
薄莈
羁芁
精品文档
1、kafka 的message 包括哪些信息
一个Kafka的Message 由一个固定长度的 hea,对于大多数情况 Standalone 模式就足够了,如果企业已经有 Yarn 或者Mes
os环境,也是很方便部署的。
standalone( 集群模式):典型的Mater/slave 模式,不过也能看出 Master 是有单点故障的;
Spark支持ZooKeeper 来实现 HA
on yarn(集群模式):运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理, Spar
k负责任务调度和计算
on mesos(集群模式):运行在 mesos 资源管理器框架之上, 由mesos 负责资源管理,
Spark 负责任务调度和计算
on cloud(集群模式):比如 AWS 的EC2,使用这个模式能很方便的访问 Amazon 的S
3;Spark 支持多种分布式存储系统: HDFS和S3
5、HDFS读写数据的过程
读:
1
、跟namenode通信查询元数据,找到文件块所在的datanode
服务器
2
、挑选一台datanode(就近原则,然后随机)服务器,请求建立
socket流
3
、datanode开始发送数据(从磁盘里面读取数据放入流,以
packet为单位来做校验)
4、客户端以 packet 为单位接收,现在本地缓存,然后写入目标文件
写:
1、根namenode 通信请求上传文件, namenode 检查目标文件是否已存在,父目录是否
精品文档
精品文档
葿6
腿莆
膃蒈
薃羀
膈螃
芈羅
薄莈
羁芁
精品文档
存在
精品文档
精品文档
葿16
腿莆
膃蒈
薃羀
膈螃
芈羅
薄莈
羁芁
精品文档
2
、namenode返回是否可以上传
3
、client请求第一个
block
该传输到哪些
datanode服务器上
4
、namenode返回3
个datanode服务器ABC
5
、client请求3台dn中的一台A上传数据(本质上是一个
RPC调用,建立pipeline
),
A收到请求会继续调用
B,然后B调用C,将真个pipeline
建立完成,逐级返回客户端
6
、client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以
p
acket为单位,A收到一个packet就会传给B,B传给C;A每传一个packet
会放入一个
应答队列等待应答
7
、当一个block传输完成之后,client再次请求namenode
上传第二个block
的服务器。
6
、RDD中reduceBykey
与groupByKey
哪个性能好,为什么
reduceByKey :reduceByKey 会在结果发送至 reducer 之前会对每个 mapper 在本地
进行merge,有点类似于在 MapReduce 中的combiner 。这样做的好处在于, 在map端
进行一次reduce 之后,数据量会大幅度减小,从而减小传输,保证 reduce 端能够更快的
进行结果计算。
groupByKey :groupByKey 会对每一个 RDD中的value值进行聚合形成一个序列
(Iterator) ,此操作发生在 reduce 端,所以势必会将所有的数据通过网络进行传输, 造成不
必要的浪费。同时如果数据量十分大,可能还会造成 OutOfMemoryError 。
通过以上对比可以发现在进行大量数据的 reduce 操作时候建议使用 reduceByKey 。不仅
精品文档
精品文档
葿8
腿莆
膃蒈
薃羀
膈螃
芈羅
薄莈
羁芁
精品文档
可以提高速度,还是可以防止使用 groupByKey 造成的内存溢出问题。
精品文档
精品文档
葿16
腿莆
膃蒈
薃羀
膈螃
芈羅
薄莈
羁芁
精品文档
7、 的了解
更简单:ANSISQL 与更合理的 API
速度更快:用 Spark作为编译器
更智能:StructuredStreaming
8、rdd