0 搭建平台时的思考
1 在启动CentOS时候,DHCP识别不到网络ip,可以将虚拟机可移动设备将网卡选择先不连接,进入OS后,再打开。
http://blog.csdn.net/old_imp/article/details/8744772
2 设置静态IP或者动态IP文件(/etc/resolv.conf、/etc/sysconfig/network-scripts/ifcfg-eth0、/etc/sysconfig/network)后,重启动网卡。就能避免下次启动的IP找不到问题;同时图标和配置IP对话框变得正常(可是非如此,还得关闭进入后开启)。
http://www.2cto.com/os/201305/214447.html
2.1 Linux网卡问题:1、在系统启动时设置好的静态IP再次启动依然在bring up时停住;2、在系统界面或者系统文件设置好静态IP并重启网卡,静态IP依然没有改变。解决问题方法是:再启动系统时候,关闭虚拟机网络连接,进入系统后再设置IP,无连接重启进入后打开网络连接。
2.2 设置IP的三个地方:1、开机时;2、系统界面;3、配置文件。
3 hostname和IP绑定了,其他的主机名不一定.
4 ssh加密文件在~/.ssh中
5 HDFS中的/usr目录下的目录名集群内的主机名(不是客户端)
6 两种名字:Linux用户,主机名
7 HDFS的根目录是不是只有NameNode可以操作?
***RPC
***《GOOGLE三大论文》
1 HDFS
1.1 设计前提和目标
A 体系结构
NameNode:
1.2.1 管理元数据;
1.2.2 映射文件(包括副本)和Block(一个文件不超过64M,物理是本身,逻辑上占一个)(文件数据块尽可能分布在不同DataNode,便于就地运算,保证损失最小);
1.2.3 客户端(可以是集群内的也可以是集群外的)都要通过NameNode和DataNode交互访问文件系统(真正的I/O是和DataNode交互的);
1.2.4 执行文件系统的命名空间操作,比如打开、关闭、重命名文件和目录。
重要结构:EditLog,FsImage(Checkpoint)
Secondary NameNode:
1.2.1 合并EditLog到FsImage然后给NameNode,是的NameNode有极好的交互性,EditLog大小可配置。
DataNode:
1.2.1 负责处理客户的读写请求(任何时候只有一个写用户)
1.2.2 Blockreport:启动时候(启动后的文件读写有NameNode),遍历本地文件系统,报告NameNode一份HDFS数据块和本地文件对应关系列表
B 可靠性保障
冗余备份、副本存放策略(Rack-aware,指的是数据块),心跳检测(验证映射,检测宕机),安全模式(启东时候,数据块小于备份时进入安全模式,复制,不允许写操作),数据完整性检测,空间回收,元数据磁盘失效保护(冷备份多个FsImage)。
2 MapReduce
2.1 编程模型
MapReduce:待处理的数据集可以分解成许多小的数据集,并且每一个小的数据集都可以完全的并行进行处理。
2.2 MapReduce的集群行为‘
2.2.1 任务调度和执行
JobTracker:负责调度和管理(将Mappers和Reducer分配到空闲的TaskTracker,TaskTracker必须在DataNode上),负责监控任务运行情况。
2.2.2 本地计算
尽可能保证存储了数据节点执行计算任务,减少网络宽带(移动计算比移动数据更经济),本地没有就找本机架上,再没有就到其他机架。
2.2.3 Shuffle
保证某一范围的key由一个Reducer处理,简化Reduce过程。
2.2.4 合并Mapper(Combine)
减少带宽
2.2.5 读取中间结果
Mapper的输出结果被直接写到本地磁盘,JobTracker同时Reducer到那个DataNode上取走中间结果,中间结果不必存到HDFS。
2.2.6 任务管道
R个Reducer产生的结果作为另一个任务的Mapper输入。
2.2.7 JobTracker和TaskTracker失败处理。
2.2.8 Hadoop JobScheduler
FIFO,Fair Scheduler
3 Wordcount(《实战Hadoop》)
4 自定义IO类型
5 最小的MapReduce驱动(默认驱动)
6 自定义的Conbiners和Partitioners(可以由Reducer设置。两个一样)
7 DistributeCache
8 通配符和文件过滤FileFiter
9 java的单元测试MRUnit
10 MapReduce的输入(split)自定义split
11 Hadoop小文件处理
1、支持压缩
2、HDFS自带:合并小文件,建立索引
3、小文件优化(开启Jvm、mapred.reduceparallel.copies)
其他作业优化方法(Mapper,combiner,Reducer,中间值压缩等)
12 MapReduce Streaming