Hadoop 集群安装

一、集群环境

IP: 192.168.1.31/u31(机器名)/slave、192.168.1.32/u32(机器名)/slave、192.168.1.33/u33(机器名)/master

OS:Ubuntu10 64bits

java:1.6.0

Tool:xshell

参考hadoop1.0.0 安装记录推荐这篇也推荐这篇

二、过程

2.1 主机改名

    • (如果主机名不同,此步忽略)
    • 三台主机机器名都是ubuntu 可能会影响hdfs 的安装,所以首先改名。
    • hostname 可以查看主机机器名
    • sudo hostname  *** 只能暂时修改主机名
    • debian 下修改主机名应该同时修改 /etc/hosts 和 /etc/hostname

2.2 新添加用户组和用户名

    • 添加用户组 hadoop:sudo addgroup hadoop
    • 添加用户 hadoop:sudo adduser –ingroup hadoop hadoop
    • 修改用户密码:sudo passwd hadoop
    • 修改 /etc/sudoers,添加:hadoop ALL=(ALL) ALL  这样 hadoop 就可使用sudo了。
    • 在/home 下创建自己的目录/home/hadoop(忘记了创建hadoop 组和用户会不会自动创建)。

2.3 安装 java

    • 下载 java 包,jdk1.6 以上
    • 有很多下tar.gz 包的不能正常安装,建议用apt-get 或者下载bin 格式的安装包。
    • debian 或者ubuntu 试试 sudo apt-get install openjdk-6-jdk。

2.4 安装 hadoop

    • 这里下载安装包(我下载的是hadoop0.20.2.tar.gz)
    • 安装到/home/hadoop 文件夹下:tar -zxvf hadoop-0.20.2.tar.gz -C /home/hadoop
    • 重命名文件夹:sudo mv hadoop-0.20.2 hadoop20

2.5 建立信任关系(这步操作应该以hadoop 用户操作)

    • hdfs 使用简单的权限机制,master 和slave 必须能够无密码访问。
    • 确认安装了ssh(ssh localhost 验证)
    • 在master 上生成key(参考这) :ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
    • 生成授权key: cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    • 将授权key 拷到两个slaves:scp ~/.ssh/id_dsa.pub [email protected]:/home/hadoop/
    • 分别登陆到两个slaves 合并授权key:cat id_dsa.pub >> .ssh/authorized_keys;如果这里提示:.ssh/authorized_keys: No such file or directory,则是因为你还没有生成本地的key, 参考这进行配置。
    • 这样两个slaves 就可以无密码被访问,测试:ssh [email protected]

2.6 配置(大同小异,在master 上设置好,scp 到slaves 上即可,主要参考

    • 配置 /etc/profile (配置完后输入source /etc/profile 生效),添加:
  1. export JAVA_HOME=/java的安装路径
  2. export JRE_HOME=$JAVA_HOME/jre
  3. export HADOOP_HOME=/home/hadoop/hadoop20/
  4. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
  5. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
    • 配置 hadoop20/conf/hadoop-env.sh
  1. export JAVA_HOME=/java 安装路径
  2. export HADOOP_HEAPSIZE=2000
    • 配置 hadoop20/conf/core-site.xml
  1. <configuration>
  2. <property>
  3. <name>fs.default.name</name>
  4. <value>hdfs://u33:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/home/hadoop/hadoop20/tmp</value>
  9. </property>
  10. <property>
  11. <name>dfs.hosts.exclude</name>
  12. <value>/home/hadoop/hadoop20/conf/</value>
  13. </property>
  14. </configuration>
    • 配置 hadoop20/conf/mapred-site.xml
  1. <configuration>
  2. <property>
  3. <name>mapred.job.tracker</name>
  4. <value>u33:9001</value>#经测试,这里使用ip 比较好,192.168.1.33
  5. <description>The host and port that the MapReduce job tracker runsat.  If “local”, then jobs are run in-process as a single mapand reduce task.
  6. </description>
  7. </property>
  8. </configuration>
    • 配置 hadoop20/conf/hdfs-site.xml
  1. <configuration>
  2. <property>
  3. <name>dfs.name.dir</name>
  4. <value>/home/hadoop/hadoop20/name</value>
  5. </property>
  6. <property>
  7. <name>dfs.data.dir</name>
  8. <value>/home/hadoop/hadoop20/data</value>
  9. </property>
  10. <property>
  11. <name>dfs.replication</name>
  12. <value>3</value>
  13. </property>
  14. </configuration>
    • 配置 hadoop20/conf/hadoop-env.sh

export JAVA_HOME=/java安装路径

    • 配置 masters  和 slaves

masters:192.168.1.33

slaves:192.168.1.31

192.168.1.32

2.7 复制

将上面配置的文件拷贝到slaves 替代对应的文件 /etc/profile, core-site.xml, mapred-site.xml, hdfs-site.xml, hadoop-env.sh 等。

2.8 大功告成,格式化hadoop并启动

  • hadoop namenode -format(如果提示permission denied ,就应该是hadoop 的权限问题,授予其对hadoop 文件的所有权限即可)
  • 通过安装文件下 /home/hadoop/hadoop20/bin/start-all.sh 启动,stop-all.sh 关闭。
下图hadoop 格式化

下图启动 hadoop

 

如果觉得讲的不够详细,可以参考这里

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据