查看: 18456|回复: 10

[转载] Hadoop实验总结

[复制链接]
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
跳转到指定楼层
1#
发表于 2012-3-1 14:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、实验目的

了解Hadoop的MapeReduce工作原理


二、实验内容

实现基于单机的伪分布式运行模拟


三、实验需要准备的软件和源

1、Jdk1.6以上 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2、Cygwin       下载地址:http://www.cygwin.com/

3、稳定版hadoop  下载地址:http://hadoop.apache.org/common/releases.html#Download


四、实验步骤1、了解Hadoop工作机制

a、Hadoop整体框架运行机制介绍

请参见http://hi.baidu.com/wongxuelei/blog/item/c1642050cfb56d481138c2fd.html

b、Hadoop中MapReduce部分执行流程

请参见http://www.blogjava.net/shenh062326/archive/2011/01/14/342959.html

c、Hadoop在线中文技术文档

请参见http://hadoop.apache.org/common/docs/r0.18.2/cn/


个人意见:

    a和b说的非常详细,刚入门可以大体了解Hadoop的HDFS和MapeReduce工作框架,等做完实验后再回过头来看这个会更清楚;c上有实例的说明和代码。


2、安装JDK到本地机器

安装目录最好不要有空格(如果有在配置Hadoop的JAVA_HOME时有点麻烦,下面会具体介绍)


3、安装Cygwin

请参见《Hadoop开发者入门》第11页 ——>在Windows上安装Hadoop教程


个人意见:

    a、注意选择上面说的需在Cygwin中安装的包;

    b、上面说到的http://www.cygwin.cn好像链接不上了,目前内陆最快的是源有

http://mirrors.163.com/cygwin/  http://mirrors.sohu.com/cygwin/ 会到30 k/s左右,其他的速度一般只有3~5 k/s;

c、如果没装成功,最好运行regedit.exe进入注册表,删除Cygwin文件,目录所在位置如图1;

d、环境变量配置仅需把平时我们陪JDK的方法配好,Cygwin仅需把bin所在目录加入,usr下的不用配;

e、安装好sshd后,该服务可以在装好的Cygwin中输入net start sshd命令启动。



图1 、Cygwin所在注册表位置


file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-6364.png

4、安装Hadoop

a、下载Hadoop的稳定版本,我选择的是hadoop-0.18.3.tar.gz(最新版本不太好用),然后解压到任意盘下;

b、配置Hadoop用于在单机环境上运行的配置文件在最后,来源http://hi.baidu.com/shirdrn/blog/item/33c762fecf9811375c600892.html


注意事项:

    a、在配置完JAVA_HOME后,如果路径有空格,运行$ bin/hadoop namenode -format命令也可能会出错,最好的办法是将Windows下的JDK映射到Cygwin中,命令如下:

LN  -s  /cygdrive/c/Program\ Files/Java/<jre name>  /usr/local/<jre name>

其中

/cygdrive/c/Program\ Files/Java/<jre name>表示在Windows中的JDK路径,

/usr/local/<jre name>表示你想映射到的Cygwin路径。

然后在把JAVA_HOME配置成 export  JAVA_HOME="/usr/local/<jre name>"


        b、运行“ $ bin/hadoop dfs -put ./input input”命令时可能会出现让你把hadoop-site.xml中的“localhost:9000”改成“ hdfs:\\localhost:9000”的问题。未解决,据网上了解说是因为单机运行的问题。



来源http://hi.baidu.com/shirdrn/blog/item/33c762fecf9811375c600892.html

首先进行Hadoop配置:
1、conf/hadoop-env.sh文件中最基本需要指定JAVA_HOME,例如我的如下:
export JAVA_HOME="D:\Program Files\Java\jdk1.6.0_07"


如果路径中存在空格,需要使用双引号。
2、只需要修改conf/hadoop-site.xml文件即可,默认情况下,hadoop-site.xml并没有被配置,如果是基于单机运行,就会按照hadoop-default.xml中的基本配置选项执行任务。
将hadoop-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>localhost:9000</value>
</property>
<property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
</configuration>


实现过程
1、认证配置
启动cygwin,同时使用下面的命令启动ssh:
$ net start sshd


如图所示:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4784.png
接着,需要对身份加密认证这一部分进行配置,这也是非常关键的,因为基于分布式的多个Datanode结点需要向Namenode提供任务执行报告信息,如果每次访问Namenode结点都需要密码验证的话就麻烦了,当然我要说的就是基于无密码认证的方式的配置,可以参考我的其他文章。
生成RSA公钥的命令如下:
$ ssh-keygen


生成过程如图所示:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4813.png
上面执行到如下步骤时需要进行设置:
Enter file in which to save the key (/home/SHIYANJUN/.ssh/id_rsa):


直接按回车键即可,按照默认的选项将生成的RSA公钥保存在/home/SHIYANJUN/.ssh/id_rsa文件中,以便结点之间进行通讯认证。
继续执行,又会提示进行输入选择密码短语passphrase,在如下这里:
Enter passphrase (empty for no passphrase):


直接按回车键,而且一定要这么做,因为空密码短语就会在后面执行过程中免去结点之间通讯进行的认证,直接通过RSA公钥(事实上,我们使用的是DSA认证,当然RSA也可以进行认证,继续看后面)认证。
RSA公钥主要是对结点之间的通讯信息加密的。如果RSA公钥生成过程如上图,说明正确生成了RSA公钥。
接着生成DSA公钥,使用如下命令:
$ ssh-keygen -t dsa


生成过程与前面的RSA类似,如图所示:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4885.png
然后,需要将DSA公钥加入到公钥授权文件authorized_keys中,使用如下命令:
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


如图所示,没有任何信息输出:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4918.png
到此,就可以进行Hadoop的运行工作了。
2、Hadoop处理的数据文件准备
我使用的是hadoop-0.16.4版本,直接拷贝到G:\根目录下面,同时,我的cygwin直接安装在G:\Cygwin里面。
在目录G:\hadoop-0.16.4中创建一个input目录,里面准备几个TXT文件,我准备了7个,文件中内容就是使用空格分隔的多个英文单词,因为是运行WordCount这个例子,后面可以看到我存入了多少内容。
3、运行过程
下面,切换到G:\hadoop-0.16.4目录下面


其中通过cygdrive(位于Cygwin根目录中)可以直接映射到Windows下的各个逻辑磁盘分区中。
在执行任务中,使用HDFS,即Hadoop的分布式文件系统,因此这时要做的就是格式化这个文件系统,使用下面命令可以完成:
$ bin/hadoop namenode -format


格式化过程如图所示:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4643.png
此时,应该启动Namenode、Datanode、SecondaryNamenode、JobTracer,使用这个命令启动:
$ bin/start-all.sh


启动过程如图所示:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4611.png
如果你没有配置前面ssh的无密码认证,或者配置了但是输入了密码短语,那么到这里就会每启动一个进程就提示输入密码,试想,如果有N多进程的话,那岂不是要命了。
然后,需要把上面我们在本地的input目录中准备的文件复制到HDFS中的input目录中,以便在分布式文件系统管理这些待处理的数据文件,使用下面命令:
$ bin/hadoop dfs -put ./input input


执行上述命令如果没有信息输出就复制成功。
现在,才可以执行Hadoop自带的WordCount列子了,使用下面命令开始提交任务,进入运行:
$ bin/hadoop jar hadoop-0.16.4-examples.jar wordcount input output


最后面两个参数分别为数据输入目录和数据处理完成后的输出目录,这里,不能在你的G:\hadoop-0.16.4目录中存在output这个目录,否则会报错的。
运行过程如图所示:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4539.png
通过上图,可以看出在运行一个Job的过程中,WordCount工具执行任务的进度情况,非常详细。
最后查看执行任务后,处理数据的结果,使用的命令行如下所示:
$ bin/hadoop dfs -cat output/part-00000


输出结果如图所示:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4493.png
最后,停止Hadoop进程,使用如下命令:
$ bin/stop-all.sh


如图所示:

file:///C:/DOCUME~1/Scidets/LOCALS~1/Temp/ksohtml/wps_clip_image-4421.png
以上就是全部的过程了。


5、hadoop自带example的代码和分析

请参见Hadoop MapReduce教程


论坛徽章:
0
2#
发表于 2012-3-2 14:41 | 只看该作者
链接打不开,图也显示不了。

使用道具 举报

回复
论坛徽章:
104
生肖徽章2007版:猪
日期:2012-07-12 14:24:56菠菜神灯
日期:2013-05-26 22:03:18生肖徽章2007版:猪
日期:2012-07-19 11:10:12生肖徽章2007版:猪
日期:2012-07-19 11:10:12生肖徽章2007版:猪
日期:2012-07-11 19:07:11生肖徽章2007版:猪
日期:2012-07-19 11:10:12生肖徽章2007版:猪
日期:2012-07-19 11:10:12ITPUB伯乐
日期:2012-05-22 15:05:25NBA季后赛纪念徽章
日期:2013-06-21 14:52:05NBA季后赛大富翁
日期:2013-06-21 14:57:11
3#
发表于 2012-4-2 20:59 | 只看该作者
GOOD!

使用道具 举报

回复
论坛徽章:
0
4#
发表于 2012-4-5 15:37 | 只看该作者
   很不错哦  

使用道具 举报

回复
5#
发表于 2012-4-24 15:00 | 只看该作者
OH最近都学习了。

使用道具 举报

回复
论坛徽章:
1
ITPUB社区OCM联盟徽章
日期:2013-03-21 15:37:32
6#
发表于 2012-9-21 09:15 | 只看该作者
学习了

使用道具 举报

回复
论坛徽章:
1
2008新春纪念徽章
日期:2008-02-13 12:43:03
7#
发表于 2013-7-7 19:58 | 只看该作者
多谢楼主!

使用道具 举报

回复
论坛徽章:
7
2013年新春福章
日期:2013-02-25 14:51:24紫蛋头
日期:2013-03-08 17:32:46ITPUB社区12周年站庆徽章
日期:2013-10-12 17:18:25红旗
日期:2013-10-17 18:07:10ITPUB社区12周年站庆徽章
日期:2013-10-21 11:06:31ITPUB社区12周年站庆徽章
日期:2013-11-20 10:22:40优秀写手
日期:2014-11-13 06:00:14
8#
发表于 2013-11-18 16:56 | 只看该作者
为什么看不见图?

使用道具 举报

回复
论坛徽章:
5
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
9#
发表于 2013-11-23 22:34 | 只看该作者
楼主,你的图挂啦!

使用道具 举报

回复
论坛徽章:
0
10#
发表于 2016-2-22 11:29 | 只看该作者
链接打不开,图也显示不了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表