1、四台服务器分别为:node001,node002,node003,node004,做免密钥登录
免密钥配置方法:
分别在4台服务器执行:ssh-kengen -t dsa - P '' -f ~/.ssh/id_dsa
scp authorizes_keys node002:/root/.ssh/(注意:这里可以参考我的上一个博客伪分布式搭建,node001已经免秘钥了,所以直接拷贝)
cat id_dsa.pub >> authorizes_keys
scp authorizes_keys node001:`pwd`
scp authorizes_keys node003:`pwd`
cat id_dsa.pub >> authorizes_keys
scp authorizes_keys node004:`pwd`
cat id_dsa.pub >> authorizes_keys
scp authorizes_keys node001:`pwd`
scp authorizes_keys node002:`pwd`
scp authorizes_keys node003:`pwd`
2、安装和配置jdk(node001已经安装后上个博客)
scp -r myapps/ node002:`pwd`
scp -r myapps/ node003:`pwd` && scp -r myapps/
rpm -ivh jdk-7u80-linux-x64.rpm
2.1将node001上的/etc/profile通过网络拷贝到node002、node003、node004
scp /etc/profile node002:/etc/
scp /etc/profile node003:/etc/
scp /etc/profile node004:/etc/
在node2、node003、node004上执行./etc/profile让它生效
生效:. /etc/profile
查看:echo $JAVA_HOME
3、4台服务器解压hadoop-2.6.5.tar.gz到/opt目录
tar -zxf hadoop-2.6.5.tar.gz -C /opt
4、在hadoop-env.sh中第25行配置
export JAVA_HOME=/usr/java/jdk1.7.0_80
5、slaves,三个datanode所在的位置主机名称:
node002
node003
node004
6、在node001中修改如下:
core-site.xml
<configuration>
<!-- 指定namenode的位置:在node1上的9000端口发布一个hdfs协议的服务,用于和datanode以及客户端以及secondarynamenode通信 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<!-- 指定该路径,该路径决定了datanode、namenode以及secondarynamenode放数据的目录
dfs.namenode.name.dir
dfs.datanode.data.dir
dfs.namenode.checkpoint.dir
-->
<property>
<name>hadoop.tmp.dir</name>
<value>/var/bjsxt/hadoop/full</value>
</property>
</configuration>
7、hdfs-site.xml
<configuration>
<!-- 指定block默认副本个数 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--指定secondarynamenode的http服务所在的主机和端口号,同时也就指定了secondarynamenode所在的主机-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
</configuration>
在其他服务器进行同步
scp * node002:`pwd` && scp * node003:`pwd` && scp * node004:`pwd`
8、在/etc/profile中检查HADOOP_PREFIX
9、将/opt/hadoop-2.6.5/etc/hadoop/* 网络拷贝到node002node003node004上
scp -r * node002:`pwd`
scp -r * node003:`pwd`
scp -r * node004:`pwd`
10、格式化
在node001上执行格式化操作:
hdfs namenode -format
11、启动集群:
在node001到node004上的任意一台服务器都可以执行:
start-dfs.sh
12、停止集群:
在node001到node004上的任意一台服务器都可以执行:
stop-dfs.sh
访问一下:node001:50070
13、如果发生异常,看日志:/opt/hadoop-2.6.5/logs