herodby
技术 笔记
posts - 14,  comments - 14,  trackbacks - 0

1.     Hadoop基本组成

      NameNode 主要存放文件映射和文件更改日志

      SecondaryNameNode 一个守护进程 定时从NameNode同步文件更改日志并合并成一条日志,方便hadoop每次重启时 找到上次宕机的还原点。在后续的版本中会被backupNameNodenameNode集群取代。

      Jobtracker 任务调度守护进程

      Tasktracker 任务执行进程

      DataName  数据存储节点,往往和Tasktracker部署在同一台机器上。

1.     安装平台:

GNU/Linux hadoop不建议在win32平台上使用,顾这里只介绍在linux系统上的 安装和配置

2.      所需的软件:

JavaTM1.5.x及以上的版本,必须安装,建议选择Sun公司发行的Java版本。

ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。

3.     下载

  本文使用的是 hadoop-0.20.203.0,笔者当前的稳定版本。

下载地址 http://hadoop.apache.org/common/releases.html#Download

 

4.     部署

本文 使用的是 4 linux机器,hadoop.master 作为namenode节点,hadoop.second作为secondaryNameNode节点,hadoop.slave1 作为第一datanode节点,hadoop.slave2作为第二个datanode节点。

5.     环境配置

7.1  公共配置(集群中所有机器都需要的配置)

Ø        编辑环境变量

建议直接编辑 /etc/profile文件 增加 JAVA_HOMEHADOOP_HOME环境变量,具体事例如下所示:

   [root@hadoop ~]# vi /etc/profile

   增加如下几行代码

export JAVA_OPTS='-Xms256m -Xmx512m'

export JAVA_HOME=/usr/local/java

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JRE_HOME=/usr/local/java/jre

export PATH=$JAVA_HOME/bin:$PATH

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

笔者为了以后方便起停hadoop hadoopbin也目录加到path中。

   : wq

   让环境变量即时生效

   [root@hadoop ~]# source /etc/profile

Ø         修改 hosts文件

   [root@hadoop ~]# vi /etc/hosts

   在打开的文件中添加如下配置

   192.168.2.17 hadoop.master

192.168.2.19 hadoop.slave1

192.168.2.14 hadoop.slave2

192.168.1.197 hadoop.second

   增加如上几个域名,具体ip地址由各自的实际情况定,这里只列出笔者实验环境所需的。 Hadoop集群环境中 使用域名访问的,所以需要把slavemaster等域名加到每台服务器上。

Ø        建立hadoop专属用户

   Groupadd  hadoop

   Useradd hadoop –g hadoop

   Passwd hadoop

   Changing password for user hadoop.

New UNIX password:

123456

Retype new UNIX password:

123456

Ø        安装软件

   安装JDK/usr/local下命名为java

将下载好的hadoop-0.20.3.tar.gz文件上传到master/usr/local/hadoop
tar zxvf hadoop-0.20.3.tar.gz #
解压文件

设置hadoop目录的访问权限

chown –R hadoop:hadoop /usr/local/hadoop

Ø        改机器名

     把每台机器的 机器名改成localhost

     Vi /etc/sysconfig/network

     修改HOSTNAME  = localhost

     此处是没搞清楚为什么的地方,实验结果表明 必须改成localhost hadoop才能正常启动。具体原理 目前还没有搞清楚,只知其然,其所以然有待于以后研究。 

7.2  每个节点不同的配置

7.2.1               配置hadoop

   Hadoop的配置文件 在早期版本中都放在同一个文件里 hadoop-site.xml,在新版本中hadoop把配置文件做了区分,分成了:

Core-site.xml        配置Common组件的属性

Hadoop-site.xml      配置HDFS组件的属性

Mapred-site.xml      配置map-reduce组件的属性

除了这3个配置文件以外 还有 hadoop-env.xml 用来设置 hadoop用到的环境变量;masters文件用来配置 SNN 节点地址 注意必须配置域名slaves文件 配置所有DN节点的地址,必须是域名

7.2.2            Core-site.xml 配置实例

 DN节点 以及 NN节点,snn节点配置一至

   <property>

       <name>fs.default.name</name>           // 配置NN节点地址和端口号

       <value>hdfs://hadoop.master:9000</value>  //注意格式必须是 host:port的形式

</property>

<property>

       <name>hadoop.tmp.dir</name>           //hadoop临时目录用来存放nn临时文件

       <value>/usr/local/hadoop/tmp</value>      //该目录必须预先手工创建不能删除

</property>

<property>

       <name>fs.checkpoint.period</name>      //snn检查nn日志的时间周期

        <value>60</value>                   //单位是秒,正式环境上建议配置成12小时

</property>

<property>

        <name>fs.checkpoint.size</name>      //snn每次从nn上读取的数据大小

        <value>67108864</value>            //通常情况下默认值就可以

</property>

7.2.3                Hdfs-site.xml

Ø         NN 节点

    <property>

        <name>dfs.name.dir</name>        // 指定name 镜像文件存放目录,如不指定则

        <value>/usr/local/hadoop/hdfs/name</value> //默认为core-site中配置的tmp目录

    </property>

<property>

        <name>dfs.replication</name>     //数据节点冗余备份的数量,由于实验只有2

        <value>1</value>                // NN 顾设置唯一,实际配置是可由实际情况

    </property>                         //配置,建议尽量大于3

    <property>

        <name>dfs.permissions</name>    //是否需要角色权限验证,上传文件时会用到,

        <value>false</value>             //如果为true ,需要绑定hadoop用户角色

    </property>

    <property>

        <name>dfs.secondary.http.address</name>  //SNN web访问地址。

        <value>hadoop.second:50090</value>

    </property>

Ø         DN节点配置

    <property>

       <name>dfs.data.dir</name>             // 数据存放的目录,如果不写 默认为

       <value>/usr/local/hadoop/hdfs/data</value>  // core-site中配置的tmp目录

    </property>

    <property>

       <name>dfs.replication</name>      //数据节点冗余备份的数量,由于实验只有2

       <value>1</value>                 // NN 顾设置唯一,实际配置是可由实际情况

    </property>                         //配置,建议尽量大于3

    <property>

       <name>dfs.permissions</name>     //是否需要角色权限验证,上传文件时会用到

       <value>false</value>              //如果为true ,需要绑定hadoop用户角色

    </property>

    <property>

       <name>dfs.secondary.http.address</name>   //SNN web访问地址

       <value>hadoop.second:50090</value>

</property>

Ø           SN节点的配置

    <property>

       <name>dfs.name.dir</name> // 指定name 镜像文件存放目录,如不指定则

       <value>/usr/local/hadoop/hdfs/name</value> //默认为core-site中配置的tmp目录

    </property>

    <property>

       <name>dfs.replication</name>    //数据节点冗余备份的数量,由于实验只有2

       <value>1</value>                // NN 顾设置唯一,实际配置是可由实际情况

    </property>                       //配置,建议尽量大于3

    <property>

       <name>dfs.permissions</name>

       <value>false</value>

    </property>

    <property>

        <name>dfs.http.address</name>    NN web访问地址,注意此处和其他节点不同

        <value>hadoop.master:50070</value>

    </property>

Ø         Mapred-site.xml配置

所有节点都一致

  <property>

    <name>mapred.job.tracker</name>

    <value>hadoop.master:9001</value> //必须为hostport的形式,不能直接写ip

  </property>

Jobtracker的分布式的配置方法目前没设置成功,有待于继续研究

Ø         Masters文件配置和slaves文件配置 所有节点全部一致

所有节点的masters 里面均配置 SNN的域名

所有节点的slaves 里面均配置所有DN的域名,一行一个DN

Ø         Hadoop-env.sh 文件配置

里面是hadoop运行时定义的环境变量

其他的都可以用默认值,但是有一项必须修改 就是javahome环境变量,指定到实际的javahome目录。实例:

 export JAVA_HOME=/usr/local/java  

1.     hadoop无用户登录配置

hadoop用户进入每台机器:

进入 /home/hadoop 目录

ssh-keygen -t rsa  #建立ssh目录,敲回车到底

1)        登录NN服务器

2)        进入/home/hadoop/.ssh目录

3)        scp -r id_rsa.pub hadoop@hadoop.slave1:/home/hadoop/.ssh/authorized_keys

#master上的密钥传到slave1hadoop用户下,重命名为authorized_keys

4)        scp -r id_rsa.pub hadoop@hdoop.slave2:/home/hadoop/.ssh/authorized_keys

#master上的密钥传到slave2hadoop用户下,重命名为authorized_keys

5)        scp -r id_rsa.pub hadoop@hadoop.second:/home/hadoop/.ssh/authorized_keys

#master上的密钥传到snnhadoop用户下,重命名为authorized_keys

 

6)        hadoop用户进入hadoop.slave1 /home/hadoop/.ssh目录

7)        cat id_rsa.pub >> authorized_keys

#把自己的id_rsa.pub内容也放到authorized_keys

8)        scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_s1
#
slave1上的密钥传到masterhadoop用户下

 

9)        hadoop用户进入hadoop.slave2  /home/hadoop/.ssh目录

10)     cat id_rsa.pub >> authorized_keys

#把自己的id_rsa.pub内容也放到authorized_keys

11)     scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_s2
#
slave2上的密钥传到masterhadoop用户下

12)     hadoop用户进入hadoop.second  /home/hadoop/.ssh目录

13)     cat id_rsa.pub >> authorized_keys

#把自己的id_rsa.pub内容也放到authorized_keys

14)     scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_second
#
snn上的密钥传到masterhadoop用户下

 

15)     master,上执行以下操作

16)     cat id_rsa.pub >> authorized_keys

#将本地密钥添加authorized_keys

17)     cat authorized_keys_s1 >> authorized_keys

18)     cat authorized_keys_s2 >> authorized_keys

19)     cat authorized_keys_second >> authorized_keys

20)     rm authorized_keys_second

21)     rm authorized_keys_s1

22)     rm authorized_keys_s2

这样主节点和从节点之间就可以不用密码直接ssh访问

特别注意 authorized_keys 文件的访问权限 必须设置成600

登录每台机器 执行 chmod 600 authorized_keys

2.     启动hadoop

hadoop用户进入nn服务器的 /usr/local/hadoop/hadoop-0.20.203.0/bin目录

Ø         格式化hadoop

Hadoop namenode –format

Ø         启动hadoop

./start-all.ssh  ,不建议这样启动 建议单独启动守护进程。

Ø         Hadoop日志目录

/usr/local/hadoop/hadoop-0.20.203.0/logs

启动完检查下启动日志,启动后 nn上查看

hadoop-hadoop-namenode-master.log

hadoop-hadoop-jobtracker-master.log

因为 我们的 nn jobtracker 部署在同一台机器上,所有master上会有2个日志

登录snn节点服务器 查看

hadoop-hadoop-secondarynamenode-master.log

这几个没错误就OK

这时候就可以进入管理页面看看了


posted on 2011-12-08 13:14 邓兵野 阅读(3496) 评论(2)  编辑  收藏

FeedBack:
# re: 基于hadoop的云计算 第一篇 安装配置篇
2011-12-10 13:03 | tb
好资料 学习了   回复  更多评论
  
# re: 基于hadoop的云计算 第一篇 安装配置篇
2011-12-16 18:58 | -274°C
好资料,收藏了,改天仔细看。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2011年12月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜