设为首页 加入收藏

TOP

深入hadoop1-1 hadoop-hdfs
2019-05-10 00:21:24 】 浏览:63
Tags:深入 hadoop1-1 hadoop-hdfs
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/answer100answer/article/details/89792302

1. hadoop2.x核心模块

Hadoop项目主要包括以下四个模块
Hadoop Common:

  • 为其他Hadoop模块提供基础设施

Hadoop HDFS:

  • 一个高可靠、高吞吐量的分布式文件系统

Hadoop MapReduce:

  • 一个分布式的离线并行计算框架

Hadoop YARN:
一个新的MapReduce框架,任务调度与资源管理

2. 安装

hadoop安装

3. HDFS服务功能

  • NameNode是主节点,存储元数据如文件名、文件目录结构,文件属性(生成时间/副本数/文件权限),以及每个文件的块列表和块所在的DataNode等。
  • DataNode在本地文件系统存储文件块数据(会有NodeManager进程),以及块数据的校验和。
  • SecondNameNode用来监听HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

在NameNode的文件夹目录:

[hadoop@hadoop1 dfs]$ pwd
/home/hadoop/hadoop-current/tmp/dfs
[hadoop@hadoop1 dfs]$ tree nn
nn
├── current
│   ├── edits_0000000000000000001-0000000000000000242
│   ├── edits_0000000000000000243-0000000000000000243
│   ├── edits_inprogress_0000000000000000244
│   ├── fsimage_0000000000000000242
│   ├── fsimage_0000000000000000242.md5
│   ├── fsimage_0000000000000000243
│   ├── fsimage_0000000000000000243.md5
│   ├── seen_txid
│   └── VERSION
└── in_use.lock

1 directory, 10 files

dataName目录结构:

[hadoop@hadoop2 dfs]$ tree dn
dn
├── current
│   ├── BP-864899108-10.179.25.59-1553789556161
│   │   ├── current
│   │   │   ├── dfsUsed
│   │   │   ├── finalized
│   │   │   │   └── subdir0
│   │   │   │       ├── subdir0
│   │   │   │       │   ├── blk_1073741825
│   │   │   │       │   ├── blk_1073741825_1001.meta
│   │   │   │       │   ├── blk_1073741826
│   │   │   │       │   ├── blk_1073741826_1002.meta
│   │   │   │       │   ├── blk_1073741827
│   │   │   │       │   ├── blk_1073741827_1003.meta
│   │   │   │       │   ├── blk_1073741838
│   │   │   │       │   ├── blk_1073741838_1014.meta
│   │   │   │       │   ├── blk_1073741879
│   │   │   │       │   ├── blk_1073741879_1059.meta
│   │   │   │       │   ├── blk_1073741881
│   │   │   │       │   ├── blk_1073741881_1061.meta
│   │   │   │       │   ├── blk_1073741889
│   │   │   │       │   ├── blk_1073741889_1069.meta
│   │   │   │       │   ├── blk_1073741890
│   │   │   │       │   ├── blk_1073741890_1070.meta
│   │   │   │       │   ├── blk_1073741932
│   │   │   │       │   ├── blk_1073741932_1112.meta
│   │   │   │       │   ├── blk_1073741933
│   │   │   │       │   ├── blk_1073741933_1113.meta
│   │   │   │       │   ├── blk_1073741939
│   │   │   │       │   └── blk_1073741939_1119.meta
│   │   │   │       ├── subdir1
│   │   │   │       ├── subdir10
│   │   │   │       ├── subdir11
│   │   │   │       ├── subdir12
│   │   │   │       ├── subdir13
│   │   │   │       ├── subdir14
│   │   │   │       ├── subdir15
│   │   │   │       ├── subdir2
│   │   │   │       │   ├── blk_1073742400
│   │   │   │       │   └── blk_1073742400_1580.meta
│   │   │   │       ├── subdir3
│   │   │   │       ├── subdir4
│   │   │   │       ├── subdir5
│   │   │   │       ├── subdir6
│   │   │   │       ├── subdir7
│   │   │   │       ├── subdir8
│   │   │   │       └── subdir9
│   │   │   ├── rbw
│   │   │   │   ├── blk_1073745767
│   │   │   │   ├── blk_1073745767_4947.meta
│   │   │   │   ├── blk_1073745768
│   │   │   │   ├── blk_1073745768_4948.meta
│   │   │   │   ├── blk_1073745769
│   │   │   │   ├── blk_1073745769_4949.meta
│   │   │   │   ├── blk_1073745770
│   │   │   │   └── blk_1073745770_4950.meta
│   │   │   └── VERSION
│   │   ├── scanner.cursor
│   │   └── tmp
│   └── VERSION
└── in_use.lock

23 directories, 37 files

HDFS图示理解:

安全机制

  • 副本数
  • 一份文件写多份备份

如果有丢失的块block,扫描到会补上。

以下图示展示了3份备份:

分析:200M的文件会被分成128M+72M两块。在使用命令的客户端机器会向NameNode发送信息。根据“就近原则”,使用命令的客户端会优先存一份。

关于SecondNameNode

Secondary NameNode 用来监控HDFS状态的辅助后台程序,每隔一段时间获 取HDFS元数据的快照。
快照相当于某个时间点的信息。便于还原到该点。

开启SecondNameNode,需要再配置文件中加入配置。
http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
dfs.namenode.secondary.http-address

hdfs-site.xml文件中加入:

		<!-- secondary namenode的http通讯地址 -->
      <property>
                  <name>dfs.namenode.secondary.http-address</name>
                  <value>hadoop1:9001</value>
         </property>

注意:value中的主机和master对应起来即可。(原hadoop安装有误需更正)

先关闭hadoop进程:

命令1:

[hadoop@hadoop1 sbin]$ sh stop-all.sh  
# Instead use start-dfs.sh and start-yarn.sh
# 指的是 hdfs的
namenode、
datanode
yarn的nodemanage

同样的,开启用start-all.sh

命令2:
使用 ./hadoop-daemon.sh来指定管理。

[hadoop@hadoop1 sbin]$ ./hadoop-daemon.sh start namenode
[hadoop@hadoop1 sbin]$ ./hadoop-daemon.sh start datanode
[hadoop@hadoop1 sbin]$ ./hadoop-daemon.sh start secondarynamenode
[hadoop@hadoop1 sbin]$ ./hadoop-daemon.sh stop secondarynamenode

虽然没有指定secondarynamenode的目录,默认会在namenode同级建立目录。

[hadoop@hadoop1 dfs]$ pwd
/home/hadoop/hadoop-current/tmp/dfs
[hadoop@hadoop1 dfs]$ ls
dn  namesecondary  nn

[hadoop@hadoop1 dfs]$ tree namesecondary/
namesecondary/
├── current
│   ├── edits_0000000000000034584-0000000000000034585
│   ├── fsimage_0000000000000034583
│   ├── fsimage_0000000000000034583.md5
│   ├── fsimage_0000000000000034585
│   ├── fsimage_0000000000000034585.md5
│   └── VERSION
└── in_use.lock

1 directory, 7 files

说明:上述583、584、585后来建的,nameNode中会存和他一模一样的文件。当namenode挂掉时,可以将这个复制过去。

SecondNameNode过程:

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇结合案例讲解MapReduce重要知识点.. 下一篇Hadoop——分布式集群搭建

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目