特别提示 文章中提到的端口号 安实际机器能提供的端口号配置 注意日志提示 查找问题


软件的安装目录是 /usr/local/


安装机器假设
 192.168.0.1     hduser/passwd        cloud001       nn/snn/rm        CentOS6 64bit
 CentOS6 64bit
CentOS6 64bit
上面各列分别为IP、user/passwd、hostname、在cluster中充当的角色(namenode, secondary namenode, datanode , resourcemanager, nodemanager)


 修改/etc/hosts 文件,增加三台机器的ip和hostname的映射关系
                 192.168.0.1     cloud001
                 192.168.0.2     cloud002
                 192.168.0.3     cloud003


环境准备

一 jdk 安装 hadoop 2以上 都要采用jdk1.7

下载地址

http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html 

下载对应系统版本的jdk版本

安装参考

假设下载版本是 jdk-7-linux-x64.tar.gz

tar -zxvf  jdk-7-linux-x64.tar.gz 解压到安装目录  


配置环境变量
vi  vi /etc/profile
 JAVA_HOME=/usr/java/jdk1.7.0_40(这里的版本号1.7.40要根据具体下载情况修改)
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOMECLASSPATH PATH
 保存文件
/etc/profile 使配置生效
 执行 Java 可以看到 下图显示信息 即配置成功

二 设置机器之间的无秘钥登陆

1.首先在三台机器上增加用户hduser

adduser haduser

这里我们为每台机器新建了一个账户hduser.这里需要给每个账户分配sudo的权限。(切换到root账户,修改/etc/sudoers文件,

增加:hduser  ALL=(ALL) ALL 

2 查看ssh 是否安装 

CentOS 为例子 rqm -qa |grep ssh 输入命令 显示入下图的软件列表说明已经正确安装 如果没有 执行 yum -y install ssh (其他版本的可以查询)


安装完成 将用切换到hduser 

安装完成后会在~目录(当前用户主目录,即这里的/home/hduser)下产生一个隐藏文件夹.ssh(ls  -a 可以查看隐藏文件)。如果没有这个文          件,自己新建即可(mkdir .ssh)。

具体步骤如下:

1、 进入.ssh文件夹

2、 ssh-keygen -t  rsa 之后一路回 车(产生秘钥)

3、 把id_rsa.pub 追加到授权的 key 里面去(cat id_rsa.pub >> authorized_keys)

4、 重启 SSH 服 务命令使其生效 :service sshd restart(这里RedHat下为sshdUbuntu下为ssh)

此时已经可以进行ssh localhost的无密码登陆

【注意】:以上操作在每台机器上面都要进行。

3.3设置远程无密码登陆

这里只有cloud001是master,如果有多个namenode,或者rm的话则需要打通所有master都其他剩余节点的免密码登陆。(将001的authorized_keys追加到002和003的authorized_keys)

进入001的.ssh目录
scp authorized_keys hduser@cloud002:~/.ssh/ authorized_keys_from_cloud001
进入002的.ssh目录
cat authorized_keys_from_cloud001>> authorized_keys

至此,可以在001上面sshhduser@cloud002进行无密码登陆了。003的操作相同。

以上操作hadoop需要的环境就OK了

安装开始

http://125.39.68.199/files/11820000051A4411/mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.5.1/hadoop-2.5.1.tar.gz

1 下载地址并解压

2 配置之前,需要在cloud001本地文件系统创建以下文件夹:

~/dfs/name
~/dfs/data
~/temp
 
 
 这里要涉及到的配置文件有7个:
~/hadoop-2.5.1/etc/hadoop/hadoop-env.sh
~/hadoop-2.5.1/etc/hadoop/yarn-env.sh
~/hadoop-2.5.1/etc/hadoop/slaves
~/hadoop-2.5.1/etc/hadoop/core-site.xml
~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml
~/hadoop-2.5.1/etc/hadoop/mapred-site.xml
~/hadoop-2.5.1/etc/hadoop/yarn-site.xml

3.修改配置文件

个别文件默认不存在的,可以复制相应的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节点)

写入以下内容:

cloud002
cloud003
配置文件4:core-site.xml
<configuration>
                 <property>
                                 <name>fs.defaultFS</name>
                                 <value>hdfs://cloud001:9000</value>
                 </property>
        <property>
                                 <name>io.file.buffer.size</name>
                                 <value>131072</value>
                 </property>
        <property>
                                 <name>hadoop.tmp.dir</name>
                                 <value>file:/home/hduser/tmp</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>cloud001:9001</value>
         </property>
          <property>
                   <name>dfs.namenode.name.dir</name>
                  <value>file:/home/hduser/dfs/name</value>
             </property>
            <property>
                     <name>dfs.datanode.data.dir</name>
                     <value>file:/home/hduser/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>cloud001:10020</value>
                 </property>
                 <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>cloud001: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>cloud001:8032</value>
        </property>
                 <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value> cloud001:8030</value>
                </property>
                <property>
                        <name>yarn.resourcemanager.resource-tracker.address</name>
                         <value>cloud001:8031</value>
                </property>
                <property>
                        <name>yarn.resourcemanager.admin.address</name>
                         <value>cloud001:8033</value>
                </property>
                 <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>cloud001:8088</value>
        </property>
</configuration>
 
 
 接下来将配置好的hadoop 复制到其他两台机器上
 scp  hadoop 目录  hdroot@机器 目标机器hadoop目录 
 
 
 4、启动验证
4.1 启动hadoop
进入安装目录: cd  ~/hadoop-2.2.0/
格式化namenode:./bin/hdfs namenode –format
启动hdfs: ./sbin/start-dfs.sh
此时在001上面运行的进程有:namenode secondarynamenode
002和003上面运行的进程有:datanode
启动yarn: ./sbin/start-yarn.sh
此时在001上面运行的进程有:namenode secondarynamenoderesourcemanager
002和003上面运行的进程有:datanode nodemanaget
查看集群状态:./bin/hdfs dfsadmin –report
 
查看文件块组成:  ./bin/hdfsfsck / -files -blocks

查看HDFS:    http://192.168.0.1:50070


查看RM:    http:// 192.168.0.1:8088


安装完成可以跑一下经典例子wordcount 具体参考