首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 云计算 >

Hadoop开发周期(4):发布和运行MapReduce TODO

2013-04-12 
Hadoop开发周期(四):发布和运行MapReduce TODO在将MapReduce发布到全发布模式下运行,需要先在单机模式下运

Hadoop开发周期(四):发布和运行MapReduce TODO

     在将MapReduce发布到全发布模式下运行,需要先在单机模式下运行看能否正常通过,以提前发现bug。

1 单机模式

    单机模式不需要配置Hadoop文件,关于Hadoop安装见文章Hadoop开发周期(一):基础环境安装 。将编写的MapReduce查询打包,输入一下命令

hadoop jar wordcount.jar input output

说明:

wordcount.jar为包含运行作业main函数类的jar包。

input文件夹下放置输入的文件。output为输出的目录,在运行job前需保证该目录不存在,否则会报错。

以单词统计为例运行过程如下

Hadoop开发周期(4):发布和运行MapReduce TODO

Hadoop开发周期(4):发布和运行MapReduce TODO

运行结果文件夹如下

Hadoop开发周期(4):发布和运行MapReduce TODO

2 全发布模式2.1 机器分配及用途

NameNode --------------10.3.11.30 (Master--NameNode)

DataNode-1-------------10.3.11.31(Slave1—DataNode)

DataNode-2-------------10.3.11.46 (Slave2—DataNode)

1)设置主机名为了以后方便,在/etc/hosts里面增加各个节点的ip地址和hostname

[root@localhost ~]# vi /etc/sysconfig/network

修改文件内容如下:

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=NameNode

[root@localhost ~]# hostname NameNode

查看主机名是否修改成功

[root@localhost ~]# hostname

NameNode

2)创建用户hadoop,密码...

[root@NameNode ~]# userdel -r datanode1

[root@NameNode ~]# useradd -m hadoop

[root@NameNode ~]# passwd hadoop

3)IP 地址及别名配置

为了能够使用别名来访问服务器,需要在 /etc/hosts 文件中进行 IP 地址及别名对应关系的配置。 

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

10.3.11.11NameNode

10.3.11.12DataNode-1

10.3.11.13 DataNode-2

在从服务器上的 /etc/hosts 文件中的配置如下(以 DataNode-1 为例,DataNode-2 同理): 

[root@DataNode-1 ~]# vi /etc/hosts

10.3.11.11NameNode

10.3.11.12DataNode-1

4)创建/etc/hosts.equiv文件

[root@NameNode ~]# vi /etc/hosts.equiv

NameNode

DataNode-1

DataNode-2

     在完成上述配置服务器的配置后,在 NameNode上进行 ping DataNode-1 来验证别名与 IP 地址是否已经建立起了对应关系。如果能够拼通则表明配置成功。 

[root@DataNode-1 ~]# ping -c 1 DataNode-1

2.2 ssh配置

配置SSH,实现集群节点间账户无密码RSH方式登录(NameNode启动其他服务器上的进程免去登陆这一环节)。配置方法如下:

登入NameNode节点,产生密钥;

将NameNode节点的公开密钥分发到各节点。

1)在~目录下创建文件夹

mkdir .ssh
2) 开始配置ssh免登陆:注意,这个操作只在NameNode上操作。

ssh-keygen -t rsa //  接下来一路回车,则ok
cp id_rsa.pub authorized_keys //进入.ssh目录
3) 分发密钥
并将生成的authorized_keys拷贝到所有其他节点下去。

[hadoop@NameNode ~]#scp ~/.ssh/id_rsa.pub hadoop@DataNode-1:/home/hadoop/.ssh

[hadoop@NameNode hadoop-0.20.2]$ viconf/hadoop-env.sh

# Set Hadoop-specific environment variables here.

# The only required environment variable isJAVA_HOME.  All others are

# optional. When running a distributed configuration it is best to

# set JAVA_HOME in this file, so that it iscorrectly defined on

# remote nodes.

# The java implementation to use.  Required.

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun

export JAVA_HOME=/home/hadoop/jdk

# Extra Java CLASSPATH elements.  Optional.

# export HADOOP_CLASSPATH=

# The maximum amount of heap to use, in MB. Defaultis 1000.

# export HADOOP_HEAPSIZE=2000

# Extra Java runtime options.  Empty by default.

# export HADOOP_OPTS=-server

# Command specific options appended to HADOOP_OPTSwhen specified

exportHADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote$HADOOP_NAMENODE_OPTS"

配置slaves 文件,在其中添加有几个数据结点,本文的配置如下所示:

$vi slaves

DataNode-1

DataNode-2

配置masters 文件,在其中添加 namenode 结点,本文的配置如下所示:

$vi masters

NameNode

在完成上述配置后,即已经完成了架构的部署。即有一台 master 及多台 slaves 。 

配置 core-site.xml 文件

[hadoop@NameNode ~]$scp -r /home/hadoop/hadoop-1.0.4/  DataNode-1:/home/hadoop/hadoop-1.0.4

[hadoop@NameNode hadoop-0.20.2]$ bin/hadoop namenode -format

10/10/18 00:12:48 INFOnamenode.NameNode: STARTUP_MSG:

/************************************************************

STARTUP_MSG: Starting NameNode

STARTUP_MSG: host =ubuntu/127.0.1.1

STARTUP_MSG: args =[-format]

STARTUP_MSG: version =0.20.2

STARTUP_MSG: build =https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707;compiled 

by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010

************************************************************/

Re-format filesystemin /usr/local/hadoop/filesystem/name ? (Y or N)Y

10/10/18 00:12:53 

INFOnamenode.FSNamesystem:fsOwner=root,root,adm,dialout,fax,cdrom,tape,audio,dip,video,plugdev,fuse,lpadmin,ne

tdev,admin,sambashare

10/10/18 00:12:53 INFOnamenode.FSNamesystem: supergroup=supergroup

10/10/18 00:12:53 INFOnamenode.FSNamesystem: isPermissionEnabled=true

10/10/18 00:12:53 INFOcommon.Storage: Image file of size 94 saved in 0 seconds.

10/10/18 00:12:53 INFOcommon.Storage: Storage directory /usr/local/hadoop/filesystem/name has beensuccessfully 

formatted.

10/10/18 00:12:53 INFOnamenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shuttingdown NameNode at ubuntu/127.0.1.1

************************************************************/ 

不出意外,应该会提示格式化成功。如果不成功,就去 hadoop/logs/ 目录下去查看日志文件 . 注意这里的交互式问题一定要输入大写的 Y 。

2)启动hadoop

hadoop@NameNodehadoop-0.20.2]$ bin/start-all.sh

 

* start-all.sh 启动所有的 Hadoop 守护进程。包括 namenode, datanode, jobtracker, tasktrack

* stop-all.sh 停止所有的 Hadoop

* start-mapred.sh 启动Map/Reduce 守护。包括 Jobtracker 和 Tasktrack

* stop-mapred.sh 停止Map/Reduce 守护

* start-dfs.sh 启动Hadoop DFS 守护 .Namenode 和 Datanode

* stop-dfs.sh 停止DFS 守护

3) 查看启动情况

在成功启动后,在主服务器上通过如下地址进行访问:

http://10.3.11.11:50070  即可以查看当前有几个数据结点,它们的状态如何。

http://10.3.11.11:50030  即可以查看当前的 job 及 Task 的工作状态。 






热点排行