安装之前,首先打通机器无密码登录
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
把产生的密钥放到slave机器上,这样master就可以无密码登录slave了
1、 解压文件
将第一部分中下载的hadoop-2.2.tar.gz解压到/home/sm01路径下。然后为了节省空间,可删除此压缩文件,或将其存放于其他地方进行备份。将hadoop-2.2.0重命名为hadoop2
mkdir hadoop2
cp -r hadoop-2.2.0/* .
注意:每台机器的安装路径要相同!!
三台机器配置host映射
192.168.1.1 master
192.168.1.2 slave1
192.168.1.3 slave2
2、 hadoop配置过程
配置之前,需要在master本地文件系统创建以下文件夹:
~/dfs/name
~/dfs/data
~/dfs/temp
这里要涉及到的配置文件有7个:
~/hadoop2/etc/hadoop/hadoop-env.sh
~/hadoop2/etc/hadoop/yarn-env.sh
~/hadoop2/etc/hadoop/slaves
~/hadoop2/etc/hadoop/core-site.xml
~/hadoop2/etc/hadoop/hdfs-site.xml
~/hadoop2/etc/hadoop/mapred-site.xml
~/hadoop2/etc/hadoop/yarn-site.xml
以上个别文件默认不存在的,可以复制相应的template文件获得。
配置文件1:hadoop-env.sh
修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_40)
配置文件2:yarn-env.sh
修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk1.7.0_40)
配置文件3:slaves (这个文件里面保存所有slave节点)
写入以下内容:
slave1
slave2
配置文件4:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/sm01/hadoop2/dfs/temp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>
配置文件5:hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/sm01/hadoop2/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/sm01/hadoop2/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
配置文件6:mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
配置文件7:yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
3、复制到其他节点
这里可以用无密码登录,这样比较容易复制,因为我后面要装hbase,所以无密码登录已经打通,可以直接用一下命令推送到其他机器上
scp -r hadoop2/ slave1:/home/sm01
scp -r hadoop2/ slave2:/home/sm01
4、启动验证
4.1 启动hadoop
进入安装目录: cd ~/hadoop2/
格式化namenode:./bin/hadoop namenode -format
注:如果格式化或者启动hadoop的nodename报错,则需要修改 conf/hadoop-env.sh,增加
export HADOOP_COMMON_HOME=/usr/hadoop/hadoop (hadoop的安装目录)
然后重新格式化namenode
启动: ./sbin/start-all.sh
此时在master上面运行的进程有:namenode secondarynamenode
slave上面运行的进程有:datanode
查看集群状态:./bin/hdfs dfsadmin –report
查看文件块组成: ./bin/hdfsfsck / -files -blocks
查看HDFS: http://192.168.1.1:50070
查看RM: http:// 192.168.1.1:8088
4.2 运行示例程序:
先在hdfs上创建一个文件夹
./bin/hdfs dfs –mkdir /input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter input