目次
将WordCount.java复制到linux下的一个目录,这里我复制到/home/crazyant/hadoop_wordcount
在该目录(/home/crazyant/hadoop_wordcount)下创建wordcount_classes目录,用于存放编译WordCount.java生成的class文件。
编译WordCount.java文件,其中-classpath选项表示要引用hadoop官方的包,-d选项表示要将编译后的class文件生成的目标目录。
然后将编译后的class文件打包:
在本地用echo生成一个文件,用于输入数据:
在hadoop上建立一个目录,里面建立输入文件的目录
将本地刚刚写的的inputfile上传到hadoop上的input目录
运行jar,以建立的Input目录作为输入参数
查看output目录是否有结果
将该目录下所有文本文件合并后下载到本地
查看一下下载下来的计算结果
ホームページ データベース mysql チュートリアル hadoop第一个程序WordCount.java的编译运行过程

hadoop第一个程序WordCount.java的编译运行过程

Jun 07, 2016 pm 04:31 PM
hadoop プログラム 初め

java是hadoop开发的标准官方语言,本文下载了官方的WordCount.java并对其进行了编译和打包,然后使用测试数据运行了该hadoop程序。 这里假定已经装好了hadoop的环境,在Linux下运行hadoop命令能够正常执行; 下载java版本的WordCount.java程序。 将WordCount

java是hadoop开发的标准官方语言,本文下载了官方的WordCount.java并对其进行了编译和打包,然后使用测试数据运行了该hadoop程序。

这里假定已经装好了hadoop的环境,在Linux下运行hadoop命令能够正常执行;

下载java版本的WordCount.java程序。

将WordCount.java复制到linux下的一个目录,这里我复制到/home/crazyant/hadoop_wordcount

[crazyant@dev.mechine hadoop_wordcount]$ ll

total 4

-rwxr–r–? 1 crazyant crazyant 1921 Aug 16 20:03 WordCount.java

在该目录(/home/crazyant/hadoop_wordcount)下创建wordcount_classes目录,用于存放编译WordCount.java生成的class文件。

[crazyant@dev.mechine hadoop_wordcount]$ mkdir wordcount_classes

[crazyant@dev.mechine hadoop_wordcount]$ ll

total 8

drwxrwxr-x? 2 crazyant crazyant 4096 Aug 16 20:07 wordcount_classes

-rwxr–r–? 1 crazyant crazyant 1921 Aug 16 20:03 WordCount.java

编译WordCount.java文件,其中-classpath选项表示要引用hadoop官方的包,-d选项表示要将编译后的class文件生成的目标目录。

[crazyant@dev.mechine hadoop_wordcount]$ javac -classpath /home/crazyant/app/hadoop/hadoop-2-core.jar -d wordcount_classes WordCount.java

[crazyant@dev.mechine hadoop_wordcount]$ ll -R

.:

total 8

drwxrwxr-x? 3 crazyant crazyant 4096 Aug 16 20:09 wordcount_classes

-rwxr–r–? 1 crazyant crazyant 1921 Aug 16 20:03 WordCount.java

./wordcount_classes:

total 4

drwxrwxr-x? 3 crazyant crazyant 4096 Aug 16 20:09 org

./wordcount_classes/org:

total 4

drwxrwxr-x? 2 crazyant crazyant 4096 Aug 16 20:09 myorg

./wordcount_classes/org/myorg:

total 12

-rw-rw-r–? 1 crazyant crazyant 1546 Aug 16 20:09 WordCount.class

-rw-rw-r–? 1 crazyant crazyant 1938 Aug 16 20:09 WordCount$Map.class

-rw-rw-r–? 1 crazyant crazyant 1611 Aug 16 20:09 WordCount$Reduce.class

然后将编译后的class文件打包:

[crazyant@dev.mechine hadoop_wordcount]$ jar -cvf wordcount.jar -C wordcount_classes/ .

added manifest

adding: org/(in = 0) (out= 0)(stored 0%)

adding: org/myorg/(in = 0) (out= 0)(stored 0%)

adding: org/myorg/WordCount$Map.class(in = 1938) (out= 798)(deflated 58%)

adding: org/myorg/WordCount$Reduce.class(in = 1611) (out= 649)(deflated 59%)

adding: org/myorg/WordCount.class(in = 1546) (out= 749)(deflated 51%)

[crazyant@dev.mechine hadoop_wordcount]$ ll

total 12

drwxrwxr-x? 3 crazyant crazyant 4096 Aug 16 20:09 wordcount_classes

-rw-rw-r–? 1 crazyant crazyant 3169 Aug 16 20:11 wordcount.jar

-rwxr–r–? 1 crazyant crazyant 1921 Aug 16 20:03 WordCount.java

在本地用echo生成一个文件,用于输入数据:

[crazyant@dev.mechine hadoop_wordcount]$ echo “hello world, hello crazyant, i am the ant, i am your brother” > inputfile

[crazyant@dev.mechine hadoop_wordcount]$ more inputfile

hello world, hello crazyant, i am the ant, i am your brother

在hadoop上建立一个目录,里面建立输入文件的目录

[crazyant@dev.mechine hadoop_wordcount]$ hadoop fs -mkdir /app/word_count/input

[crazyant@dev.mechine hadoop_wordcount]$ hadoop fs -ls /app/word_count

Found 1 items

drwxr-xr-x?? 3 czt czt????????? 0 2013-08-16 20:16 /app/word_count/input

将本地刚刚写的的inputfile上传到hadoop上的input目录

[crazyant@dev.mechine hadoop_wordcount]$ hadoop fs -put inputfile /app/word_count/input

[crazyant@dev.mechine hadoop_wordcount]$ hadoop fs -ls /app/word_count/input

Found 1 items

-rw-r–r–?? 3 czt czt???????? 61 2013-08-16 20:18 /app/word_count/input/inputfile

运行jar,以建立的Input目录作为输入参数

[crazyant@dev.mechine hadoop_wordcount]$ hadoop jar wordcount.jar org.myorg.WordCount /app/word_count/input /app/word_count/output

13/08/16 20:19:38 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.

13/08/16 20:19:40 INFO util.NativeCodeLoader: Loaded the native-hadoop library

13/08/16 20:19:40 INFO compress.LzoCodec: Successfully loaded & initialized native-lzo library

13/08/16 20:19:40 INFO compress.LzmaCodec: Successfully loaded & initialized native-lzma library

13/08/16 20:19:40 INFO compress.QuickLzCodec: Successfully loaded & initialized native-quicklz library

13/08/16 20:19:40 INFO mapred.FileInputFormat: Total input paths to process : 1

13/08/16 20:19:41 INFO mapred.JobClient: splits size : 61

13/08/16 20:19:41 INFO mapred.JobClient: Running job: job_20130813122541_105844

13/08/16 20:19:43 INFO mapred.JobClient:? map 0% reduce 0%

13/08/16 20:19:57 INFO mapred.JobClient:? map 24% reduce 0%

13/08/16 20:20:07 INFO mapred.JobClient:? map 93% reduce 0%

13/08/16 20:20:16 INFO mapred.JobClient:? map 100% reduce 1%

13/08/16 20:20:26 INFO mapred.JobClient:? map 100% reduce 61%

13/08/16 20:20:36 INFO mapred.JobClient:? map 100% reduce 89%

13/08/16 20:20:47 INFO mapred.JobClient:? map 100% reduce 96%

13/08/16 20:20:57 INFO mapred.JobClient:? map 100% reduce 98%

13/08/16 20:21:00 INFO mapred.JobClient: Updating completed job! Ignoring …

13/08/16 20:21:00 INFO mapred.JobClient: Updating completed job! Ignoring …

13/08/16 20:21:00 INFO mapred.JobClient: Job complete: job_20130813122541_105844

13/08/16 20:21:00 INFO mapred.JobClient: Counters: 19

13/08/16 20:21:00 INFO mapred.JobClient:?? File Systems

13/08/16 20:21:00 INFO mapred.JobClient:???? HDFS bytes read=1951

13/08/16 20:21:00 INFO mapred.JobClient:???? HDFS bytes written=68

13/08/16 20:21:00 INFO mapred.JobClient:???? Local bytes read=5174715

13/08/16 20:21:00 INFO mapred.JobClient:???? Local bytes written=256814

13/08/16 20:21:00 INFO mapred.JobClient:?? Job Counters

13/08/16 20:21:00 INFO mapred.JobClient:???? Launched reduce tasks=100

13/08/16 20:21:00 INFO mapred.JobClient:???? Rack-local map tasks=61

13/08/16 20:21:00 INFO mapred.JobClient:???? ORIGINAL_REDUCES=100

13/08/16 20:21:00 INFO mapred.JobClient:???? Launched map tasks=61

13/08/16 20:21:00 INFO mapred.JobClient:???? MISS_SCHEDULED_REDUCES=15

13/08/16 20:21:00 INFO mapred.JobClient:?? TASK_STATISTICS

13/08/16 20:21:00 INFO mapred.JobClient:???? Total Map Slot Time=34

13/08/16 20:21:00 INFO mapred.JobClient:???? Attempt_0 Map Task Count=61

13/08/16 20:21:00 INFO mapred.JobClient:???? Total Reduce Slot Time=892

13/08/16 20:21:00 INFO mapred.JobClient:?? Map-Reduce Framework

13/08/16 20:21:00 INFO mapred.JobClient:???? Reduce input groups=9

13/08/16 20:21:00 INFO mapred.JobClient:???? Combine output records=0

13/08/16 20:21:00 INFO mapred.JobClient:???? Map input records=1

13/08/16 20:21:00 INFO mapred.JobClient:???? Reduce output records=9

13/08/16 20:21:00 INFO mapred.JobClient:???? Map input bytes=61

13/08/16 20:21:00 INFO mapred.JobClient:???? Combine input records=0

13/08/16 20:21:00 INFO mapred.JobClient:???? Reduce input records=9

查看output目录是否有结果

[crazyant@dev.mechine hadoop_wordcount]$ hadoop fs -ls /app/word_count/output??????????????????????????????????????????????????? Found 100 items

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00000

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00001

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00002

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00003

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00004

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00005

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00006

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00007

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00008

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00009

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00010

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00011

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00012

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00013

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00014

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00015

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00016

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00017

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00018

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00019

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00020

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00021

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00022

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00023

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00024

-rw-r–r–?? 3 czt czt????????? 0 2013-08-16 20:20 /app/word_count/output/part-00025

将该目录下所有文本文件合并后下载到本地

[crazyant@dev.mechine hadoop_wordcount]$ hadoop fs -getmerge /app/word_count/output wordcount_result

[crazyant@dev.mechine hadoop_wordcount]$ ls

inputfile? wordcount_classes? wordcount.jar? WordCount.java? wordcount_result

查看一下下载下来的计算结果

[crazyant@dev.mechine hadoop_wordcount]$ more wordcount_result

i?????? 2

your??? 1

crazyant,?????? 1

brother 1

hello?? 2

am????? 2

world,? 1

the???? 1

ant,??? 1

统计结果正确;

参考文章:http://hadoop.apache.org/docs/r0.18.3/mapred_tutorial.html#Example%3A+WordCount+v1.0

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GoogleマップをiPhoneのデフォルト地図にする方法 GoogleマップをiPhoneのデフォルト地図にする方法 Apr 17, 2024 pm 07:34 PM

iPhone のデフォルトの地図は、Apple 独自の地理位置情報プロバイダーである Maps です。マップは改善されていますが、米国外ではうまく機能しません。 Googleマップと比べて何も提供するものはありません。この記事では、Google マップを iPhone のデフォルトの地図として使用するための実行可能な手順について説明します。 Google マップを iPhone のデフォルトの地図にする方法 Google マップを携帯電話のデフォルトの地図アプリとして設定するのは、思っているよりも簡単です。以下の手順に従ってください – 前提条件 – 携帯電話に Gmail がインストールされている必要があります。ステップ 1 – AppStore を開きます。ステップ 2 – 「Gmail」を検索します。ステップ 3 – Gmail アプリの横にある をクリックします

修正: Windows タスク スケジューラでのオペレーター拒否要求エラー 修正: Windows タスク スケジューラでのオペレーター拒否要求エラー Aug 01, 2023 pm 08:43 PM

タスクを自動化し、複数のシステムを管理するには、ミッション計画ソフトウェアは、特にシステム管理者にとって貴重なツールです。 Windows タスク スケジューラはその仕事を完璧に実行しますが、最近多くの人がオペレーターによる要求拒否エラーを報告しています。この問題はオペレーティング システムのすべてのバージョンに存在し、広く報告され取り上げられていますが、効果的な解決策はありません。他の人にとって実際に何が役立つかを知るために読み続けてください!オペレーターまたは管理者によって拒否されたタスク スケジューラ 0x800710e0 のリクエストは何ですか?タスク スケジューラを使用すると、ユーザーの入力なしでさまざまなタスクやアプリケーションを自動化できます。これを使用して、特定のアプリケーションのスケジュールと整理、自動通知の構成、メッセージ配信の支援などを行うことができます。それ

Windows 10および11で写真を顔ごとに並べ替える方法 Windows 10および11で写真を顔ごとに並べ替える方法 Aug 08, 2023 pm 10:41 PM

Windows の操作性はバージョンが上がるごとにますます良くなり、ユーザー エクスペリエンスを向上させる魅力的な機能が追加されています。 Windows 10 および 11 でユーザーが検討したい機能の 1 つは、写真を顔ごとに並べ替える機能です。この機能を使用すると、顔認識を使用して友人や家族の写真をグループ化できます。楽しそうですよね?この機能を活用する方法については、以下をお読みください。 Windows で写真を顔ごとにグループ化できますか?はい、Windows 10 および 11 では、フォト アプリを使用して顔ごとに写真をグループ化できます。ただし、この機能は写真アプリのバージョンでは利用できません。さらに、[人物] タブを使用して、これらの写真を連絡先にリンクできます。したがって、この機能を使用すると、

C++ で簡単なカウントダウン プログラムを作成するにはどうすればよいですか? C++ で簡単なカウントダウン プログラムを作成するにはどうすればよいですか? Nov 03, 2023 pm 01:39 PM

C++ は広く使用されているプログラミング言語で、カウントダウン プログラムを作成するのに非常に便利で実用的です。カウントダウン プログラムは、非常に正確な時間計算とカウントダウン機能を提供する一般的なアプリケーションです。この記事では、C++ を使用して簡単なカウントダウン プログラムを作成する方法を紹介します。カウントダウン プログラムを実装する鍵は、タイマーを使用して時間の経過を計算することです。 C++ では、time.h ヘッダー ファイル内の関数を使用してタイマー関数を実装できます。以下は、単純なカウントダウン プログラムのコードです。

iPhoneに時計アプリがない:それを修正する方法 iPhoneに時計アプリがない:それを修正する方法 May 03, 2024 pm 09:19 PM

携帯電話に時計アプリがありませんか?日付と時刻は iPhone のステータス バーに引き続き表示されます。ただし、時計アプリがないと、世界時計、ストップウォッチ、目覚まし時計、その他多くの機能を使用できません。したがって、見つからない時計アプリを修正することは、やるべきことリストの一番上に置く必要があります。これらの解決策は、この問題の解決に役立ちます。解決策 1 – 時計アプリを配置する 誤って時計アプリをホーム画面から削除した場合は、時計アプリを元の場所に戻すことができます。ステップ 1 – iPhone のロックを解除し、App ライブラリ ページに到達するまで左にスワイプを開始します。ステップ 2 – 次に、検索ボックスで「時計」を検索します。ステップ 3 – 検索結果に以下の「時計」が表示されたら、それを長押しして、

タスク スケジューラを使用して Web サイトを開く方法 タスク スケジューラを使用して Web サイトを開く方法 Oct 02, 2023 pm 11:13 PM

毎日ほぼ同じ時間に同じ Web サイトに頻繁にアクセスしますか?これにより、日常のタスクを実行する際に、複数のブラウザー タブを開いたまま長時間を費やし、ブラウザーが乱雑になる可能性があります。では、ブラウザを手動で起動せずに開いてみてはどうでしょうか?以下に示すように、これは非常にシンプルで、サードパーティのアプリをダウンロードする必要はありません。 Web サイトを開くためにタスク スケジューラを設定するにはどうすればよいですか?キーを押し、検索ボックスに「タスク スケジューラ」と入力し、[開く] をクリックします。 Windows 右側のサイドバーで、「基本タスクの作成」オプションをクリックします。 「名前」フィールドに、開きたい Web サイトの名前を入力し、「次へ」をクリックします。次に、「トリガー」で「時間頻度」をクリックし、「次へ」をクリックします。イベントを繰り返す時間を選択し、「次へ」をクリックします。有効を選択します

iPhoneのカメラとマイクへのアクセスを許可できません iPhoneのカメラとマイクへのアクセスを許可できません Apr 23, 2024 am 11:13 AM

アプリを使用しようとすると、「カメラとマイクへのアクセスを許可できません」というメッセージが表示されますか?通常、カメラとマイクのアクセス許可は、必要に応じて特定の人に付与します。ただし、許可を拒否すると、カメラとマイクは機能しなくなり、代わりにこのエラー メッセージが表示されます。この問題の解決は非常に基本的なもので、1 ~ 2 分で解決できます。解決策 1 – カメラ、マイクの権限を提供する 必要なカメラとマイクの権限を設定で直接提供できます。ステップ 1 – [設定] タブに移動します。ステップ 2 – [プライバシーとセキュリティ] パネルを開きます。ステップ 3 – そこで「カメラ」権限をオンにします。ステップ 4 – 内部には、携帯電話のカメラの許可を要求したアプリのリストが表示されます。ステップ5 – 指定したアプリの「カメラ」を開きます

iOS 17: メッセージ内で iMessage アプリを整理する方法 iOS 17: メッセージ内で iMessage アプリを整理する方法 Sep 18, 2023 pm 05:25 PM

iOS 17 では、Apple はいくつかの新しいメッセージング機能を追加しただけでなく、メッセージ アプリのデザインを微調整して見た目をすっきりさせました。キーボードの上、テキスト入力フィールドの左側にある「+」ボタンをタップすることで、カメラや写真のオプションなど、すべての iMessage アプリとツールにアクセスできるようになりました。 「+」ボタンをクリックすると、デフォルトのオプション順序が記載されたメニュー列が表示されます。上から順に、カメラ、写真、ステッカー、現金 (利用可能な場合)、オーディオ、位置情報があります。一番下には「その他」ボタンがあり、これをタップすると、インストールされている他のメッセージング アプリが表示されます (上にスワイプして、この非表示のリストを表示することもできます)。 iMessage アプリを再編成する方法 以下で実行できます

See all articles