首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

hadoop装配配置 ubuntu9.10 hadoop0.20.2

2012-11-23 
hadoop安装配置 ubuntu9.10 hadoop0.20.2export PATH$JAVA_HOME/:$PATH 这一步的意义是配置环境变量,使

hadoop安装配置 ubuntu9.10 hadoop0.20.2
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编程的朋友可以先到这个网站上练习一下。
1 楼 Jelen_123 2012-06-29   好文章,给了我好大帮助!多谢!

热点排行