日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

hadoop环境安装及简单Map-Reduce示例

發(fā)布時(shí)間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop环境安装及简单Map-Reduce示例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

說(shuō)明:這篇博客來(lái)自我的csdn博客,http://blog.csdn.net/lxxgreat/article/details/7753511


?

一.參考書(shū):《hadoop權(quán)威指南--第二版(中文)》

二.hadoop環(huán)境安裝

1.安裝sun-jdk1.6版本

1)目前我只在一臺(tái)服務(wù)器(CentOS5.5)上搭建hadoop環(huán)境,因此先卸載已安裝的java1.4版本

卸載命令:yum -y remove java

2)下載sun-jdk1.6,地址:http://download.oracle.com/otn-pub/java/jdk/6u33-b04/jdk-6u33-linux-x64-rpm.bin

3)安裝java(進(jìn)入jdk安裝文件所在目錄)?

添加bin文件權(quán)限:chmod a+x *

安裝,sudo ?./jdk-6u33-linux-x64-rpm.bin

? ? ? ? (若是在普通用戶下安裝,需要在/etc/sudoers文件下添加語(yǔ)句,表示當(dāng)前用戶可以擁有root權(quán)限,具體命令如下

a. su root

b. chmod u+w /etc/sudoers

c. vim /etc/sudoers

d.在root??? ALL=(ALL)?????? ALL下面添加一行?“username(你要?jiǎng)?chuàng)建的sudoer用戶名) ALL=(ALL)? ALL”,保存退出

e. chmod u-w /etc/sudoers

? ? ? ? )

4)設(shè)置JAVA_HOME

編輯用戶目錄下的.bashrc文件,設(shè)置JAVA_HOE命令:export JAVA_HOME=/usr

2.安裝hadoop

1)從http://hadoop.apache.org/common/releases.html#Download上下載相應(yīng)版本的hadoop(本人下載的是1.0.3版本)

2)解壓文件

命令:tar -xzf ?hadoop-1.0.3.tar.gz

3)測(cè)試hadoop是否安裝成功(進(jìn)入hadoop安裝目錄,依次執(zhí)行以下命令)

a.?mkdir input?

b.?cp conf/*.xml input?
c.?bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'?
d. cat output/*? (顯示“1 ? ? ?dfsadmin” 表示hadoop安裝成功)

4)設(shè)置環(huán)境變量

export HADOOP_HOME=/home/username/hadoop/hadoop-1.0.3
export PATH=$PATH:$HADOOP_HOME/bin
export CLASSPATH=.:$HADOOP_HOME/hadoop-core-1.0.3.jar:$HADOOP_HOME/lib:$CLASSPATH

三.簡(jiǎn)單Map-Reduce示例

一開(kāi)始按照書(shū)上20~23頁(yè)(也可參考該頁(yè)面http://answers.oreilly.com/topic/455-get-started-analyzing-data-with-hadoop/)上的內(nèi)容運(yùn)行簡(jiǎn)單的MaxTemperature示例,一直沒(méi)用過(guò)。在命令行環(huán)境下,輸入

?

% export HADOOP_CLASSPATH=build/classes% hadoop MaxTemperature input/ncdc/sample.txt output

就顯示:ClassNotFound類(lèi)似的錯(cuò)誤,然后修改,又拋出IOException,后在網(wǎng)上找了好久,得到一個(gè)可行的方案。

?

1.參考鏈接

http://hadoop.apache.org/common/docs/stable/mapred_tutorial.html

http://blog.endlesscode.com/2010/06/16/simple-demo-of-mapreduce-in-java/

2.主要步驟

mkdir MaxTemperature
javac -d MaxTemperature MaxTemperature.java
jar cvf MaxTemperature.jar -C MaxTemperature/ .
hadoop jar MaxTemperature.jar MaxTemperature sample.txt output

注意事項(xiàng):

將map,reduce類(lèi)的代碼復(fù)制到MaxTemperature.java中,添加static屬性,執(zhí)行javac命令如遇到Iterator報(bào)錯(cuò)時(shí),則添加相應(yīng)包,如下

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

四.一點(diǎn)感想

今天第一次搭建hadoop環(huán)境,主要困難在于按照書(shū)上說(shuō)明一步一步操作時(shí),遇到了錯(cuò)誤,這時(shí)不確定是書(shū)上的知識(shí)過(guò)時(shí)了還是我的操作失誤,加之對(duì)java不太熟悉,由此浪費(fèi)了好幾個(gè)小時(shí)的時(shí)間。最后,找到了一個(gè)正確的方案,成功運(yùn)行了Map-Reduce的簡(jiǎn)單示例(單機(jī)模式)。總體來(lái)說(shuō),走出了第一步,有點(diǎn)小成就感。希望能利用這個(gè)暑假深入研究hadoop。加油~

五.補(bǔ)充

參考書(shū)《Hadoop權(quán)威指南(中文第二版)》中第25頁(yè)說(shuō)明了,Hadoop從0.20.0版本開(kāi)始在類(lèi)型上不兼容先前的API,要重寫(xiě)以前的應(yīng)用程序才能使新的API發(fā)揮作用。這就說(shuō)明了用舊的API會(huì)報(bào)一些奇怪的類(lèi)似ClassNotFound的錯(cuò)誤了。

在這里補(bǔ)充下新增的API和舊的API之間的一些明顯區(qū)別(摘自書(shū)中):

1.新的API傾向于使用抽象類(lèi),而不是接口,因?yàn)檫@更容易擴(kuò)展。例如,你可以添加一個(gè)方法(用默認(rèn)的實(shí)現(xiàn))到一個(gè)抽象類(lèi)而不需修改類(lèi)之前的實(shí)現(xiàn)方法。在新的API中,Mapper和Reducer是抽象類(lèi)。
2.新的API是在org.apache.hadoop.mapreduce包(和子包)中的。之前版本的API則是放在org.apache.hadoop.mapred中的。
3.新的API廣泛使用context object(上下文對(duì)象),并允許用戶代碼與MapReduce系統(tǒng)進(jìn)行通信。例如,MapContext基本上充當(dāng)著JobConf的OutputCollector和Reporter的角色。
4.新的API同時(shí)支持"推"和"拉"式的迭代。在這兩個(gè)新老API中,鍵/值記錄對(duì)被推mapper中,但除此之外,新的API允許把記錄從map()方法中拉出,這也適用于reducer。"拉"式的一個(gè)有用的例子是分批處理記錄,而不是一個(gè)接一個(gè)。
5.新的API統(tǒng)一了配置。舊的API有一個(gè)特殊的JobConf對(duì)象用于作業(yè)配置,這是一個(gè)對(duì)于Hadoop通常的Configuration對(duì)象的擴(kuò)展(用于配置守護(hù)進(jìn)程,請(qǐng)參見(jiàn)5.1節(jié))。在新的API中,這種區(qū)別沒(méi)有了,所以作業(yè)配置通過(guò)Configuration來(lái)完成。
6.作業(yè)控制的執(zhí)行由Job類(lèi)來(lái)負(fù)責(zé),而不是JobClient,它在新的API中已經(jīng)蕩然無(wú)存。

轉(zhuǎn)載于:https://www.cnblogs.com/didiaoxiong/p/3228605.html

總結(jié)

以上是生活随笔為你收集整理的hadoop环境安装及简单Map-Reduce示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。