Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31060
  • 博文数量: 11
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-10 14:34
文章分类

全部博文(11)

文章存档

2017年(11)

我的朋友

分类: 大数据

2017-12-04 12:52:13

写在前面的话

Hdfs采用分布式架构,为上层的应用和用户提供可扩展、高吞吐、高可靠的数据存储服务。在整个Hadoop生态系统中,hdfs处于最底层,也是最无可替代的一个基础设施。从2008hadoop-0.10.1版本开始到现在的hadoop-3.0.0-beta1hdfs已经走过了近10个年头,其架构和功能特性也发生了巨大的变化。特别是hdfs3.0.0系列,和hdfs2.x相比,增加了基于纠删码(erasure encoding)的容错方式,与传统的副本方式相比,在同等可用性的情况下, 能大幅节省一半以上的空间,这也是自hdfs诞生近这十年来,数据可靠性机制上的一个重大变化(之前一直都是副本容错方式)。此外hdfs3.0.0还增加了其它的一些特性,例如在Namenode HA中支持3Namenode,可以容忍2Namenode失效,而hdfs2.x只能容忍1Namenode失效。

本文以的方式,在“”上记录自己使用hadoop-3.0.0-beta1hdfs的点点滴滴,包括从零开始搭建分布式hdfs3.0,如何动态扩展hdfs节点、如何使用hdfs3.0的纠删码容错等等。不当之处,请大家发邮件aishuc@126com给艾叔,谢谢!

 

3.10 启动hdfs3.0

普通用户,进入hadoop目录

[user@nn1 ~]$ cd ~/hadoop-3.0.0-beta1

格式化,非常重要!!!

[user@nn1 hadoop-3.0.0-beta1]$ bin/hdfs namenode -format

启动

[user@nn1 ~]$ cd ~/hadoop-3.0.0-beta1

[user@nn1 hadoop-3.0.0-beta1]$ sbin/start-dfs.sh

Starting namenodes on [nn1]

nn1: WARNING: /home/user/hadoop-3.0.0-beta1/logs does not exist. Creating.

Starting datanodes

Starting secondary namenodes [nn1]

Jps查看所有的java进程,如果能看到下面绿色的部分,说明正常启动。

[user@nn1 hadoop-3.0.0-beta1]$ jps

5025 SecondaryNameNode

5143 Jps

4809 DataNode

4698 NameNode

命令行查看hdfs状态

[user@nn1 hadoop-3.0.0-beta1]$ bin/hdfs dfsadmin -fs hdfs://nn1:9001 -report

注意:下面三者的顺序不能变

dfsadmin -fs hdfs://nn1:9001 -report

如果我们能看到下面的状态信息,则说明正常

Configured Capacity: 18746441728 (17.46 GB)

Present Capacity: 16173752320 (15.06 GB)

DFS Remaining: 16173748224 (15.06 GB)

DFS Used: 4096 (4 KB)

DFS Used%: 0.00%

Replicated Blocks:

        Under replicated blocks: 0

        Blocks with corrupt replicas: 0

        Missing blocks: 0

        Missing blocks (with replication factor 1): 0

        Pending deletion blocks: 0

Erasure Coded Block Groups:

        Low redundancy block groups: 0

        Block groups with corrupt internal blocks: 0

        Missing block groups: 0

        Pending deletion blocks: 0

 

-------------------------------------------------

Live datanodes (1):

 

Name: 192.168.182.11:9866 (nn1)

Hostname: nn1

Decommission Status : Normal

Configured Capacity: 18746441728 (17.46 GB)

DFS Used: 4096 (4 KB)

Non DFS Used: 2572689408 (2.40 GB)

DFS Remaining: 16173748224 (15.06 GB)

DFS Used%: 0.00%

DFS Remaining%: 86.28%

Configured Cache Capacity: 0 (0 B)

Cache Used: 0 (0 B)

Cache Remaining: 0 (0 B)

Cache Used%: 100.00%

Cache Remaining%: 0.00%

Xceivers: 1

Last contact: Mon Nov 27 14:20:00 EST 2017

Last Block Report: Mon Nov 27 14:15:51 EST 2017

Web查看

关闭防火墙,去掉自启动

[root@nn1 hadoop-3.0.0-beta1]# systemctl stop firewalld

[root@nn1 hadoop-3.0.0-beta1]# systemctl -a

如果看到下面红圈的内容,则说明关闭成功。

3-53 CentOS7查看防火墙服务状态

去掉防火墙自启动,如果能看到下面的removed,则说明操作成功。

[root@nn1 hadoop-3.0.0-beta1]# systemctl disable firewalld

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

使用web查看:

注意,hdfs2.x的默认端口是50070hdfs3.0的默认端口为9870

3-54 hdfs3.0.0 web管理界面

3.11 设置默认文件系统

目前,我们操作hdfs时,都需要指定文件系统的urlhdfs://nn1:9001,为了方便起见,我们可以将此url设置为默认的文件系统,这样,操作时就默认操作nn1:9001这个hdfs

编辑core-site.xml

复制core-site.xml的默认配置

[user@nn1 hadoop-3.0.0-beta1]$ cp ./share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xml etc/hadoop/core-site.xml

注意:源文件是:core-default.xml,目的文件是:core-site.xml

编辑此文件

[user@nn1 hadoop-3.0.0-beta1]$ vi etc/hadoop/core-site.xml

找到下面的内容,添加绿色部分。

  fs.defaultFS

  hdfs://nn1:9001

  The name of the default file system.  A URI whose

  scheme and authority determine the FileSystem implementation.  The

  uri's scheme determines the config property (fs.SCHEME.impl) naming

  the FileSystem implementation class.  The uri's authority is used to

  determine the host, port, etc. for a filesystem.

 

  fs.default.name

  hdfs://nn1:9001

  Deprecated. Use (fs.defaultFS) property

  instead

 

验证,不指定-fs,直接用下面的命令操作,就成功的话,则说明默认文件系统设置成功。

[user@nn1 hadoop-3.0.0-beta1]$ bin/hdfs dfsadmin -report

 

3.12 hdfs命令添加到PATH环境变量

这样,我们就可以直接运行hdfs的相关命令,而不需要每次都输入完整路径了。

切换到root用户,编辑/etc/profile文件

最后一行添加

export PATH=$PATH:/home/user/hadoop-3.0.0-beta1/bin

切换到普通用户,直接输入hdfs,看能否运行。

[user@nn1 ~]$ hdfs

如果能直接运行,则说明环境变量添加成功。

上一篇:

原创文章,转载请注明: 转载自

本文链接地址

阅读(1047) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~