hadoop学习系统
1.hadoop的常见命令
2.hadf读写
hadf上传文件:https://blog.csdn.net/gscsd_t/article/details/79949688
(1。问题分块是客户端完成的吗 https://blog.csdn.net/clerk0324/article/details/50887866
2.datanode是什么一致性 https://blog.csdn.net/bocai8058/article/details/82621722)
hadoop io
数据完整性
文件压缩
filesystem是hdfs的核心,即使文件创建,属于一种api的展现方式:
参考博客:
https://www.cnblogs.com/Zchaowu/p/7355438.html
3.hadoop rpc原理
java ipc 实例(模仿hadoop ipc https://www.iteye.com/blog/blackproof-2069419 )
Client端使用的是阻塞的Socket,
Client的Connection内部类负责Socket的操作
setupIOStream方法建立socket连接
sendParam(call)方法传输客户端socket数据
receiveResponse会阻塞等待服务端的response
客户端Client没有使用NIO, 而是使用Connection线程的对象池,以ConnectionID为主键。
-------------------------------------------------------------------------------------------------------------
Server端使用的是非阻塞的Socket 大量使用Selector
Server的Listener内部类负责接收Socket请求,并开启reader的线程池,在需要读取数据时,wakeup selector--唤醒读线程;Listener中的Reader内部类负责读取socket数据(具体的操作还是在Listener和Connection中,可见reader这个内部类是因为效率而后加的),读取的数据也包括hadoop的头数据,封装为Call对象,放到Server下的队列中
Server的Handler内部类负责获取队列中的Call对象,并且调用处理类Call,返回处理后的的value,并且调用doRespond,wakeup-selector--唤醒写线程
Server的Responder内部类负责写入相应信息。
Server只负责启动listener,handler,responder各个线程,让其各执其责。
他并不是继承与Thread,但是其包含大量Thread,所有的服务操作都要在这一个Server中进行,个人认为这也暴漏了hadoop架构的缺陷
4.yarn原理
关键词:状态库 事件库(reactor模型)
https://blog.csdn.net/jjzhk/category_1874959.html
5.mapreduce原理及其代码
hadoop mapreduce原理
shuffle:【需要落盘】
map
reduce
hadoop入门系列博客:https://www.cnblogs.com/edisonchou/p/edc_hadoop_study_series_index.html
加强:hadoop的二次开发
完成https://www.cnblogs.com/413xiaol/p/10054394.html
WAL(HDFS.HBASE,SAPRK,KAFKA都用到了)
https://www.cnblogs.com/ohuang/p/5807543.html
get与scan
https://www.cnblogs.com/cenyuhai/tag/
hbase支持事务吗?
只支持单行单次操作的事务
https://www.cnblogs.com/cl1024cl/p/6205203.html
https://www.cnblogs.com/duanxz/p/4513631.html