Hadoop 集群安装

作者: jaclon 分类: Linux 发布时间: 2013-03-17 05:36 ė 6没有评论

以下是我在虚拟机中安装hadoop集群的过程,记录下来方便以后查看

1. 安装系统

在VMware中安装至少两台虚拟主机,一台作为主服务器,其它的作为从服务器。本次采用的是Centos 5.9 64位系统,共两台即一主一从。主机之间可相互访问,主服务器ip:172.16.17.133 从服务器ip:172.16.17.134

2.环境配置

2.1 分别在两台主机上添加hadoop用户

useradd hadoop # 添加用户

passwd hadoop # 设置密码

2.2 关闭防火墙

service iptables stop

chkconfig iptables off

service ip6tables stop

chkconfig ip6tables off

2.3 关闭SELinux

修改/etc/sysconfig/selinux中的SELINUX=disabled

setenforce 0 #不重启应用上面的修改

getenforce

3.安装JDK

安装hadoop的JDK环境,具体请移步linux(centos 5.9)安装jdk7

4.安装Hadoop

4.1 下载Hadoop

到http://hadoop.apache.org/上下载最新稳定版;本次下载的是hadoop-1.0.4-bin.tar.gz

4.2 配置SSH无密码登录

Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用 无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到 NameNode。

以hadoop用户执行以下代码

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@172.16.17.134
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@172.16.17.133

ssh-keygen -t rsa #创建一个无密码的密钥

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@172.16.17.134 # 把公钥复制到其它主机上,这里有两条,表示分别复制到这两台主机上;如果有多台从服务器,这里也加上其它从服务器;从而实现各主机都不要需要密码就能登录到其它主机上。每台主机都照上面执行一次。

执行ssh localhost/172.16.171.134 确认能无密码登录

4.3 安装Hadoop

#su –   #切换到root用户安装Hadoop

将hadoop-1.0.4-bin.tar.gz 解压到/usr下

[root@Master Download]# ls
hadoop-1.0.4-bin.tar.gz jdk-7u17-linux-x64.rpm
[root@Master hadoop]# tar -zxvf hadoop-1.0.4-bin.tar.gz -C /usr
[root@Master hadoop]#cd /usr
[root@Master hadoop]#mv hadoop-1.0.4 hadoop #重命名
[root@Master hadoop]#chown -R hadoop:hadoop hadoop #修改所有者为hadooop用户
[root@Master hadoop]# cd hadoop
[root@Master hadoop]#mkdir tmp   #创建tmp目录

添加Hadoop环境变量,修改/etc/profile添加以下代码

# set hadoop path
export PATH=$PATH:/usr/hadoop/bin

重新加载/etc/profile,使配置生效
source /etc/profile

5.配置Hadoop

配置文件位于/usr/hadoop/conf目录下

修改hadoop-env.sh在最后添加如下代码
# set java environment
export JAVA_HOME=/usr/java/jdk1.7.0_17

配置core-site.xml文件,最终结果如下


<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/hadoop/tmp</value>
        <description>A base for other temporary directories.</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://172.16.17.133:9000</value>
    </property>
</configuration>

配置hdfs-site.xml文件,结果如下


<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
</configuration>

这里的1表示只有一个从服务器,默认3个

配置mapred-site.xml文件,结果如下


<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>http://172.16.17.133:9001</value>
    </property>
</configuration>

配置masters文件,这个是配置主机的ip列表这里设置为172.16.17.133,每行一个

配置slaves文件,这个是主服务器特有的,内容为从服务器ip列表,这里只有一个:172.16.17.134

从服务器的配置与上面的基本一致,主要区别是ip,及slaves文件,

6.测试启动

主服务器切换到hadoop用户,执行格式化命令

# hadoop namenode -format

启动Hadoop

#start-all.sh

执行jps查看进程


[hadoop@Master ~]# jps
4447 NameNode
4680 JobTracker
8320 Jps
4592 SecondaryNameNode

在从服务器上执行


[hadoop@Slave1 ~]$ jps
4506 TaskTracker
4434 DataNode
6030 Jps

或执行hadoop dfsadmin -report命令


[hadoop@Master home]$ hadoop dfsadmin -report
Configured Capacity: 0 (0 KB)
Present Capacity: 0 (0 KB)
DFS Remaining: 0 (0 KB)
DFS Used: 0 (0 KB)
DFS Used%: �%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

-------------------------------------------------
Datanodes available: 0 (0 total, 0 dead)

或访问http://172.16.17.133:50030
或访问http://172.16.17.133:50070

本文出自 肥蕉博客@IT技术,热门话题,生活随笔,美图欣赏,转载时请注明出处及相应链接。

本文永久链接: http://www.bananawolf.com/html/2013/03/930.html

发表评论

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

*

Ɣ回顶部