Chinaunix首页 | 论坛 | 博客
  • 博客访问: 283203
  • 博文数量: 33
  • 博客积分: 861
  • 博客等级: 军士长
  • 技术积分: 325
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-26 09:35
文章存档

2013年(1)

2012年(8)

2011年(25)

分类: 云计算

2012-03-13 14:34:40

Hadoop 是一个能够对大量数据进行分布式处理的软件框架,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序,以充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上,具有很高的可扩展性。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。

下面以本人在3台计算机上搭建hadoop的过程,介绍它的安装配置。

软件环境:

1.hadoop软件,下载地址:,此处下载的是0.20.2版本。

2.需要安装JDK1.5.07以上的版本,下载地址:,具体安装方式见本博客上上篇文章。

3.linux操作系统,hadoop也能用windows做为开发环境,我们完全可以在windows下安装配置一个hadoop来体验以下,但是hadoop在windows下的运行远没有在linux和unix下稳定,这也是为什么好多公司不在windows下使用hadoop的原因。此处使用了3台机器来搭建这个环境,操作系统分别是一台Ubuntu和两台debian系统。

硬件环境:

1. 3个节点,每个机器上都有一个名为hadoop的登陆账号,具体如下:

(1)  主机:  192.168.2.226    功能:NameNode,JobTracker

(2)  主机:  192.168.2.210    功能:DataNode,TaskTracker

(3)  主机:  192.168.2.218    功能:DataNode,TaskTracker

注意:以下的每一步都是以hadoop这个账户登录各台电脑完成相应操作的,当然也可以用其他比如root用户,但是最终我们是以hadoop这个账户来运行软件的,这样可能造成我们创建的文件由于权限问题无法读取或者写入,出现不必要的麻烦。

安装步骤:

1.  检查每台机器是否安装合适的版本JDK,通过使用java -version命令查看其版本号,如果没有安装,安装即可。

2.  下载Hadoop-0.20.2.tar.gz解压到相应的安装目录,此处是将其解压到/home/hadoop/目录下,即执行下列指令:

      tar -zxvf Hadoop-0.20.2.tar.gz -C /home/hadoop

      cd /home/hadoop

      mv hadoop-0.20.2/ hadoop

为了方便起见,我们最好也将hadoop安装路径加入系统环境变量,即:

      sudo gedit /etc/profile

将以下内容添加到文件末尾:

      HADOOP_HOME=/home/hadoop/hadoop     #这是hadoop的主目录   
            export HADOOP_HOME 
            HADOOP_CONF_DIR=$HADOOP_HOME/conf   #这是hadoop的配置文件目录 
            export HADOOP_CONF_DIR 
            HADOOP_LOG_DIR=$HADOOP_HOME/log    #存放运行日志目录   
            export HADOOP_LOG_DIR   
            export PATH=$PATH:$HADOOP_HOME/bin

3.  完成上述步骤以后要确认每台机器都安装了ssh,如果没有安装,需要运行

sudo apt-get install ssh 安装,安装成功之后我们需要配置使得Namenode机器能够无需输密码访问其他机器,在1号机器终端输入:

           ssh-keygen -t

           cd  ~/.ssh

          ls我们会发现,该目录下多了两个文件,即id_rsa和id_rsa.pub,执行以下命令:

          ssh-copy-id -i id_rsa.pub hadoop@ + ip地址,然后按照提示输入访问密码即可。

          分别对本机和两个数据节点执行上述命令,使得我们能够不用输入密码就能用ssh hadoop@**.**.**.**访问个台机器,这样我们的目的就达到了。

4.    配置hadoop/conf下的文件,进入上述目录

      (1) sudo gedit hadoop-env.sh  

                 修改JAVA_HOME的值为jdk的安装目录,同时将JAVA_HOME,HADOOP_OPTS之前的“#”去掉,使之生效

       (2) sudo gedit masters

                  在里面输入master的IP地址(或计算机名),每行一个,此处输入:

                 192.168.2.226

         (3)sudo gedit slaves

                  在里面输入slave的IP地址(或计算机名),每行一个,此处输入:

                  192.168.2.210

                  192.168.2.218

         (4)配置core-site.xml,conf目录下的core-site.xml文件默认是空的,但src/core目录下有一个缺省的配置文件core-default.xml,可将它复制到conf目录下,重命名成core-site.xml并做适当修改即可。也可以做如下简单配置:

      

  hadoop.tmp.dir

  /home/hadoop/storage

  A directory for other temporary directories.

  fs.default.name

  hdfs://192.168.2.226:9000

ha   hadoop.tmp.dir指定了所有上传到Hadoop的文件的存放目录,所以要确保这个目录是足够大的;

  fs.default.name指定NameNodeIP地址和端口号,缺省值是file:///,表示使用 本地文件系统,,用于单机非分布式模式。

    (5) 配置hdfs-site.xml文件(HDFS)

     

  dfs.replication

  2 

此处的value表示每个Block需要备份的次数,起到冗余备份的作用,注意,该值一定要小于DataNode的数目,否则会出错

(6)配置mapred-site.xml(mapreduce)

  mapred.job.tracker

  192.168.2.226:9001 

这里是配置jobtracker的IP和端口

这样我们的全部配置就完成了,为了方便起见,我们将Hadoop这个目录拷贝到各个节点相同目录,节省大量的配置时间。

完成以后,我们可以测试下是否安装成功:

输入 :

hadoop namenode -format

start-all.sh

stop.all.sh

如果没有报错,那么就说明我们的工作已经完成了!

在hadoop运行的时候,我们可以输入jps命令查看各个进程,还可以用hadoop dfsadmin report查看集群的状态,我们也可以通过在浏览器中访问查看集群状态。

 

 

 

                   

阅读(6459) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

五岳之巅2012-04-23 00:51:54

有价值