配置环境:
centos 5.4 版本64位系统
需要准备的软件:
jdk1.6.0版本、hadoop-0.20.2
环境介绍
集群包含三个节点:1个namenode、2个datanode属于同一个局域网,可以互ping通
节点IP如下:
namenode:[email protected]
datanode:[email protected]
datanode:[email protected]
步骤
在各台机子上新建用户,并赋root权限:
1. useradd hadoop
2. usermod -g root hadoop
ssh无密码登录配置
1.安装ssh协议:sudo yum install ssh
2.安装rsync: sudo yum install rsync (rsync是一个远程数据同步工具,可以同时同步多台之间的文件)
3.启动ssh服务:ssh sudo /etc/init.d/ssh restart
配置 无密码登录所有datanode
以hadoop用户登录
执行以下步骤:
ssh-keygen -t rsa (生成密钥及公钥),将id_rsa.pub cp一份,并命名为authorize_key
修改/etc/ssh/sshd_config文件,打开以下节点:
RSAAuthentication yes
PubkeyAuthentication yes
配置jdk环境
在所有机器上执行如下命令:vim /etc/profile。并加入以下内容,配置环境变量
# set java environment
export JAVA_HOME="/usr/java/jdk1.6.0_14/"
export JAVA_HOME="/usr/java/jdk1.6.0_14/jre"
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
保存并退出,执行以下命令使配置生效:
[hadoop@zhangpeng ~]$ source /etc/profile
[hadoop@zhangruixue ~]$ source /etc/profile
[hadoop@guanxiansun ~]$ source /etc/profile
Hadoop集群配置
1、下载hadoop-0.20.2.tar.gz
在namenode上下载hadoop-0.20.2.tar.gz,将其解压
到/home/hadoop/hadoopinstall目录下,使用如下命令:
[hadoop@zhangpeng hadoopinstall]$ tar -xvzf hadoop-0.20.2.tar
然后在hadoopinstall下创建tmp文件夹并把Hadoop 的安装路径添加
到/etc/profile中修改/etc/profile 文件(配置java环境变量的文件),将以下语句添加
到末尾,并使其有效(source /etc/profile):
# set hadoop path
export HADOOP_HOME=/home/hadoop/hadoopinstall/hadoop-0.20.1
export PATH=$HADOOP_HOME/bin:$PATH
2、编辑Hadoop的配置文件
(1)配置hadoop-env.sh
[hadoop@zhangpeng conf]$ vim hadoop-env.sh
末尾加入以下语句
# set java environment
export JAVA_HOME=/usr/java/jdk1.6.0_14/
hadoop配置文件在conf目录下,之前的版本Hadoop的配置文件主要是Hadoop-default.xml和Hadoop-site.xml。由于hadoop发展迅速,代码量急剧增加,代码开发分为
了core,hdfs和map/reduce三部分,配置文件也被分成了三个core-site.xml、hdfs-site.xml、mapred-site.xml。
(2)配置core-site.xml文件
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopinstall/tmp</value>
(注意,请先在 hadoopinstall 目录下建立 tmp 文件夹)
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.90.91:9000</value>
</property>
</configuration>
(3)配置hdfs-site.xml文件
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
(replication 是数据副本数量,默认为 3,datanode 少于 3 台就会报错)
</property>
<configuration>
(4)配置 mapred-site.xml文件
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.90.91:9001</value>
</property>
</configuration>
(5)配置 masters 文件,加入 namenode 的 ip 地址
192.168.90.91
(6)配置 slaves 文件, 加入所有 datanode 的 ip 地址
192.168.90.94
192.168.90.205
将 namenode 上 配 置 好 的 hadoop 所 在 文 件 夹 hadoopinstall 复 制 到
datanode 的/home/hadoop/目录下(实际上masters,slavers文件时不必要的, 复制了也
没问题)。
在 datanode 上修改/etc/profile 文件 (配置 java 环境变量的文件 ),将以下语
句添加到 末尾,并使其有效(source /etc/profile):
# set hadoop path
export HADOOP_HOME=/home/zkl/hadoopinstall/hadoop-0.20.1
export PATH=$HADOOP_HOME/bin:$PATH
五、Hadoop集群启动
在Namenode 格式化 hadoop:
[hadoop@zhangpeng ~]$ hadoop namenode -format
启动 hadoop:
[hadoop@zhangpeng ~]$ start-all.sh
可以通过以下启动日志看出,首先启动namenode 接着启动datanode1,datanode2,
然后启动secondarynamenode。再启动jobtracker, 然后启动tasktracker1, 最后启动
tasktracker2。
启动 hadoop成功后,在 namenode 中的 tmp 文件夹中生成了 dfs 文件夹,在
datanode 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。
在namenode 上用 java 自带的小工具 jps 查看进程
[hadoop@zhangpeng ~]$ /usr/java/jdk1.6.0_14/bin/jps
18978 JobTracker
21242 Jps
18899 SecondaryNameNode
18731 NameNode
在每个 datanode 上查看进程
[hadoop@zhangruixue ~]$ /usr/java/jdk1.6.0_14/bin/jps
17706 TaskTracker
20499 Jps
17592 DataNode
[hadoop@guanxiansun ~]$ /usr/java/jdk1.6.0_14/bin/jps
28550 TaskTracker
28436 DataNode
30798 Jps
在 namenode 上查看集群状态:
[hadoop@zhangpeng ~]$ hadoop dfsadmin -report
Configured Capacity: 123909840896 (115.4 GB)
Present Capacity: 65765638144 (61.25 GB)
DFS Remaining: 65765257216 (61.25 GB)
DFS Used: 380928 (372 KB)
DFS Used%: 0%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Datanodes available: 2 (2 total, 0 dead)
常见问题:
Browse the filesystem 的链接无法打开:需要绑定本地机子的host