一、集群环境
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 生效),添加:
- export JAVA_HOME=/java的安装路径
- export JRE_HOME=$JAVA_HOME/jre
- export HADOOP_HOME=/home/hadoop/hadoop20/
- export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
- export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
- 配置 hadoop20/conf/hadoop-env.sh
- export JAVA_HOME=/java 安装路径
- export HADOOP_HEAPSIZE=2000
- 配置 hadoop20/conf/core-site.xml
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://u33:9000</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/home/hadoop/hadoop20/tmp</value>
- </property>
- <property>
- <name>dfs.hosts.exclude</name>
- <value>/home/hadoop/hadoop20/conf/</value>
- </property>
- </configuration>
- 配置 hadoop20/conf/mapred-site.xml
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>u33:9001</value>#经测试,这里使用ip 比较好,192.168.1.33
- <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.
- </description>
- </property>
- </configuration>
- 配置 hadoop20/conf/hdfs-site.xml
- <configuration>
- <property>
- <name>dfs.name.dir</name>
- <value>/home/hadoop/hadoop20/name</value>
- </property>
- <property>
- <name>dfs.data.dir</name>
- <value>/home/hadoop/hadoop20/data</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
- </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
如果觉得讲的不够详细,可以参考这里。