目錄
1. 新建项目
2. 数据准备
3. 运行项目
4.运行程序
?5. 结果查看
首頁 資料庫 mysql教程 第一个Map/Reduce程序

第一个Map/Reduce程序

Jun 07, 2016 pm 04:31 PM
mac map reduce 開發 程式 第一個

当在MAC上搭建好开发环境之后,第一件事肯定是找一个hello world程序练习下。而hadoop世界的hello word程序就是下面的这个Word Count程序。 1. 新建项目 步骤:FileNewOtherMap/Reduce Project 项目名可以随便取,如MapReduceSample。然后新建类WordCount.ja

当在MAC上搭建好开发环境之后,第一件事肯定是找一个hello world程序练习下。而hadoop世界的hello word程序就是下面的这个Word Count程序。

1. 新建项目

步骤:File–>New–>Other–>Map/Reduce Project

项目名可以随便取,如MapReduceSample。然后新建类WordCount.java,其代码如下:

package com.lifeware.test;
import java.io.IOException;
import java.util.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
import org.apache.hadoop.util.*;
public class WordCount {

public static class Map extends MapReduceBase implements Mapper {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();

? ? ? ? public void map(LongWritable key, Text value, OutputCollector output, Reporter reporter) throws IOException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
output.collect(word, one);
}
}
}

public static class Reduce extends MapReduceBase implements Reducer {
public void reduce(Text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException {
int sum = 0;
while (values.hasNext()) {
sum += values.next().get();
}
output.collect(key, new IntWritable(sum));
}
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
JobConf conf = new JobConf(WordCount.class);
conf.setJobName(“wordcount”);

? ?conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(Map.class);
conf.setCombinerClass(Reduce.class);
conf.setReducerClass(Reduce.class);

? ?conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);

? ?FileInputFormat.setInputPaths(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));

? ?JobClient.runJob(conf);
}
}

2. 数据准备

为了运行程序,我们分别需要一个输入和输出的文件夹。输出文件夹,在程序运行完成后会自动生成。我们需要给程序传人一个输入文件夹。

2.1. ?准备本地文件

在当前项目目录下新建文件夹input,并在文件夹下新建两个文件file1、file2,这两个文件内容分别如下:

?file1: ? ?Hello World Bye World
file2: ? ? ?Hello Hadoop Goodbye Hadoop

2.2. 将文件夹input上传到分布式文件系统中?

在已经启动Hadoop守护进程终端中cd 到hadoop安装目录,运行下面命令:

bin/hadoop fs -put ../test/input input

将input文件夹上传到了hadoop文件系统后,在该系统下就多了一个input文件夹,你可以使用下面命令查看:

bin/hadoop fs -ls

或者直接通过Eclipse插件,查看DFS Locations显示:

3. 运行项目

3.1. ?在新建的项目MapReduceSample,点击WordCount.java,右键–>Run As–>Run Configurations

3.2. 在弹出的Run Configurations对话框中,点Java Application,右键–>New,这时会新建一个application名为WordCount

3.3. ?配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:

hdfs://localhost:9000/user/metaboy/input hdfs://localhost:9000/user/metaboy/output

这里面的input就是你刚传上去文件夹。文件夹地址你可以根据自己具体情况填写。

4.运行程序

点击Run,运行程序,过段时间将运行完成,等运行结束后,可以在终端中用命令:

? ? ?bin/hadoop fs -ls

或者使用插件hadoop eclipse插件查看是否生成文件夹output。

?5. 结果查看

用下面命令查看生成的文件内容:

? ? bin/hadoop fs -cat output/*

运行完这个程序之后,基本上就算是步入到Hadoop这个大家族啦!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在iPhone中使Google地圖成為預設地圖 如何在iPhone中使Google地圖成為預設地圖 Apr 17, 2024 pm 07:34 PM

iPhone上的預設地圖是Apple專有的地理位置供應商「地圖」。儘管地圖越來越好,但它在美國以外的地區運作不佳。與谷歌地圖相比,它沒有什麼可提供的。在本文中,我們討論了使用Google地圖成為iPhone上的預設地圖的可行性步驟。如何在iPhone中使Google地圖成為預設地圖將Google地圖設定為手機上的預設地圖應用程式比您想像的要容易。請依照以下步驟操作–先決條件步驟–您必須在手機上安裝Gmail。步驟1–開啟AppStore。步驟2–搜尋“Gmail”。步驟3–點選Gmail應用程式旁

3 招教你輕鬆自訂 Mac 電腦名稱、主機名稱和 Bonjour 名稱 3 招教你輕鬆自訂 Mac 電腦名稱、主機名稱和 Bonjour 名稱 Mar 06, 2024 pm 12:20 PM

許多Mac用戶往往習慣保留設備的預設名稱,可能從未考慮過更改。很多人選擇沿用初始設定時的名稱,例如「張三的MacBookAir」或簡單的「iMac」。學會如何修改Mac的名稱是一項非常實用的技能,尤其是在擁有多台裝置時,可以幫助你快速區分和管理它們。接下來,我們將一步步教你如何在macOS系統中更改電腦名稱、主機名稱和Bonjour名稱(本地主機名稱)。為什麼要更改Mac名稱?修改Mac名稱不僅能彰顯個性,還能有助於提升使用體驗:個人化你的Mac:預設名稱可能不符合你的口味,換一個自己喜歡的名字

iPhone中缺少時鐘應用程式:如何修復 iPhone中缺少時鐘應用程式:如何修復 May 03, 2024 pm 09:19 PM

您的手機中缺少時鐘應用程式嗎?日期和時間仍將顯示在iPhone的狀態列上。但是,如果沒有時鐘應用程序,您將無法使用世界時鐘、碼錶、鬧鐘等多項功能。因此,修復時鐘應用程式的缺失應該是您的待辦事項清單的首位。這些解決方案可以幫助您解決此問題。修復1–放置時鐘應用程式如果您錯誤地從主畫面中刪除了時鐘應用程序,您可以將時鐘應用程式放回原位。步驟1–解鎖iPhone並開始向左側滑動,直到到達「應用程式庫」頁面。步驟2–接下來,在搜尋框中搜尋「時鐘」。步驟3–當您在搜尋結果中看到下方的「時鐘」時,請按住它並

四款值得推薦的AI輔助程式工具 四款值得推薦的AI輔助程式工具 Apr 22, 2024 pm 05:34 PM

這個AI輔助程式工具在這個AI快速發展的階段,挖掘出了一大批好用的AI輔助程式工具。 AI輔助程式設計工具能夠提升開發效率、提升程式碼品質、降低bug率,是現代軟體開發過程中的重要助手。今天大姚給大家分享4款AI輔助程式工具(而且都支援C#語言),希望對大家有幫助。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI編碼助手,可幫助你更快、更省力地編寫程式碼,從而將更多精力集中在問題解決和協作上。 Git

微信mac如何設定語音訊息自動轉成文字-設定語音轉成文字的方法 微信mac如何設定語音訊息自動轉成文字-設定語音轉成文字的方法 Mar 19, 2024 am 08:28 AM

近日有一些小夥伴諮詢小編微信mac如何設定語音訊息自動轉成文字?下面就為大家帶來了微信mac設定語音訊息自動轉成文字的方法,有需要的小夥伴可以來了解了解哦。第一步:首先,打開Mac版微信。如圖:第二步:接著,點選『設定』。如圖:第三步:然後,點選『通用』。如圖:第四步:再勾選『聊天中的語音訊息自動轉成文字』選項即可。如圖:第五步:最後,關閉視窗即可。如圖:

無法允許存取 iPhone 中的相機和麥克風 無法允許存取 iPhone 中的相機和麥克風 Apr 23, 2024 am 11:13 AM

您在嘗試使用應用程式時是否收到“無法允許存取攝影機和麥克風”?通常,您可以在需要提供的基礎上向特定物件授予攝影機和麥克風權限。但是,如果您拒絕權限,攝影機和麥克風將無法運作,而是顯示此錯誤訊息。解決這個問題是非常基本的,你可以在一兩分鐘內完成。修復1–提供相機、麥克風權限您可以直接在設定中提供必要的攝影機和麥克風權限。步驟1–轉到“設定”選項卡。步驟2–打開「隱私與安全」面板。步驟3–在那裡打開“相機”權限。步驟4–在裡面,您將找到已要求手機相機權限的應用程式清單。步驟5–開啟指定應用的“相機”

在Mac上將HEIC照片轉換為JPG的3種方法 在Mac上將HEIC照片轉換為JPG的3種方法 Mar 15, 2024 pm 08:43 PM

預設情況下,iPhone以HEIC格式從相機拍攝照片。 HEIC代表高效影像容器,可容納比PNG或JPG檔案更多的像素數據,與其他格式相比,在iPhone儲存上佔用的空間顯著減少。這些檔案在iPhone上效果最佳,但並未在網路上廣泛接受,因為當您與非Apple裝置共用這些檔案時,它們通常會導致圖片模糊/有顆粒感。為了確保HEIC圖片在其他裝置上可相容,可能需要將其轉換為JPG格式。本文將介紹在Mac上將HEIC影像轉換為JPG的方法。如何在Mac上將HEIC照片轉換為JPG[3種方法]方法

AI程式設計師哪家強?探索Devin、通靈靈碼和SWE-agent的潛力 AI程式設計師哪家強?探索Devin、通靈靈碼和SWE-agent的潛力 Apr 07, 2024 am 09:10 AM

2022年3月3日,距離世界首個AI程式設計師Devin誕生不足一個月,普林斯頓大學的NLP團隊開發了一個開源AI程式設計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內容,使用自動語法檢查、編輯特定行,以及編寫和執行測試。 (註:以上內容為原始內容微調,但保留了原文中的關鍵訊息,未超過指定字數限制。)SWE-A

See all articles