在-Windows-平台下部署-Hadoop-开发环境_第1页
在-Windows-平台下部署-Hadoop-开发环境_第2页
在-Windows-平台下部署-Hadoop-开发环境_第3页
在-Windows-平台下部署-Hadoop-开发环境_第4页
在-Windows-平台下部署-Hadoop-开发环境_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在Windows平台下部署Hadoop开发环境魏仁言2010.6.8Hadoop简介Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,由于分布式存储对于分布式编程来说是必不可少的,这个框架中还包含了一个分布式文件系统HDFS(HadoopDistributedFileSystem)。也许到目前为止,Hadoop还不是那么广为人知,其最新的版本号也仅仅是0.20,距离1.0似乎都还有很长的一段距离,但提及Hadoop一脉相承的另外两个开源项目Nutch和Lucene(三者的创始人都是DougCutting),那绝对是大名鼎鼎。Lucene是一个用Java开发的开源高性能全文检索工具包,它不是一个完整的应用程序,而是一套简单易用的API。在全世界范围内,已有无数的软件系统,Web网站基于Lucene实现了全文检索功能,后来DougCutting又开创了第一个开源的Web搜索引擎()Nutch,它在Lucene的基础上增加了网络爬虫和一些和Web相关的功能,一些解析各类文档格式的插件等,此外,Nutch中还包含了一个分布式文件系统用于存储数据。从Nutch0.8.0版本之后,DougCutting把Nutch中的分布式文件系统以及实现MapReduce算法的代码独立出来形成了一个新的开源项Hadoop。Nutch也演化为基于Lucene全文检索以及Hadoop分布式计算平台的一个开源搜索引擎。基于Hadoop,你可以轻松地编写可处理海量数据的分布式并行程序,并将其运行于由成百上千个结点组成的大规模计算机集群上。从目前的情况来看,Hadoop注定会有一个辉煌的未来:"云计算"是目前灸手可热的技术名词,全球各大IT公司都在投资和推广这种新一代的计算模式,而Hadoop又被其中几家主要的公司用作其"云计算"环境中的重要基础软件,如:雅虎正在借助Hadoop开源平台的力量对抗Google,除了资助Hadoop开发团队外,还在开发基于Hadoop的开源项目Pig,这是一个专注于海量数据集分析的分布式计算程序。Amazon公司基于Hadoop推出了AmazonS3(AmazonSimpleStorageService),提供可靠,快速,可扩展的网络存储服务,以及一个商用的云计算平台AmazonEC2(AmazonElasticComputeCloud)。在IBM公司的云计算项目--"蓝云计划"中,Hadoop也是其中重要的基础软件。Google正在跟IBM合作,共同推广基于Hadoop的云计算。

准备:1.

Java1.6以上2.

EclipseEuropa3.3.23.

Cygwin4.

Hadoop-0.20.2

1.

安装Cygwin

Hadoop主要是在Linux平台下运行的,如果想在Windows平台下运行,你需要安装Cygwin才能运行,Hadoop脚本。a.

下载Cygwin安装包(here.)b.

运行安装包,你将要看到下图。

c.

安装时一定要确认选择“openssh”安装包。如下图:

d.

完成安装

2.

安装SSH守护进程Hadoop分布式运行需要SSH。所以这一部分介绍在Cygwin下配置SSH守护进程。a.

打开Cygwin命令环境b.

执行以下命令

rywei@RYWEI$chmod+r/etc/group

rywei@RYWEI$chmod+r/etc/passwd

rywei@RYWEI$chmod+rwx/var

rywei@RYWEI$ssh-host-configc.

·

Whenaskedifprivilegeseparationshouldbeused,answerno.记着一定要答no,否则用Hadoop-EcliplePlugin插件进行开发时,会提示你没有权限操作文件,不能写等错误。(我因为这个问题头痛了好长时间,最后才找到是这里出现问题的。)·

Whenaskedifsshdshouldbeinstalledasaservice,answeryes.·

WhenaskedaboutthevalueofCYGWINenvironmentvariableenterntsec.d.

配置完后,启动SSHD守护进程运行:netstartsshd或者通过Windows服务,启动CYGWINSSHD服务.想要停止服务运行:netstopsshd就可以了e.

生成密钥

$ssh-keygen-tdsa-P''-f~/.ssh/id_dsa

$cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys

f.

测试最后运行以下命令测试

sshlocalhost如果没有问题会提示以下内容:Theauthenticityofhost'localhost()'can'tbeestablished.RSAkeyfingerprintis08:03:20:43:48:39:29:66:6e:c5:61:ba:77:b2:2f:55.Areyousureyouwanttocontinueconnecting(yes/no)?yesWarning:Permanentlyadded'localhost'(RSA)tothelistofknownhosts.rywei@localhost'spassword:会提示输入你机子的登录密码,输入无误后,会出现文本图形,类似于欢迎的提示:TheHipposays:Welcometo如果你不想每次都要输入密码,可以执行以下命令即可$ssh-keygen-tdsa-P''-f~/.ssh/id_dsa

$cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys

3.

Hadoop安装配置a.从Hadoop网站下载最新的安装包(当前版本:hadoop-0.20.2)(here)

b.解压hadoop-0.20.2安装包到你的主目录(/home/username/)

修改conf/hadoop-env.sh文件,将exportJAVA_HOME的值修改为你机上的jdk安装目录,比如/cygdrive/d/tools/jdk1.6.0_03,/cygdrive是Cygwin安装成功后系统的根目录如果你的JDK安装在“C:/ProgramFiles/Java/jdk1.6.0_20”,请用引号括住。如:exportJAVA_HOME='C:/ProgramFiles/Java/jdk1.6.0_20'c.在Hadoop主目录内创建logs目录,用以存放Hadoop日志信息d.配置HadoopHadoop可以用以下三种支持的模式中的一种启动Hadoop集群:单机模式伪分布式模式完全分布式模式单机模式的操作方法默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。这对调试非常有帮助。下面的实例将已解压的conf目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output目录。

$mkdirinput

$cpconf/*.xmlinput

$bin/hadoopjarhadoop-*-examples.jargrepinputoutput'dfs[a-z.]+'

$catoutput/*伪分布式模式的操作方法Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。使用如下配置:

conf/core-site.xml:<configuration>

<property>

<name></name>

<value>hdfs://localhost:9000</value>

</property></configuration>

conf/hdfs-site.xml:<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property></configuration>

conf/mapred-site.xml:<configuration>

<property>

<name>mapred.job.tracker</name>

<value>localhost:9001</value>

</property></configuration>在Cygwin下必须设置中间的暂存目录,否则会出错的在mapred-site.xml中:添加:<property>

<name>mapred.child.tmp</name>

<value>/home/hadoop-0.20.1/temp</value></property>注:我就是忘记设置这个参数,代码总是不能成功运行,产生如下错误:10/05/0409:15:50WARNmapred.JobClient:UseGenericOptionsParserforparsingthearguments.ApplicationsshouldimplementToolforthesame.10/05/0409:15:50INFOmapred.FileInputFormat:Totalinputpathstoprocess:410/05/0409:15:51INFOmapred.JobClient:Runningjob:job_201005040912_000210/05/0409:15:52INFOmapred.JobClient:

map0%reduce0%10/05/0409:15:58INFOmapred.JobClient:TaskId:attempt_201005040912_0002_m_000006_0,Status:FAILEDjava.io.FileNotFoundException:FileC:/tmp/hadoop-SYSTEM/mapred/local/taskTracker/jobcache/job_201005040912_0002/attempt_201005040912_0002_m_000006_0/work/tmpdoesnotexist.

atorg.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:420)

atorg.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:244)

atorg.apache.hadoop.mapred.TaskRunner.setupWorkDir(TaskRunner.java:520)

atorg.apache.hadoop.mapred.Child.main(Child.java:143)

10/05/0409:16:03INFOmapred.JobClient:TaskId:attempt_201005040912_0002_m_000006_1,Status:FAILEDjava.io.FileNotFoundException:FileC:/tmp/hadoop-SYSTEM/mapred/local/taskTracker/jobcache/job_201005040912_0002/attempt_201005040912_0002_m_000006_1/work/tmpdoesnotexist.

atorg.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:420)

atorg.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:244)

atorg.apache.hadoop.mapred.TaskRunner.setupWorkDir(TaskRunner.java:520)

atorg.apache.hadoop.mapred.Child.main(Child.java:143)4.执行格式化一个新的分布式文件系统:

$bin/hadoopnamenode-format启动Hadoop守护进程:

$bin/start-all.shHadoop守护进程的日志写入到${HADOOP_LOG_DIR}目录(默认是${HADOOP_HOME}/logs).浏览NameNode和JobTracker的网络接口,它们的地址默认为:NameNode-http://localhost:50070/JobTracker-http://localhost:50030/将输入文件拷贝到分布式文件系统:

$bin/hadoopfs-putconfinput运行发行版提供的示例程序:

$bin/hadoopjarhadoop-*-examples.jargrepinputoutput'dfs[a-z.]+'查看输出文件:将输出文件从分布式文件系统拷贝到本地文件系统查看:

$bin/hadoopfs-getoutputoutput

$catoutput/*或者在分布式文件系统上查看输出文件:

$bin/hadoopfs-catoutput/*完成全部操作后,停止守护进程:

$bin/stop-all.sh5.安装Hadoopplugin在Hadoop根目录里,contrib/eclipse-plugin文件夹下有,Hadoop在Eclipse的插件hadoop-0.20.2-eclipse-plugin.jar。将其拷贝到Eclipse的plugins目录下。启动Eclipse后,你将看到如下界面:

设置Hadoop主目录点击Eclipse主菜单上Windows->Preferences,然后在左侧选择HadoopHomeDirectory,设定你的Hadoop主目录,如图一所示:

创立一个MapReduceProject点击Eclipse主菜单上File->New->Project,在弹出的对话框中选择MapReduceProject,输入projectname如wordcount,然后点击Finish即可。,如图所示:

此后,你就可以象一个普通的Ecl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论