首页 > 其他 > 详细

HDFS分布式文件系统

时间:2015-12-28 11:54:47      阅读:98      评论:0      收藏:0      [点我收藏+]

HDFS分布式文件系统

一、HDFS服务简介

HDFSHadoop File System的缩写,即Hadoop文件系统。是一种以Hadoop集群实现能够快速存储,数据备份,实现冗余,快速访问网络服务,。HadoopApache软件基金会的开源分布式计算平台。

一个HDFS集群由一个运行于master上的NameNode和若干个运行于Slave节点的DataNode组成。NameNode负责管理文件系统命名空间和客户端对文件系统的访问操作;DataNode负责存储的数据。文件以块形式在DataNode中存储,假设一个块大小设置为50MB,块的副本数为3(通过设置块的副本数来达到冗余效果,防止单个DataNode磁盘故障后数据丢失),一个40MB的文件将存储在一个块中,然后将相同的3个块存储在3DataNode中实现冗余。大文件将被切成小块存储。

二、系统环境

系统平台:CentOS 6.5-64

设置ip地址:192.168.0.10192.168.0.11192.168.0.12192.168.0.13192.168.0.14

主机名:masterslave1slave2slave3slave4

软件程序:Hadoop-2.4.0.tar.gz(支持64位)、jdk-7u64-linux-x64.gz

防火墙关闭service iptables stop

SELINUX=disabled

三、环境准备

1.设置主机ip地址

#ifconfig eth1 192.168.0.10 255.255.255.0 up

#vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

HWADDR=00:0C:29:48:2B:37

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.0.10

NETMASK=255.255.255.0

NETMASK=255.255.255.0

slave1slave2slave3slave4也以相同方式设置ip地址

2.设置主机名

#hostname master

#vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.0.10 master

192.168.0.11 slave1

192.168.0.12 slave2

192.168.0.13 slave3

192.168.0.14 slave4

slave1slave2slave3slave4hosts文件相同

#vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=master

slave1slave2slave3slave4也以相同方式设置

注意啦!!测试各主机能ping通,通过ping主机名和ip地址测试!!

3.JDK安装

root@localhost#tar xvf jdk-7u64-linux-x64.gz

root@localhost#mv jdk1.7.0_64/ /usr/local/java

root@localhost#vim /etc/profile

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/binroot@localhost#

root@localhost#source /etc/profile

root@localhost#java -version

技术分享

 

 

 

 

4.添加Hadoop运行用户

root@localhost~#useradd hadoop

root@localhost~#passwd hadoop

5.master配置SSH密钥对

要求master免密码登录各slave,用于开启相应服务

root@master ~#su hadoop

hadoop@master ~$ssh-keygen

hadoop@master ~$ssh-copy-id -i .ssh/id_rsa.pub hadoop@slave1

hadoop@master ~$ssh-copy-id -i .ssh/id_rsa.pub hadoop@slave2

hadoop@master ~$ssh-copy-id -i .ssh/id_rsa.pub hadoop@slave3

hadoop@master ~$ssh-copy-id -i .ssh/id_rsa.pub hadoop@slave4

四、安装hadoop,在masterslave上配置环境变量

1.安装hadoop

root@master ~#tar xvf hadoop-2.4.0.tar.gz

root@master ~#mv hadoop-2.4.0/ /usr/local/hadoop

root@master ~#ls /usr/local/hadoop

bin etc include lib libexec sbin share

上述目录中,etc/hadoop/是配置文件目录,sbin/下存放启动,停止脚本。

root@master ~#chown -R hadoop.hadoop /usr/local/hadoop/

2.配置环境变量

root@master ~#vim /etc/profile

export JAVA_HOME=/usr/local/java

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3.配置hadoop,有四个文件需要配置,hadoop-env.sh core-site.xml mapred-site.xml hdfs-site.xml,有两个文件需要添加mastersslaves

a. hadoop@master ~$cd /usr/local/hadoop/etc/hadoop

   hadoop@master hadoop$vim hadoop-env.sh

export JAVA_HOME=/usr/local/java


b. hadoop@master hadoop$vim core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>      //namenodeip端口

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/hadoop/tmp</value>

<description>Hadoop temporary cache catalog by cjenlet</description>

</property>

<property>

<name>dfs.hosts.exclude</name>

<value>/usr/local/hadoop/etc/hadoop/excludes</value>

</property>

</configuration>

c. hadoop@master hadoop$mv mapred-site.xml.template mapred-site.xml

   hadoop@master hadoop$vim mapred-site.xml

<configuration>

<property>

<name>mapred.job.tracker</name>      //链接jobtrack服务器的配置项,默认为local,map属为1,reduce数为1

<value>master:9001</value>

</property>

<property>

<name>mapred.local.dir</name>      //mapred作为本地计算机使用的文件夹,可以配置多块硬盘,逗号隔开

<value>/usr/local/hadoop/var</value>

</property>

</configuration>

d. hadoop@master hadoop$vim hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/usr/local/hadoop/name</value>

</property>

<property>

<name>dfs.datanode.date.dir</name>

<value>file:/usr/local/hadoop/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>4</value>      //文件副本数

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>      //启用web访问的hdfs

</property>

</configuration>


 

e. hadoop@master hadoop$vim masters //由这个文件决定master主机的主机名

master


f. hadoop@master hadoop$vim slaves //由这个文件决定slave主机的住机名

slave1

slave2

slave3

slave4


g. slave主机安装hadoop和配置环境变量,第三步由masterssh安全通道复制给各个slave


hadoop@master $scp /usr/local/hadoop/etc/hadoop/* /slave1:/usr/local/hadoop/etc/hadoop/

hadoop@master $scp /usr/local/hadoop/etc/hadoop/* /slave2:/usr/local/hadoop/etc/hadoop/

hadoop@master $scp /usr/local/hadoop/etc/hadoop/* /slave3:/usr/local/hadoop/etc/hadoop/

hadoop@master $scp /usr/local/hadoop/etc/hadoop/* /slave4:/usr/local/hadoop/etc/hadoop/

.启动HDFS文件系统

1.格式化HDFS文件系统

hadoop@master $hdfs namenode -format

2.检查新生成的目录

hadoop@master $ll /usr/local/hadoop/name

drwxrwxr-x. 2 hadoop hadoop 24576 1219 03:53 current

3.启动hadoop集群

hadoop 的管理命令位于$HADOOP_HOME/sbin下,以start-*.shstop-*.sh开头;

hadoop@master ~$start-dfs.sh //单独启动HDFS分布式文件系统

hadoop@master ~$start-all.sh //启动整个hadoop集群,即启动HDFSMap/Reduce

hadoop@master ~$stop-all.sh //关闭整个hadoop集群

start-dfs.shstart-all.sh有什么区别?

4.检查开启情况

hadoop@master ~$jps //查看本节点各进程开启情况,本节点为NameNode

技术分享




hadoop@master ~hdfs dfsadmin -report|more //查看集群信息

技术分享


 



 

 

 

 

 

 

六、常用命令

1.文件下载、上传、查看、创建、统计、合并

*hadoop@master ~$hadoop fs -ls /

//linux中的ls命令一样

*hadoop@master ~$hadoop fs -mkdir /input

//hadoop fs -mkdir 在服务器上创建目录

hadoop@master ~$hadoop fs -put /usr/local/hadoop/etc/hadoop/* /input

//hadoop fs -put 上传本地文件到服务器

*hadoop@master ~$hadoop fs -copyFromLocal <本地源文件> <HDFS目标目录>

//复制本地文件到HDFS

*hadoop@master ~$hadoop fs -copyToLocal <HDFS> <Local>

//复制HDFS上的文件到本地

*hadoop@master ~$hadoop -fs -du -s -h /passwd

//linux上的du一样,hadoop -fs -du [HDFS]

*hadoop@master ~$hadoop fs -getmerge [-nl] <src> <localdst>

//HDFS上的文件和本地文件合并,合并到本地文件上


2.管理文件的权限和归属

*hadoop@master ~$hadoop fs -chgrp root <HDFS上的文件>

//hadoop fs -chgrp 修改属组

*hadoop@master ~$hadoop fs -chown root.root <HDFS上的文件>

//linux上的chown一样

*hadoop@master ~$hadoop fs -chmod -R 755 /passwd

//linux上的chmod一样

*hadoop@master ~$


3.集群管理和查看

*hadoop@master ~$hdfs dfsadmin -report

//查看集群信息

*hadoop@master ~$hdfs dfsadmin -safemode [enter | leave | get | wait]

//enter:开启安全模式

//leave:关闭安全模式

//get:获取当前安全模式的开启情况

//wait:一直等到安全模式关闭

HDFS分布式文件系统

原文:http://www.cnblogs.com/cjenlet/p/5081806.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!