2010年05月06日09:21 Hadoop Hadoop Streaming で外部ファイルを扱う方法のまとめ Hadoop Streaming での外部ファイルの扱いもだいぶ固まってきました。発表資料のスライドではこの辺の話を書いたことがあるんですが、ブログには書いてなかったので一度きっちりまとめておこうかなーっと。というわけで今回は Hadoop Streaming での外部ファイルの読み込みについてまとめますよ!(*゚Д゚)=3 ムハー そもそも外部ファイルの読み込みと言っても、この二つのパターンがあります。 1) 外部ファイルが master 上にある(つまりローカルディスクにある)場合 2) 外部ファイルが別ファイルシステム(S3 だったり HDFS だったり)にある場合 外部ファイルが master 上にある場合 まず、この場合はとても簡単です。例えば hoge.txt と
ちょっと元データの件数が大量にある処理をしたいという要件があって、普通に逐次処理していくと恐ろしく時間が掛かるので、「こんな時こそHadoop!」って事で、久々にHadoopをいじくっていました。 ただ、自宅サーバでやろうとすると、いくら分散処理できるとは言っても結局処理するのは物理的には1台な訳で、メモリを使い切ってスワップしまくってウンともスンとも言わなくなってしまうという、とっても悲しい状況になってしまいました。 「そんな時はAmazon先生にお願い!」って事で、Amazon Elastic MapReduceを試していたんですが、ちょっとハマってしまったところがあったので、備忘録がてら記事にしようかと思います。 Mapper/Reducer以外のファイルが使えない! 以前にAmazon Elastic MapReduceを試した時は、MapperとReducerが1ファイルだけの簡
Error message : Directory is not found or not writable (DATA_DIR) Directory is not found or not writable (DIFF_DIR) Directory is not found or not writable (BACKUP_DIR) Directory is not found or not writable (CACHE_DIR) Site admin: whitestar Copyright © 2006-2023 whitestar. All Rights Reserved. Icons powered by famfamfam. PukiWiki 1.5.0 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL
HiveでのSQLことHQLの小ネタ。HQLでは基本的にSQLはほぼ完璧に利用できますが、たまにハマりポイントもあります。その1つが並び替えのORDER BY。 ORDER BYとSORT BY HQLの文法的にORDER BYは有効ですが、実際は並び替えは行われません。(無視されているような感じ)Hiveでは代わりに「SORT BY [column]」を利用することになります。 ただし、ここでも罠があって、SORT BYは結果がreducerの数に依存します。(各reducerがsort処理をしたものがマージされるものになるので、全体としてはおかしな結果を得ることになります) 通常、reducerは複数走っているはずなので、結局SORT BYを利用してもORDER BYと同等の結果を得ることができません。 では、どうするか?と言うと明示的にreducerの数を1に指定してからSORT B
前回、紹介したHiveについての続き。 Hiveは内部で扱うメタデータを「metastore」というデータで保持しています。テーブルやパーティションなどの情報、またレコードが実際に保持されてある場所などのメタデータは全部このmetastoreにまとまっています。このmetastoreは、次の3種類の方法で保存することができます。 Embeded metastore Local Metastore Remote Metastore Embeded metastore Embeded metastoreは主にテスト用途に利用されます。テスト用途なので、単一プロセスからの接続しか許可されていません。 そのため、コンソールを複数起動して、それぞれのコンソールから別のMap&Reduceを走らせる…なんてことができません。ただし、Hiveは初期設定がこのEmbededモードになっているので、特に設定
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、 前回のHadoopの記事 に引き続き、MapReduceのカスタマイズポイントを解説していきます。 前回の記事の図や、表などを参照しながら読み進めていただければと思います。 MapperやReducerの流れの制御 Mapperの実行の流れは、デフォルトでは、初期化処理を行った後、map関数を繰り返し実行し、終了処理を行うようになっていますが、この流れ自体を制御することができます。 古いAPIでは、MapRunnerを通じてこの流れを制御できますが、0.20.0からの新しいAPIでは単純にMapperクラスのrun関数をオーバーライドすることで、行えます。 デフォルトのrun関数は以下の通りです。 public vo
まず、 1 の入力ファイルを分割する方法は、InputFormatクラスの、getSplits関数を上書きすることで、カスタマイズできます。 また、 3 のInputSplitから、KeyとValueを抽出する処理も、InputFormatクラスを通じてカスタマイズできます。 InputFormatのgetRecordReader関数を通じて、RecordReaderクラスを生成するのですが、これに任意のRecordReaderクラスを指定すればOKです。 2 のMap処理ですが、ユーザが指定したMapperクラスの処理を実行します。 Mapperクラスは、MapRunnerクラスを通じて、初期化処理、map関数を繰り返す過程、終了処理といった一連の流れを実行します。 MapRunnerクラスをカスタマイズすれば、こうした流れを制御することができます。 0.20.0からの新しいMapRed
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く