1,《Hadoop in Action》笔记
- Hadoop在分布式计算和分布式存储中都采用主/从(master/slave)结构,其中存储部分称为HDFS
- Hadoop运行后会在主从服务器上运行一些驻守进程(daemons):
- NameNode:位于HDFS主端,跟踪文件的如何被分割成文件块以及在存储在哪个节点上,NameNode节点不允许单点失效
- DataNode:位于HDFS从端,负责执行NameNode的数据块存储以及修改任务,与NameNode通讯保证数据统一性
- Secondary NameNode(SNN):检测HDFS集群状态的辅助守护进程,同NameNode,每个集群有唯一一个SNN,且独占一个服务器,不同于NameNode,SNN不记录HDFS实时变化,而是定时获取NameNode的快照。减少NameNode故障的数据丢失风险
- JobTracker:为不同任务分配节点以及监控任务执行,每个集群JobTracker唯一,通常运行在主节点上。相当于存储中的NameNode
- TaskTracker:负责执行JobTracker分配的单项任务,并定时与JobTracker通信,通知其运行状态。相当于DataNode
- 下图显示了一个典型的Hadoop集群拓扑结构,即主节点上运行NameNode和JobTracker的守护进程,并使用独立节点运行SNN防止主节点失效,每个从节点驻留一个DataNode和TaskTracker用以在存储数据的同一节点执行任务
- HDFS文件操作:
- HDFS有一个默认工作目录为/user/$USER,其中$USER为登录名
- 创建目录指令:./hadoop fs -mkdir /user/zs/in,创建in目录
- 浏览文件:./hadoop fs -ls /user/zs,浏览zs目录,./hadoop fs -lsr /user/zs,浏览所有子目录
- 上传文件:./hadoop fs -put example.txt /user/zs,将本地文件上传到HDFS的zs目录下
- 下载文件:./hadoop fs -get /user/zs/example.txt,将HDFS文件下载到当前目录
- 查看文件:./hadoop fs -cat /user/zs/example.txt
- 删除文件:./hadoop fs -rm /user/zs/example.txt