分布式文件系统部署-Hadoop【转载】
分布式文件系统部署-Hadoop【转载】
在Hadoop部署的分布式文件系统中有4种角色:namenode,datanode,jobtracker,tasktracker。
Namenode和Jobtracker属于Master角色,Datanode和Tasktracker属于Slaver角色。
Namenode和Datanode用于分布式存储,JobTracker和Tasktracker用于分布式计算。
这里我们不需要用到分布式计算,故忽略分布式计算的配置和部署。Hadoop有两种部署方式:
1)方式1:master和slave独立启动,master无需访问slave;(这种方式最简单)
2)方式2:master统一管理,master需取得slave的受信访问权限;
Master和Slave独立启动部署方式
1)在master和slave中下载hadoop并解压,这里假设hadoop版本为hadoop-0.20.0,解压目录统一为/home/hadoop/hadoop-0.20.0;
hadoop-0.20.0需要1.6以上版本的JDK支持;
2)在master和slave上修改conf/hadoop-env.sh文件:
…
# The java implementation to use. Required.
export JAVA_HOME=/usr/java/jdk1.6.0_14
…
3)在master和slave上修改conf/core-site.xml,192.169.100.164是Namenode IP
…
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.169.100.164:9000/</value>
</property>
<configuration>
…
4)在master上修改conf/hdfs-site.xml
…
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
…
5)格式化Namenode
在master执行:
Shell>bin/hadoop namenode –format
6)启动Namenode
在master上执行:
Shell>bin/hadoop namenode
7)启动Datanode
在各slave上执行:
Shell>bin/hadoop datanode
Master统一管理部署方式
一台为主(Master),三台为从(Slave)做例子!
1)在4台上建立相同用户
2)在4台上建立相同目录
3)下载hadoop解压到所有机的相同目录
4)根据4台机jdk的路径,修改各自的配置hadoop-env.sh
export JAVA_HOME=/usr/ali/jdk1.5.0_10
5)修改Master配置文件hadoop-site.xml,将master的hadoop-site.xml拷贝到各slave
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>//你的namenode的配置,机器名加端口
<value>hdfs://192.169.100.164:9000/</value>
</property>
<property>
<name>mapred.job.tracker</name>//JobTracker的配置,机器名加端口
<value>hdfs://192.169.100.164:9001/</value>
</property>
<property>
<name>dfs.replication</name>//数据需要备份的数量,默认是三
<value>1</value>
</property>
<configuration>
6)修改Master中的masters文件,如:
192.169.100.164
7) 修改Master中slaves文件,一行一个ip,如:
192.169.100.11
192.169.100.12
192.169.100.13
8)建立Master到每一台Slave的ssh受信证书,如果需要反向控制则需建立Slave到Master的受信书
Master和所有的Slave机器上执行:ssh-keygen -t rsa。执行此命令的时候,看到提示只需要回车。然后就会在/root/.ssh/下面产生id_rsa.pub的证书文件,通过scp将Master机器上的这个文件拷贝到Slave上(记得修改名称),例如:scp root@masterIP:/root/.ssh/id_rsa.pub /root/.ssh/46_rsa.pub,然后执行cat /root/.ssh/46_rsa.pub >>/root/.ssh/authorized_keys,建立authorized_keys文件即可,可以打开这个文件看看,也就是 rsa的公钥作为key,user@IP作为value。
9)在Master上执行hadoop namenode –format
10)执行Master上的start-all.sh启动
11)如果需要关闭,那么就直接执行stop-all.sh即可。
Hadoop
HomePage:
http://hadoop.apache.org/
http://hadoop.apache.org/core/
http://hadoop.apache.org/hbase/
SetUp:
http://hadoop.apache.org/core/docs/current/cluster_setup.html
本文章转载于:http://harrywu304.blog.163.com/blog/static/8456603200991412612607/ 谢谢博主分享