Hadoop HDFS分布式环境搭建
最近选择给大家介绍Hadoop HDFS系统,因此研究了一下如何在Linux 下配置一个HDFS Clust。小记一下,以备将来进一步研究和记忆。
HDFS简介
全称 Hadoop Distributed File System, Hadoop分布式文件系统。 根据Google的GFS论文,由Doug Cutting使用JAVA开发的开源项目。HDFS是Hadoop项目的一部分。为Hadoop提供底层的数据存储,满足上次各种实际应用使用(如Map/Reduce)。HDFS是典型的的Master/Slave集群架构,由一个NameNode和多个DateNode组成,NameName只能有一个,扮演Master角色,负责对具体的存储块的元数据进行保存,比如控制某个存储块具体保存在哪个DataNode上;DataNode可以为多个,扮演着Slave的角色,负责对具体的存储块进行保存,一个相同的存储块根据配置可以保存到多个DataNode上,以保持数据的高可用性。
环境介绍
三台主机,一台NameNode, 2台DataNode
Role | IP | Host | Type | Version |
NameNode | 10.34.64.222 | NC-VM-PL-DEV-26 | Master | CentOS 6.4 |
DataNode | 10.34.64.223 | NC-VM-PL-DEV-27 | Slave | CentOS 6.4 |
DataNode | 10.34.64.224 | NC-VM-PL-DEV-28 | Slave | CentOS 6.4 |
配置流程
原则:三台机器的配置保持一致就可以,下面具体描述NameNode主机的过程
1.
2.
[root@NC-VM-PL-DEV-26 ~]# useradd hdfs
[root@NC-VM-PL-DEV-26 ~]# passwd hdfs
3.
通常Centos系统都默认安装SSH, 如果没有安装,请单独安装,yum install ssh
a)
b)
c)
d)
e)
f)
g)
h)
i)
4.
a)
b)
切换至hdfs账号,解压至/home/hdfs/hadoop
[hdfs@NC-VM-PL-DEV-26 ~]$ tar zxf hadoop-2.2.0.tar.gz
[hdfs@NC-VM-PL-DEV-26 ~]$ mv hadoop-2.2.0
5.
a)
b)
export HADOOP_HOME
export
export
export
6.
主要修改/home/hdfs/hadoop/etc/hadoop/目录下的配置文件
Hadoop-env.sh:
Core-site.xml:
Hdfs-site.xml:
Mapred-site.xml:
Slaves:
6.1 配置core-site.xml
6.2 配置 hdfs-site.xml
6.3 配置 mapred-site.xml
6.4 配置 hadoop-env.sh
6.5 配置 slaves
NC-VM-PL-DEV-27
NC-VM-PL-DEV-28
7.
将主NameNode节点安装好的Hadoop系统目录复制到每一个从DataNode节点上.
[hdfs@NC-VM-PL-DEV-26 hadoop]$ scp –r /home/hdfs/hadoop 10.34.64.223: /home/hdfs/hadoop
[hdfs@NC-VM-PL-DEV-26 hadoop]$ scp –r /home/hdfs/hadoop 10.34.64.224: /home/hdfs/hadoop
8.
修改每台机器上的/etc/hosts文件
a)
10.34.64.224 NC-VM-PL-DEV-28
10.34.64.223 NC-VM-PL-DEV-27
10.34.64.222 NC-VM-PL-DEV-26
b) 如果是DataNode,只需要在文件中添加本机和NameNode的Ip地址和主机名。
为了方便都填上也挺好。
9.
执行如下命令做格式化操作,每次如果有修改conf,最好做一次格式化命令
[hdfs@NC-VM-PL-DEV-26 ~]$ hadoop namenode –format
10.
[hdfs@NC-VM-PL-DEV-26 ~]$./home/hdfs/hadoop/bin/start-dfs.sh
如果启动遇到问题,请对NameNode或DataNode的日志进行查看,路径为/home/hdfs/hadoop/logs,看看是否有Exception抛出。
11.
[hdfs@NC-VM-PL-DEV-26 ~]$ hadoop fs –mkdir /newdir
[hdfs@NC-VM-PL-DEV-26 ~]$ hadoop fs –ls
用jps命令检查一下是否正常启动:
[hdfs@NC-VM-PL-DEV-26 ~]$ jps
9193 SecondaryNameNode
8914 NameNode
9615 Jps
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
13/12/04 15:46:20 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Configured Capacity: 0 (0 B)
Present Capacity: 0 (0 B)
DFS Remaining: 0 (0 B)
DFS Used: 0 (0 B)
DFS Used%: NaN%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Datanodes available: 0 (0 total, 0 dead)
浏览器方式:在WEB页面下查看Hadoop工作情况
输入部署Hadoop服务器的IP:http://IP:50070;http://IP:50030.