在ubuntu12.04(64位)下安装配置hadoop2.6.0,配置三个节点。
192.168.1.150作为master,192.168.1.150作为slave1,192.168.1.151作为slave2,192.168.1.152作为slave3。
一.安装JDK,及配置环境变量(略)
二.配置hosts文件
vi /etc/hosts
127.0.0.1localhost
127.0.1.1ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
192.168.1.150 master
192.168.1.150 slave1
192.168.1.151 slave2
192.168.1.152 slave3
三.配置SSH(这一步不是必须的,但可以免去每次开启或关闭集群时输入节点密码的麻烦)
ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh-add ~/.ssh/id_rsa(在centos中无需此命令,但我在ubuntu中,必须要加这个命令才能成功配置ssh)
四.下载并配置hadoop2.6.0
系统版本必须和hadoop版本以及jdk版本匹配,不然可能会出现问题。我这边系统和软件版本是ubuntu12.04(64bit)\jdk1.7.0_80\,hadoop 2.6.0
1、 解压文件
将第一部分中下载的hadoop-2.6.0.tar.gz解压到/home/hadoop/hadoop-2.6.0路径下。然后为了节省空间,可删除此压缩文件,或将其存放于其他地方进行备份。
注意:每个节点的安装路径要相同!!
2、 hadoop配置过程
配置之前,需要在master本地文件系统创建以下文件夹:
mkdir ~/dfs/name
mkdir ~/dfs/data
mkdir ~/temp
这里要涉及到的配置文件有7个:
~/hadoop-2.6.0/etc/hadoop/hadoop-env.sh
~/hadoop-2.6.0/etc/hadoop/yarn-env.sh
~/hadoop-2.6.0/etc/hadoop/slaves
~/hadoop-2.6.0/etc/hadoop/core-site.xml
~/hadoop-2.6.0/etc/hadoop/hdfs-site.xml
~/hadoop-2.6.0/etc/hadoop/mapred-site.xml
~/hadoop-2.6.0/etc/hadoop/yarn-site.xml以上个别文件默认不存在的,可以复制相应的template文件获得。
配置文件1:hadoop-env.sh
修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_80)
配置文件2:yarn-env.sh修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_80)
配置文件3:slaves (这个文件里面保存所有slave节点)写入以下内容:
slave1
slave2
slave3
配置文件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/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.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/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/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、复制到其他节点
scp -r /home/hadoop/hadoop-2.6.0 hadoop@slave2:/home/hadoop/ #复制hadoop所有文件
scp -r /home/hadoop/hadoop-2.6.0/etc hadoop@slave2:/home/hadoop/hadoop-2.6.0 #只复制配置文件
scp root@slave2:/etc/profile /etc/profile #复制环境变量文件
并且将每个节点的主机名改为相应的名称,如将master节点的主机名改为master
vi /etc/hostname
内容改为master,其他节点类似。
五.检验及测试
1 启动hadoop
进入安装目录: cd ~/hadoop-2.6.0/
格式化namenode:./bin/hdfs namenode –format
启动hdfs: ./sbin/start-dfs.sh
此时在master上面使用jps命令,可以看到进程有:namenode secondarynamenode
slave2运行的进程有:datanode
启动yarn: ./sbin/start-yarn.sh
此时在master上面运行的进程有:namenode secondarynamenode resourcemanager
slave2上面运行的进程有:datanode nodemanager
查看集群状态:./bin/hdfs dfsadmin –report
查看文件块组成: ./bin/hdfsfsck / -files -blocks
查看HDFS: http://192.168.1.150:50070
查看RM: http:// 192.168.1.150:8088
2.错误排查
看$HADOOP_HOME/log目录下的日志文件排查错误。
有时候不能正常启动,可以通过以下命令解决。
stop-all.sh
rm -r /usr/temp/* /usr/dfs/data/* /usr/dfs/name/*
rm -r /usr/hadoop-2.6.0/logs/*
hdfs namenode -format
start-all.sh