`
androidssh
  • 浏览: 115300 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hadoop安装配置 ubuntu9.10 hadoop0.20.2

阅读更多

转载:http://delove2.iteye.com/blog/809800

 

Hadoop是一个易于安装易于使用的系统,他既适用于云计算的新人学习,也适用于对云计算已经有一定研究的人深入学习(包括网格计算,并行计算等等)。Hadoop源于nutch,hadoop的两位创始人想开发一款开源的网络搜索引擎,但是在管理大量计算机时遇到了问题。后来google发表了关于GFS与MapReduce的论文,他们把论文中的思想应用到了Nutch中。最初他们把系统应用与20台机器上,但是很快他们发现为了处理互联网上的数据,他们需要上千台机器,这个问题超出了两个人能解决的程度。这是yahoo对hadoop产生了兴趣并成立开发小组帮助他们将这部分内容从nutch中分离出来,成为一个独立的系统,取名hadoop。
Nutch也是hadoop的顶级项目之一(详见http://nutch.apache.org/) ,hadoop源于nutch,也独立于nutch。虽然两者已经互相独立,但是还有很紧密的联系。与此类似,hadoop也并不是一个单独的项目,hadoop内出了最基本的hadoop common外,还有hdfs,mapreduce,zookeeper。同时也有一些相关项目,比如avro,chukwa,hbase,hive,mahout,pig(这些项目中很多都是从hadoop的子项目升级为apache的顶级项目的,由此可见hadoop的火热)。
对于新手,我们推荐按照默认方式安装hadoop,即同时安装hadoop common,hadoop hdfs,hadoop mapreduce。
目前,Hadoop可以运行在linux,unix,windows系统上。实际上hadoop是为在linux平台上使用而开发出来的。但是hadoop在一些主流的unix版本(甚至包括Mac OS X)也运行良好。对于windows,这个问题有些复杂。如果你想在windows上运行hadoop,那么你必须先安装Cygwin以模拟linux环境,然后再安装hadoop。
安装hadoop前,你需要先安装java6与ssh,java6必须是sun公司的jdk,这是hadoop编译运行的需要,ssh推荐安装openssh(免费的~),安装ssh是因为hadoop需要通过ssh协议来启动各个节点上的守护进程。

安装hadoop
安装hadoop 的过程很简单,hadoop的使用也很简单,同时也很灵活。
Hadoop按三类分别将主机划分为两种角色,最基本的就是master和slave,主人与奴隶;按hdfs的角度,将主机划分为namenode和datanode(在分布式文件系统中,目录的管理很重要,管理目录就相当于主人,可以从这方面理解它们的关系);按mapreduce的角度,将主机划分为jobtracker和tasktracker(一个job经常被划分为多个task,从这个角度不难理解他们之间的关系)。接下来,说一下我们的搭建过程
假设我们有6台主机,同时假设这样一种场景:

某实验室想要研究hadoop,一开始只准备搭建一个有三台机器组成的小集群,搭建成功后使用时发现只有三台机器不能满足需要,因此又需要再添加三台机器。

分配给他们的ip地址为:
10.37.128.2
10.37.128.3
10.37.128.4
10.37.128.5
10.37.128.6
10.37.128.7
同时将不同角色划分给他们,并命名主机(以方便区分):
10.37.128.2—master,namonode,jobtracker—master(主机名)
10.37.128.3—slave,datanode,tasktracker—slave1(主机名)
10.37.128.4—slave,datanode,tasktracker—slave2(主机名)
10.37.128.5—slave,datanode,tasktracker—slave3(主机名)
10.37.128.6—slave,datanode,tasktracker—slave4(主机名)
10.37.128.7—slave,datanode,tasktracker—slave5(主机名)

另外所有机器上必须有一个共同的用户名,这里,这六台机器的用户名均为u。尤其注意区分用户名与主机名。

首先,需要在每台机器上安装jdk1.6和openssh
安装jdk1.6:
安装JDK是一个很简单的过程,以ubuntu为例。
第一步:
确保可以连接到互联网,输入命令:sudo apt-get install sun-java6-jdk,输入密码。
在接下来的三个确认中输入(或点击)Yes(或ok),你就可以安装java了

这里先解释一下sudo这个命令,sudo这个命令能够允许普通用户执行某些或全部root权限命令,sudo命令提供了详尽的日志,可以记录下每个用户使用它做了什么;同时sudo也提供了灵活的管理方式,可以限制用户使用的命令;他的配置文件为/etc/sudoers。
Apt全称为the Advanced Packaging Tool,是ubuntu的软件包管理软件,通过它你可以无需考虑软件依赖关系,直接安装你所需要的软件,而apt会自动下载有依赖关系的包,并按顺序安装,在ubuntu中安装有他的一个图形化界面程序synaptic(中文译名为“新立得”),有兴趣的话也可以使用这个程序来安装你所需要的软件。(如果你想了解更多可以查看一下关于debian计划的资料)

第二步,配置环境变量:
输入命令:sudo gedit /etc/profile,输入密码,打开profile文件
在最下面输入如下内容:
#set Java Environment
export JAVA_HOME= (你的java安装位置,一般为/usr/lib/jvm/java-6-sun)
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/:$PATH"

这一步的意义是配置环境变量,使你的系统可以找到java。
第三步:验证java是否安装成功
新建文件Helloworld.java 输入如下内容:
public class Helloworld{
public static void main(String args[]){
System.out.println(“Hello World”);
}
}
输入命令:
javac Helloworld.java;(生成编译文件)
java Helloworld
如果出现“HelloWorld”说明java程序可以运行,也即java已经安装成功。
安装openssh:
同样的,以ubuntu为例,用户名为u:
第一步,确认已经连接上互联网,输入命令:
sudo apt-get install ssh
第二步,配置可以无密码登陆本机:
首先查看在u用户下是否存在.ssh文件夹(注意ssh前面有“.”,这是一个隐藏文件夹),输入命令:ls –a /home/u。一般来说,安装ssh时会自动在当前用户下创建这个隐藏文件夹,如果没有的,可以手动创建一个。接下来,
输入命令:
ssh-keygen -t dsa -P '' –f ~/.ssh/id_dsa
在ubuntu中,~代表当前用户文件夹,这里即/home/u。
这个命令会在.ssh文件夹下创建两个文件id_dsa及id_dsa.pub,这是ssh的一对私钥和公钥,类似于钥匙及锁,把id_da.pub(公钥)追加到授权的key里面去,
输入命令:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
至此无密码登陆本机以安装完成。

第三步,验证ssh已安装成功及无密码登陆本机
输入命令:
ssh localhost
如果可以登录,说明已经安装成功
第四步,将authorized_keys拷贝到其他主机
实际上,在hadoop的安装过程中,是否无密码登陆不是必须的,但是如果不配置无密码登陆的话,每次启动hadoop,都需要输入密码以登陆到每台daotanode,考虑到一般的hadoop集群动辄数十数百台机器,因此一般来说都会配置ssh的无密码登陆。
安装hadoop:
在安装hadoop前,我们需要先修改主机的几个配置文件:
在下面这个文件,添加你的主机需要识别的主机名及其对应的ip地址
/etc/hosts:
127.0.0.1 localhost
10.37.128.2 master
10.37.128.3 slave1
10.37.128.4 slave2

在下面这个文件修改你的主机名
/etc/hostname:
你的主机名(如master,slave1等)

同时根据需要,我们要在 /home/你的用户名 这个文件夹下创立tmp文件夹作为hdfs的存储文件夹。
安装hadoop官方发行版,你可以在以下地址获得hadoop的官方发行版
http://www.apache.org/dyn/closer.cgi/hadoop/core/

下载stable版本,目前是0.20.2。如下:

在master上,下载hadoop-0.20.2.tar.gz并将其解压,这里将其解压到用户目录下,一般为/home/[你的用户名]/,这里假设用户名为u,进入conf文件夹,修改配置文件:

conf/Hadoop-env.sh:
export JAVA_HOME=“你的java安装地址”
指定java位置

conf/core-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
   <name>fs.default.name</name>
   <value>hdfs://master:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/u/tmp</value>
  </property>

</configuration>
这是hadoop核心的配置文件,这里配置的是hdfs(hadoop的分布式文件系统)的地址及端口号,后一项配置为hdfs的存储文件夹,这个文件夹需要你自己创建。

conf/hdfs-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>
<property>
   <name>dfs.name.dir</name>
   <value>/home/u/hdfs/name</value>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>/home/u/hdfs/data</value>
</property>


</configuration>
这是hadoop中hdfs的配置,配置的备份方式,默认为3。

conf/mapred-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

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

</configuration>
这是hadoop中mapreduce的配置文件,配置的是jobtracker的地址及端口

conf/masters:
master
这个文件指明了谁是master,也可以填写ip地址,填写主机名是为了便于区分。

conf/slaves:
slave1
slave2
这个文件指明了谁是slave,同样也可以填写ip地址。

需要注意的是,如果安装的是0.20之前的版本,那么只有一个配置文件,即为hadoop-site.xml。
另一个需要注意的是hadoop的配置不仅仅这几项,hadoop在启动时,会用这几项的配置去修改默认配置,也就是说,hadoop有完整的默认配置,你在这里进行配置只是相当于修改hadoop的默认配置,这种做法既可以保证程序的安全性,不易出错,对于用户来说,这种做法也很方便。如果你想查看hadoop的默认配置,可以到docs中查看core-default.html, hdfs-default.html,和mapred-default.html这三个文件(0.20版本).

修改完这几个文件之后,通过scp命令将hadoop文件夹发送到其他节点上(slave1,slave2),用户名为u
scp –r /home/u/hadoop slave1:/home/u/
scp –r /home/u/hadoop slave2:/home/u/

至此,hadoop就可以说是安装完成了
启动hadoop前,需格式化hadoop的文件系统hdfs(这点与windows是一样的,重新分区后的卷总是需要格式化的),在master上,进入hadoop文件夹
输入命令:bin/hadoop namenode –format
格式化文件系统,接下来,启动hadoop
输入命令:
bin/start-all.sh(全部启动)
最后,验证hadoop是否安装成功
打开浏览器,分别输入网址
http://localhost:50030 (mapreduce的web页面)
http://localhost:50070 (hdfs的web页面)
如果都能查看,说明hadoop已经安装成功。

对于hadoop来说,mapreduce及hdfs都是必须的,但是如果有必要的话,你依然可以只启动hdfs(start-dfs.sh)或mapreduce(start-mapred.sh)

如果你的hadoop并没有正常工作,那你可查看log文件加下的日志内容一查看哪里出现问题。

向hadoop集群添加新的节点
Hadoop的管理机制很灵活,你可以动态的添加节点,配置新添加的三个节点,我们先给他们分配ip地址
10.37.128.5—slave,datanode,tasktracker—slave3(主机名)
10.37.128.6—slave,datanode,tasktracker—slave4(主机名)
10.37.128.7—slave,datanode,tasktracker—slave5(主机名)
同样的,在新添加的节点上安装jdk1.6及openssh。
同样进行hadoop的配置,当然你也可以直接从master拷贝,修改masters及slaves文件(经测试,如果不修改,也可以连接上,但是你下次启动时需要再次手动连入集群)。
输入以下命令:
bin/hadoop-daemon.sh --config ./conf start datanode
bin/hadoop-daemon.sh --config ./conf start tasktracker
这样就可以把新的节点联入集群中。
从上面这个你可以很明显的看出,第一步是启动datanode,第二步是启动tasktracker。

这里在介绍两个命令,就是重启坏死的节点,排除问题后,在坏死的节点上输入命令:
bin/hadoop-daemon.sh start datanode
bin/hadoop-daemon.sh start jobtracker
其实,参照上例,你可以看出,这个命令就是重启节点,也就是说,在重启的节点上输入启动命令,就可以把节点重新联入hadoop集群。
以上就是我们配置hadoop及日常使用时遇到的一些小问题。

同时我们搭建了一个用于mapreduce编程的网站,你可以在上面练习编写mapreduce程序,网站的地址是cloudcomputing.ruc.edu.cn。现在开放注册。想要学习mapreduce编程的朋友可以先到这个网站上练习一下。

 

分享到:
评论

相关推荐

    Ubuntu Hadoop 0.20.2 安装配置说明

    ### Hadoop 0.20.2 在 Ubuntu 上的安装配置详解 #### 一、概述 本文档旨在为初学者提供一份详细的指南,用于在 Ubuntu Server 12.04 x64 系统上安装并配置 Hadoop 0.20.2。通过本文档的学习,读者可以掌握如何搭建...

    hadoop0.20.2配置手册

    hadoop0.20.2版本在虚拟机中的安装指南,经过测试可以实现

    ubuntu9.10上部署Hadoop

    1. **安装Java**:Hadoop依赖于Java环境,因此首先需要在Ubuntu 9.10上安装Java。可以通过包管理器来安装OpenJDK或Oracle JDK。 ```bash sudo apt-get update sudo apt-get install openjdk-6-jdk ``` 2. **...

    Hadoop ubuntu 9.10 下的 SSH 免登陆

    此外,Ubuntu 9.10现在已经较为过时,对于生产环境,推荐使用更新版本的操作系统以获取更好的安全支持和软件更新。 在这个过程中,你可能会用到的文件包括`~/.ssh/id_rsa.pub`(公钥)、`~/.ssh/authorized_keys`...

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04 本教程主要讲述了在 Ubuntu 16.04 环境下安装 Hadoop 2.7.1 的步骤,包括单机模式、伪分布式模式和分布式模式三种安装方式。以下是本教程的知识点总结...

    hadoop 0.20.2

    Hadoop 0.20.2 是一个早期版本的开源分布式计算框架,它由Apache软件基金会维护并持续发展。这个版本在2010年左右发布,为大数据处理提供了基础架构,尤其在处理大规模数据集时表现出了强大的能力。本文将深入探讨...

    hbase-0.90.5.tar.gz与hadoop0.20.2版本匹配

    在安装HBase 0.90.5时,你需要先确保你的环境已经正确安装了Hadoop 0.20.2。安装步骤通常包括以下几个关键部分: 1. **解压**:将下载的`hbase-0.90.5.tar.gz`解压到指定目录。 2. **配置**:编辑`conf/hbase-site....

    hadoop安装配置文档.pdf

    Hadoop安装配置知识点: 一、Hadoop简介 Hadoop是云计算的基础,它是一个分布式系统的基础架构,被广泛应用于云计算的分布式存储和计算中。Hadoop设计用来从单一服务器扩展到数千台机器,每台机器提供本地计算和...

    redHat linux下安装hadoop 0.20.2

    redHat linux下安装hadoop 0.20.2

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    Hadoop安装教程_单机_伪分布式配置_Hadoop2.6.0_Ubuntu14.04_给力星.html

    网上找的,适合于原生Hadoop2,包括Hadoop 2.6.0, Hadoop 2.7.1 等版本,主要参考了官方安装教程,步骤详细,辅以适当说明,相信按照步骤来,都能顺利安装并运行Hadoop。

    Hadoop集群安装配置教程-Hadoop2.6.0-Ubuntu-CentOS.docx

    Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu_CentOS.docxHadoop集群安装配置教程_Hadoop2.6.0_Ubuntu_CentOS.docx

    Hadoop 0.20.2 API文档

    Hadoop 0.20.2 API文档是开发者在使用开源分布式架构Hadoop时的重要参考资料。这个版本的API文档详细地介绍了如何利用Java语言来与Hadoop生态系统进行交互,为开发人员提供了丰富的功能和工具,以实现大规模数据处理...

    Ubuntu11.10下安装Hadoop0.20.2(单机伪分布式)

    ### Ubuntu11.10下安装Hadoop0.20.2(单机伪分布式) #### 一、安装虚拟机VMware Workstation v7.1.4 在开始Hadoop的安装之前,首先需要在宿主机上安装虚拟机软件VMware Workstation v7.1.4。这一步主要是为了搭建...

    Ubuntu部署Hadoop0.20.2简要指南.pdf

    【Ubuntu部署Hadoop 0.20.2简要指南】是针对在Ubuntu 10.10系统上安装和配置Hadoop 0.20.204.0版本的详细步骤。以下是对该指南内容的详细解释: 1. **Java安装与环境配置**: 在部署Hadoop之前,需要先确保系统中...

    hadoop-0.20.2安装手册

    ### Hadoop-0.20.2安装与配置详解 #### 一、Hadoop-0.20.2概述 Hadoop是一款支持大数据处理的开源软件框架,它能够高效地处理PB级别的数据集。Hadoop-0.20.2版本作为早期的一个稳定版本,在很多场景中仍然具有重要...

Global site tag (gtag.js) - Google Analytics