写在前面的话
Hdfs采用分布式架构,为上层的应用和用户提供可扩展、高吞吐、高可靠的数据存储服务。在整个Hadoop生态系统中,hdfs处于最底层,也是最无可替代的一个基础设施。从2008年hadoop-0.10.1版本开始到现在的hadoop-3.0.0-beta1,hdfs已经走过了近10个年头,其架构和功能特性也发生了巨大的变化。特别是hdfs3.0.0系列,和hdfs2.x相比,增加了基于纠删码(erasure encoding)的容错方式,与传统的副本方式相比,在同等可用性的情况下, 能大幅节省一半以上的空间,这也是自hdfs诞生近这十年来,数据可靠性机制上的一个重大变化(之前一直都是副本容错方式)。此外hdfs3.0.0还增加了其它的一些特性,例如在Namenode HA中支持3个Namenode,可以容忍2个Namenode失效,而hdfs2.x只能容忍1个Namenode失效。
本文以连载的方式,在“大数据学习网”上记录自己使用hadoop-3.0.0-beta1的hdfs的点点滴滴,包括从零开始搭建分布式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查看:http://192.168.182.11:9870
注意,hdfs2.x的默认端口是50070,hdfs3.0的默认端口为9870。
3-54 hdfs3.0.0 web管理界面
3.11 设置默认文件系统
目前,我们操作hdfs时,都需要指定文件系统的url,hdfs://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,直接用下面的命令操作,就成功的话,则说明默认文件系统设置成功。
[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
如果能直接运行,则说明环境变量添加成功。
上一篇:《hadoop-3.0.0-beta1运维手册(005):hdfs3.0.0分布式构建-hdfs配置、无密码登录》
原创文章,转载请注明: 转载自大数据学习网,作者:艾叔