读数据流程
1. 客户端向namenode发起RPC调用,请求读取文件数据。2. namenode检查文件是否存在,如果存在则获取文件的元信息(blockid以及对应的datanode列表)。
写数据流程
1. 客户端发出请求hdfs dfs -put /etc/profile /qf/data。2. namenode查看维护的目录结构,检查/qf/data是否存在,如不存在直接报错”no such file or directory“,如存在返回给客户端同意上传文件请求,将操作写入日志文件
Spark Streaming的窗口大小,每个窗口处理的数据量大小。
该问题一定要根据业务需求来确定,比如要实现的需求为:统计每分钟的前一个小时的在线人数。上面需求的窗口大小(窗口长度)为1小时,然后再统计每个窗口需要处理的数据量。
SparkStreaming的批次间隔,处理完的的数据存在哪里
批次间隔为SparkStreaming处理实时需求的时间间隔,需要根据业务需求来确定批次间隔。实时需求的处理结果一般是保存在能快速读取的数据库中来提高效率,比如Redis、MongoDB、HBase。
MapReduce的原理(重点)
MapperTask 使用逻辑切片的方式划分block,调用InputFormat中的算法进行划分,TextInputFormat默认按照128M进行划分(默认一个block至少有一片),每个分片以行首开头,以行尾结尾。