2016年6月16日木曜日

Mavenコマンド

Mavenには色々なコマンドがあります。

例えば、依存関係を表示するには

$ mvn dependency:tree

クラスパスを表示するには

$ mvn dependency:build-classpath

その他にも色々あります。
覚えておくと便利かもしれません。

参考:https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html

2016年5月25日水曜日

MapReduce applicationのHadoop 1.xから2.xへの移行について

MapReduce applicationのHadoop 1.xから2.xへの移行については、互換性が保証されています。

packageが"org.apache.hadoop.mapred"のもののみ使用している場合は、そのまま使用できます。

"org.apache.hadoop.mapreduce"を使用している場合は、recompileが必要です。
recompileせずに実行すると、下記のエラーが発生します。

java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected

参考:
http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduce_Compatibility_Hadoop1_Hadoop2.html

補足:

Mavenを使っている場合は、pom.xmlに下記の修正が必要です。

[修正前]
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <scope>provided</scope>
    </dependency>

[修正後]
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.7.2</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>2.7.2</version>
        <scope>provided</scope>
    </dependency>

※hadoop-commonは、org.apache.hadoop.conf, fs, io, util, securityのAPIを
使うのに必要
※hadoop-mapreduce-client-coreは、org.apache.hadoop.mapreduce, mapredの
APIを使うのに必要

2016年4月17日日曜日

Android StudioでLibrary作成

どうやら、Project作成時にはLibraryの作成は出来ないようです。
そのため、通常通りアプリケーションを作成します。
アプリ作成後、[File]→[New]→[New Module]でAndroid Libraryを選択



Actibityは作成しないを選択


Projectのappと同じレベルに追加したModuleが作成されます。


フォルダ内の構成はアプリとほぼ同じです。
※表示系のファイル(res/layout)が無い位です。