Movatterモバイル変換


[0]ホーム

URL:


TM
Uploaded byTaku Miyakawa
1,040 views

Hadoop jobbuilder

Presentation about the Hadoop Job Builder library on Hadoop Conference Japan 2011.

Embed presentation

Downloaded 10 times
Hadoop Job Builder型安全なジョブ設定     2011-02-22  Hadoop Conference   @miyakawa_taku
要旨• Hadoop MapReduce のジョブ設定って面倒です• 中間データ (map の出力 = reduce の入力) の型を  一致させる事がとりわけ面倒です⇒ 簡潔かつ型安全にジョブを設定する Hadoop Job  Builder というライブラリを作りました                2
文書中の単語を数える    word-count ジョブの mapper と reducerpublic class WordCountMapper ①  extends Mapper<LongWritable, Text, Text, IntWritable> {  ...}public class WordCountReducer ②  extends Reducer<Text, IntWritable, Text, IntWritable> {  ...}                             3
中間データの型は一致させる必要がある      map の出力 = reduce の入力public class WordCountMapper          ①        ②  extends Mapper<LongWritable, Text, Text, IntWritable> {  ...}public class WordCountReducer  extends Reducer<Text, IntWritable, Text, IntWritable> {  ...              ③        ④}                             4
word-count のジョブ設定                    こんなに書くJob job = new Job( getConf() );job.setJobName( "word-count" );job.setJarByClass( getClass() );job.setMapperClass( WordCountMapper.class );job.setMapOutputKeyClass( Text.class );job.setMapOutputValueClass( IntWritable.class );job.setReducerClass( WordCountReducer.class );job.setOutputKeyClass( Text.class );job.setOutputValueClass( IntWritable.class );job.setInputFormatClass( TextInputFormat.class );FileInputFormat.addInputPath( job , new Path( "wordcount/in" ) );job.setOutputFormatClass( SequenceFileOutputFormat.class );FileOutputFormat.setOutputPath( job , new Path( "wordcount/out" ) );                                 5
やっかいな中間データの設定Job job = new Job( getConf() );job.setJobName( "word-count" );job.setJarByClass( getClass() );job.setMapperClass( WordCountMapper.class ); ①job.setMapOutputKeyClass( Text.class );           ②job.setMapOutputValueClass( IntWritable.class ); ③job.setReducerClass( WordCountReducer.class ); ④job.setOutputKeyClass( Text.class );job.setOutputValueClass( IntWritable.class );job.setInputFormatClass( TextInputFormat.class );FileInputFormat.addInputPath( job , new Path( "wordcount/in" ) );job.setOutputFormatClass( SequenceFileOutputFormat.class );FileOutputFormat.setOutputPath( job , new Path( "wordcount/out" ) );                                 6
combiner や partitioner を使うと          これらの型も一致させる必要があるJob job = new Job( getConf() );job.setJobName( "word-count" );job.setJarByClass( getClass() );job.setMapperClass( WordCountMapper.class );                ①job.setMapOutputKeyClass( Text.class );                     ②job.setMapOutputValueClass( IntWritable.class );            ③job.setReducerClass( WordCountReducer.class );              ④job.setCombinerClass( WordCountCombiner.class );           ⑤job.setPartitionerClass( WordCountPartitioner.class );     ⑥job.setOutputKeyClass( Text.class );job.setOutputValueClass( IntWritable.class );job.setInputFormatClass( TextInputFormat.class );FileInputFormat.addInputPath( job , new Path( "wordcount/in" ) );job.setOutputFormatClass( SequenceFileOutputFormat.class );FileOutputFormat.setOutputPath( job , new Path( "wordcount/out" ) );                                        7
ちょっとしたパフォーマンスチューニングでpublic class WordCountMapper                   ①  extends Mapper<LongWritable, Text, Text, IntWritable> {  ...}public class WordCountReducer  extends Reducer<Text, IntWritable, Text, IntWritable> {  ...                       ②}                             8
型が一致しなくなるとpublic class WordCountMapper                   ①  extends Mapper<LongWritable, Text, Text, IntWritable> {  ...}public class WordCountReducer  extends Reducer<Text, VIntWritable, Text, VIntWritable> {  ...                       ②}                            9
コンパイルは通って             タスクの処理中に実行時エラー11/02/20 03:07:21 INFO mapred.JobClient: Task Id :attempt_201102200304_0001_r_000000_2, Status : FAILEDjava.lang.ClassCastException: org.apache.hadoop.io.IntWritable cannot be cast toorg.apache.hadoop.io.VIntWritable  at org.example.WordCountReducer.reduce(WordCountReducer.java:76)  at org.example.WordCountReducer.reduce(WordCountReducer.java:67)  at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:176)  at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:566)  at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:408)  at org.apache.hadoop.mapred.Child.main(Child.java:170)                                       10
MapReduce API は気が利かない• map, reduce のクラス定義に型情報が含まれてい  るのに、別途わざわざ型を指定するのは冗長• 型が一致していなかったらコンパイル時にエラーが  出てほしい⇒ 簡潔かつ型安全にジョブを設定したい              11
簡潔かつ型安全にジョブが設定できる        ライブラリを作りましたJob job = JobBuilder.of(    new WordCountMapper() , new WordCountReducer() )  .jobName( "word-count" )  .detectJar()  .detectKeyValue()  .inputTextFrom( "wordcount/in" )  .outputSequenceFileOn( "wordcount/out" )  .buildJob( getConf() );                         12
中間データの型をクラス定義から推論して設定      ⇒ 型が省略できるJob job = JobBuilder.of(                         ①                ②    new WordCountMapper() , new WordCountReducer() )  .jobName( "word-count" )  .detectJar()  .detectKeyValue() ③  .inputTextFrom( "wordcount/in" )  .outputSequenceFileOn( "wordcount/out" )  .buildJob( getConf() );                        13
型が一致しないとコンパイルエラー           ⇒ 型安全Job job = JobBuilder.of(                         ①                ②    new WordCountMapper() , new WordCountReducer() )  .jobName( "word-count" )  .detectJar()  .detectKeyValue()  .inputTextFrom( "wordcount/in" )  .outputSequenceFileOn( "wordcount/out" )  .buildJob( getConf() );                        14
combiner や partitioner も型安全に設定Job job = JobBuilder.of(                         ①                  ②    new WordCountMapper() , new WordCountReducer() )  .jobName( "word-count" )  .detectJar()  .detectKeyValue()                   ③  .combiner( new WordCountCombiner() ) ④  .partitioner( new WordCountPartitioner() )  .inputTextFrom( "wordcount/in" )  .outputSequenceFileOn( "wordcount/out" )  .buildJob( getConf() );                        15
他にも便利  16
出力データの型をクラス定義から推論して設定Job job = JobBuilder.of(    new WordCountMapper() , new WordCountReducer() )  .jobName( "word-count" )  .detectJar()  .detectKeyValue()  .inputTextFrom( "wordcount/in" )  .outputSequenceFileOn( "wordcount/out" )  .buildJob( getConf() );                         17
入力元・出力先を簡潔に設定Job job = JobBuilder.of(    new WordCountMapper() , new WordCountReducer() )  .jobName( "word-count" )  .detectJar()  .detectKeyValue()  .inputTextFrom( "wordcount/in" )  .outputSequenceFileOn( "wordcount/out" )  .buildJob( getConf() );                         18
分散キャッシュを簡潔に設定Job job = JobBuilder.of(    new WordCountMapper() , new WordCountReducer() )  .jobName( "word-count" )  .detectJar()  .detectKeyValue()  .inputTextFrom( "wordcount/in" )  .outputSequenceFileOn( "wordcount/out" )  .cacheFileWithSymlink( "/share/dict.txt" , "dict.txt" )  .buildJob( getConf() );                           19
総括• Hadoop Job Builder は簡潔かつ型安全に Hadoop  のジョブを設定するライブラリです• BitBucket に公開しています  – https://bitbucket.org/miyakawa_taku/hadoop-job-    builder/wiki/Home.ja• 感想ください  ⇒ @miyakawa_taku  ⇒ BitBucket の issue tracker                          20

Recommended

PPTX
BPStudy32 CouchDB 再入門
KEY
はじめてのCouch db
PDF
FxUG in Toyama - ASphalt2 container -
PDF
20150530 pgunconf-pgbench-semi-structured-benchmark
PDF
Rakuten tech conf
PDF
Cloud computing competition by Hapyrus
PDF
MyNA JPUG study 20160220-postgresql-json-datatype
PPTX
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
PPTX
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
PPTX
Ruby on Rails on MySQL チューニング入門
PPTX
PandasとSQLとの比較
KEY
Wb osaka 20120623
PDF
PerlとSQLのいろいろ
PDF
Perl 6 Object-Oliented Programming
 
PDF
[東京] JapanSharePointGroup 勉強会 #2
PDF
PPT
Algorithm 速いアルゴリズムを書くための基礎
PDF
RailsエンジニアのためのSQLチューニング速習会
PPTX
僕の鮮やかなるScala導入失敗事例
PDF
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
PPTX
HTMLの要素の選び方
PDF
Apache Torqueについて
PDF
D3.jsによるDOM操作
PDF
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
PPT
Gaej Jdo
PDF
Spring Data in a Nutshell
PDF
jQuery超入門編
PDF
Kink: invokedynamic on a prototype-based language
PDF
擬似乱数生成器の評価
PDF
Kink の宣伝

More Related Content

PPTX
BPStudy32 CouchDB 再入門
KEY
はじめてのCouch db
PDF
FxUG in Toyama - ASphalt2 container -
PDF
20150530 pgunconf-pgbench-semi-structured-benchmark
PDF
Rakuten tech conf
PDF
Cloud computing competition by Hapyrus
PDF
MyNA JPUG study 20160220-postgresql-json-datatype
PPTX
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
BPStudy32 CouchDB 再入門
はじめてのCouch db
FxUG in Toyama - ASphalt2 container -
20150530 pgunconf-pgbench-semi-structured-benchmark
Rakuten tech conf
Cloud computing competition by Hapyrus
MyNA JPUG study 20160220-postgresql-json-datatype
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト

What's hot

PPTX
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
PPTX
Ruby on Rails on MySQL チューニング入門
PPTX
PandasとSQLとの比較
KEY
Wb osaka 20120623
PDF
PerlとSQLのいろいろ
PDF
Perl 6 Object-Oliented Programming
 
PDF
[東京] JapanSharePointGroup 勉強会 #2
PDF
PPT
Algorithm 速いアルゴリズムを書くための基礎
PDF
RailsエンジニアのためのSQLチューニング速習会
PPTX
僕の鮮やかなるScala導入失敗事例
PDF
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
PPTX
HTMLの要素の選び方
PDF
Apache Torqueについて
PDF
D3.jsによるDOM操作
PDF
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
PPT
Gaej Jdo
PDF
Spring Data in a Nutshell
PDF
jQuery超入門編
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
Ruby on Rails on MySQL チューニング入門
PandasとSQLとの比較
Wb osaka 20120623
PerlとSQLのいろいろ
Perl 6 Object-Oliented Programming
 
[東京] JapanSharePointGroup 勉強会 #2
Algorithm 速いアルゴリズムを書くための基礎
RailsエンジニアのためのSQLチューニング速習会
僕の鮮やかなるScala導入失敗事例
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
HTMLの要素の選び方
Apache Torqueについて
D3.jsによるDOM操作
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
Gaej Jdo
Spring Data in a Nutshell
jQuery超入門編

Viewers also liked

PDF
Kink: invokedynamic on a prototype-based language
PDF
擬似乱数生成器の評価
PDF
Kink の宣伝
PDF
Summary of "Hacking", 0x351-0x354
PDF
Kink: プロトタイプベースの俺々 JVM 言語
PDF
Matrix Multiplication in Strassen Algorithm
PDF
コルーチンの実装について
PDF
金勘定のためのBigDecimalそしてMoney and Currency API
PDF
Quasar: Actor Model and Light Weight Threads on Java
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
PDF
Javaのログ出力: 道具と考え方
PDF
Prepare for Java 9 #jjug
PDF
楽して JVM を学びたい #jjug
PDF
Graph Algorithms Part 1
PDF
言語設計者が意味論を書くときに考えていたこと
PDF
Java SE 9の紹介: モジュール・システムを中心に
Kink: invokedynamic on a prototype-based language
擬似乱数生成器の評価
Kink の宣伝
Summary of "Hacking", 0x351-0x354
Kink: プロトタイプベースの俺々 JVM 言語
Matrix Multiplication in Strassen Algorithm
コルーチンの実装について
金勘定のためのBigDecimalそしてMoney and Currency API
Quasar: Actor Model and Light Weight Threads on Java
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Javaのログ出力: 道具と考え方
Prepare for Java 9 #jjug
楽して JVM を学びたい #jjug
Graph Algorithms Part 1
言語設計者が意味論を書くときに考えていたこと
Java SE 9の紹介: モジュール・システムを中心に

Similar to Hadoop jobbuilder

PDF
MapReduce入門
PPTX
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
PPT
クラウド時代の並列分散処理技術
PDF
ただいまHadoop勉強中
PDF
OSC2011 Tokyo/Spring Hadoop入門
PPTX
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
PPT
Scala on Hadoop
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
PDF
[豆ナイト]Java small object programming
PDF
Nds#24 単体テスト
PPTX
明日から業務で使うScala
PPTX
今さら聞けないHadoop セントラルソフト株式会社(20120119)
PDF
第三回ありえる社内勉強会 「いわががのLombok」
PDF
Hadoop事始め
PDF
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
PPT
Hadoop輪読会第6章
PDF
分散ストリーム処理フレームワーク Apache S4
PDF
Introduction to Spock
PPT
Asakusa Enterprise Batch Processing Framework for Hadoop
PPTX
Play2 scalaを2年やって学んだこと
MapReduce入門
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
クラウド時代の並列分散処理技術
ただいまHadoop勉強中
OSC2011 Tokyo/Spring Hadoop入門
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Scala on Hadoop
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
[豆ナイト]Java small object programming
Nds#24 単体テスト
明日から業務で使うScala
今さら聞けないHadoop セントラルソフト株式会社(20120119)
第三回ありえる社内勉強会 「いわががのLombok」
Hadoop事始め
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
Hadoop輪読会第6章
分散ストリーム処理フレームワーク Apache S4
Introduction to Spock
Asakusa Enterprise Batch Processing Framework for Hadoop
Play2 scalaを2年やって学んだこと

More from Taku Miyakawa

PDF
ラムダと invokedynamic の蜜月
PDF
Java Quine Golf
PDF
Processing LTSV by Apache Pig
PDF
Java 7 invokedynamic の概要
PDF
Java オブジェクトの内部構造
PDF
Kink: developing a programming language on the JVM
ラムダと invokedynamic の蜜月
Java Quine Golf
Processing LTSV by Apache Pig
Java 7 invokedynamic の概要
Java オブジェクトの内部構造
Kink: developing a programming language on the JVM

Hadoop jobbuilder

  • 1.
    Hadoop Job Builder型安全なジョブ設定 2011-02-22 Hadoop Conference @miyakawa_taku
  • 2.
    要旨• Hadoop MapReduceのジョブ設定って面倒です• 中間データ (map の出力 = reduce の入力) の型を 一致させる事がとりわけ面倒です⇒ 簡潔かつ型安全にジョブを設定する Hadoop Job Builder というライブラリを作りました 2
  • 3.
    文書中の単語を数える word-count ジョブの mapper と reducerpublic class WordCountMapper ① extends Mapper<LongWritable, Text, Text, IntWritable> { ...}public class WordCountReducer ② extends Reducer<Text, IntWritable, Text, IntWritable> { ...} 3
  • 4.
    中間データの型は一致させる必要がある map の出力 = reduce の入力public class WordCountMapper ① ② extends Mapper<LongWritable, Text, Text, IntWritable> { ...}public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> { ... ③ ④} 4
  • 5.
    word-count のジョブ設定 こんなに書くJob job = new Job( getConf() );job.setJobName( "word-count" );job.setJarByClass( getClass() );job.setMapperClass( WordCountMapper.class );job.setMapOutputKeyClass( Text.class );job.setMapOutputValueClass( IntWritable.class );job.setReducerClass( WordCountReducer.class );job.setOutputKeyClass( Text.class );job.setOutputValueClass( IntWritable.class );job.setInputFormatClass( TextInputFormat.class );FileInputFormat.addInputPath( job , new Path( "wordcount/in" ) );job.setOutputFormatClass( SequenceFileOutputFormat.class );FileOutputFormat.setOutputPath( job , new Path( "wordcount/out" ) ); 5
  • 6.
    やっかいな中間データの設定Job job =new Job( getConf() );job.setJobName( "word-count" );job.setJarByClass( getClass() );job.setMapperClass( WordCountMapper.class ); ①job.setMapOutputKeyClass( Text.class ); ②job.setMapOutputValueClass( IntWritable.class ); ③job.setReducerClass( WordCountReducer.class ); ④job.setOutputKeyClass( Text.class );job.setOutputValueClass( IntWritable.class );job.setInputFormatClass( TextInputFormat.class );FileInputFormat.addInputPath( job , new Path( "wordcount/in" ) );job.setOutputFormatClass( SequenceFileOutputFormat.class );FileOutputFormat.setOutputPath( job , new Path( "wordcount/out" ) ); 6
  • 7.
    combiner や partitionerを使うと これらの型も一致させる必要があるJob job = new Job( getConf() );job.setJobName( "word-count" );job.setJarByClass( getClass() );job.setMapperClass( WordCountMapper.class ); ①job.setMapOutputKeyClass( Text.class ); ②job.setMapOutputValueClass( IntWritable.class ); ③job.setReducerClass( WordCountReducer.class ); ④job.setCombinerClass( WordCountCombiner.class ); ⑤job.setPartitionerClass( WordCountPartitioner.class ); ⑥job.setOutputKeyClass( Text.class );job.setOutputValueClass( IntWritable.class );job.setInputFormatClass( TextInputFormat.class );FileInputFormat.addInputPath( job , new Path( "wordcount/in" ) );job.setOutputFormatClass( SequenceFileOutputFormat.class );FileOutputFormat.setOutputPath( job , new Path( "wordcount/out" ) ); 7
  • 8.
    ちょっとしたパフォーマンスチューニングでpublic class WordCountMapper ① extends Mapper<LongWritable, Text, Text, IntWritable> { ...}public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> { ... ②} 8
  • 9.
    型が一致しなくなるとpublic class WordCountMapper ① extends Mapper<LongWritable, Text, Text, IntWritable> { ...}public class WordCountReducer extends Reducer<Text, VIntWritable, Text, VIntWritable> { ... ②} 9
  • 10.
    コンパイルは通って タスクの処理中に実行時エラー11/02/20 03:07:21 INFO mapred.JobClient: Task Id :attempt_201102200304_0001_r_000000_2, Status : FAILEDjava.lang.ClassCastException: org.apache.hadoop.io.IntWritable cannot be cast toorg.apache.hadoop.io.VIntWritable at org.example.WordCountReducer.reduce(WordCountReducer.java:76) at org.example.WordCountReducer.reduce(WordCountReducer.java:67) at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:176) at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:566) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:408) at org.apache.hadoop.mapred.Child.main(Child.java:170) 10
  • 11.
    MapReduce API は気が利かない•map, reduce のクラス定義に型情報が含まれてい るのに、別途わざわざ型を指定するのは冗長• 型が一致していなかったらコンパイル時にエラーが 出てほしい⇒ 簡潔かつ型安全にジョブを設定したい 11
  • 12.
    簡潔かつ型安全にジョブが設定できる ライブラリを作りましたJob job = JobBuilder.of( new WordCountMapper() , new WordCountReducer() ) .jobName( "word-count" ) .detectJar() .detectKeyValue() .inputTextFrom( "wordcount/in" ) .outputSequenceFileOn( "wordcount/out" ) .buildJob( getConf() ); 12
  • 13.
    中間データの型をクラス定義から推論して設定 ⇒ 型が省略できるJob job = JobBuilder.of( ① ② new WordCountMapper() , new WordCountReducer() ) .jobName( "word-count" ) .detectJar() .detectKeyValue() ③ .inputTextFrom( "wordcount/in" ) .outputSequenceFileOn( "wordcount/out" ) .buildJob( getConf() ); 13
  • 14.
    型が一致しないとコンパイルエラー ⇒ 型安全Job job = JobBuilder.of( ① ② new WordCountMapper() , new WordCountReducer() ) .jobName( "word-count" ) .detectJar() .detectKeyValue() .inputTextFrom( "wordcount/in" ) .outputSequenceFileOn( "wordcount/out" ) .buildJob( getConf() ); 14
  • 15.
    combiner や partitionerも型安全に設定Job job = JobBuilder.of( ① ② new WordCountMapper() , new WordCountReducer() ) .jobName( "word-count" ) .detectJar() .detectKeyValue() ③ .combiner( new WordCountCombiner() ) ④ .partitioner( new WordCountPartitioner() ) .inputTextFrom( "wordcount/in" ) .outputSequenceFileOn( "wordcount/out" ) .buildJob( getConf() ); 15
  • 16.
  • 17.
    出力データの型をクラス定義から推論して設定Job job =JobBuilder.of( new WordCountMapper() , new WordCountReducer() ) .jobName( "word-count" ) .detectJar() .detectKeyValue() .inputTextFrom( "wordcount/in" ) .outputSequenceFileOn( "wordcount/out" ) .buildJob( getConf() ); 17
  • 18.
    入力元・出力先を簡潔に設定Job job =JobBuilder.of( new WordCountMapper() , new WordCountReducer() ) .jobName( "word-count" ) .detectJar() .detectKeyValue() .inputTextFrom( "wordcount/in" ) .outputSequenceFileOn( "wordcount/out" ) .buildJob( getConf() ); 18
  • 19.
    分散キャッシュを簡潔に設定Job job =JobBuilder.of( new WordCountMapper() , new WordCountReducer() ) .jobName( "word-count" ) .detectJar() .detectKeyValue() .inputTextFrom( "wordcount/in" ) .outputSequenceFileOn( "wordcount/out" ) .cacheFileWithSymlink( "/share/dict.txt" , "dict.txt" ) .buildJob( getConf() ); 19
  • 20.
    総括• Hadoop JobBuilder は簡潔かつ型安全に Hadoop のジョブを設定するライブラリです• BitBucket に公開しています – https://bitbucket.org/miyakawa_taku/hadoop-job- builder/wiki/Home.ja• 感想ください ⇒ @miyakawa_taku ⇒ BitBucket の issue tracker 20

[8]ページ先頭

©2009-2025 Movatter.jp