安装服务
分布式hdfs:namenode、SecondaryNameNode、datanode
环境准备:
主节点:192.168.58.129(hostname:master)
子节点:192.168.58.130(slave1),192.168.58.131(slave2),192.168.58.132(slave3)
所有节点中/etc/hosts文件中定义好ip与hostname对应关系
创建用户:liulu
节点间自己建立互信(互相执行ssh输入yes,保证以后不需要输)
节点关闭防火墙
安装包:
jdk1.6.0_31.zip
hadoop-2.0.0-cdh4.2.1.tar.gz
部署步骤:
1. 上传安装包并解压
/home/liulu/app/hadoop-2.0.0-cdh4.2.1
/home/liulu/app/jdk1.6.0_31
注:四个节点都安装
2. 修改以下文件
/home/liulu/.bash_profile:
JAVA_HOME=/home/liulu/app/jdk1.6.0_31
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
(注:执行source命令使之生效)
hdfs文件1:/home/liulu/app/hadoop-2.0.0-cdh4.2.1/etc/hadoop/core-site.xml:
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
hdfs文件2:/home/liulu/app/hadoop-2.0.0-cdh4.2.1/etc/hadoop/hdfs-site.xml:
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/liulu/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/liulu/data/datanode</value>
</property>
hdfs文件3:/home/liulu/app/hadoop-2.0.0-cdh4.2.1/etc/hadoop/hadoop-env.sh:
export JAVA_HOME=/home/liulu/app/jdk1.6.0_31
hdfs文件4:/home/liulu/app/hadoop-2.0.0-cdh4.2.1/etc/hadoop/slaves:
slave1
slave1
slave2
slave3
注1:$dfs.namenode.name.dir指定目录需要事先创建。
注2:上述修改文件在四个节点都修改
3. 格式化hdfs文件系统的namenode
在主节点上执行:
cd /home/liulu/app/hadoop-2.0.0-cdh4.2.1/bin
./hdfs namenode -format
注:format后若$dfs.datanode.data.dir指定目录存有老集群的信息,则需要删除。
4. 启动hdfs集群
cd /home/liulu/app/hadoop-2.0.0-cdh4.2.1/sbin
./start-dfs.sh
5. 检查hdfs集群
看进程(NameNode、SecondaryNameNode、DataNode):
[liulu@master app]$ jps -m
4149 SecondaryNameNode
3976 NameNode
[liulu@slave1 ~]$ jps -m
5068 DataNode
看namenode监控页面:
http://192.168.58.129:50070/dfshealth.jsp
http://192.168.58.129:50090/status.jsp
6. Hdfs操作
cd /home/liulu/app/hadoop-2.0.0-cdh4.2.1/bin
./hdfs dfs -mkdir /test
./hdfs dfs -put ~/testfile /test
7. 关闭Hdfs
cd /home/liulu/app/hadoop-2.0.0-cdh4.2.1/sbin
./stop-dfs.sh