帳モメのotanuft

Stay hungry, stay foolish.

大規模分散処理系プロダクトなどのまとめ

大規模分散処理系プロダクト、フレームワーク、サービス等はHadoopを軸としてあまりに多岐に渡るのでざっくり羅列。

Hadoopファミリー

Apache HBase http://hbase.apache.org

Apache MapReduce http://hadoop.apache.org/mapreduce

Apache Pig http://pig.apache.org

Hadoop LZO http://github.com/toddlipcon/hadoop-lzo

Apache Hive http://hadoop.apache.org/hive

Apache HDFS http://hadoop.apache.org/hdfs

Apache Zookeeper http://hadoop.apache.org/zookeeper

- 分散サーバ管理

Hue http://github.com/cloudera/hue

- Hadoopコンソール

Oozie https://github.com/yahoo/oozie

- Hadoop ワークフロー

Sqoop http://github.com/cloudera/sqoop

- データ移行ツール

Impala https://github.com/cloudera/impala

- Hive互換

MapReduce

Cascading http://www.cascading.org/

- Hadoop MapReduceを抽象化

Scalding https://blog.twitter.com/2012/scalding

- CascadingをScalaから使う

■ 分散処理

Apache Kafka http://kafka.apache.org/

Apache Spark https://spark.incubator.apache.org/

Presto http://prestodb.io/

Storm https://github.com/apache/incubator-storm

Spark http://spark.apache.org/

Hadoopソリューション

Pivotal HD http://www.gopivotal.com/big-data/pivotal-hd

MAPR http://www.mapr.com/

Amazon Elastic MapReduce http://aws.amazon.com/jp/elasticmapreduce/

■ 大規模データソリューション

Treasure Data http://www.treasuredata.com/jp/

RedShift https://aws.amazon.com/jp/redshift/

FlyData https://www.flydata.com/ja/

Hortonworks http://hortonworks.com/

■ データ構造

Parquet http://parquet.io/

- HDFS上にカラム型データストレージを作成する

- 紹介記事

http://www.publickey1.jp/blog/13/hadoopparquettwitter.html

■ 通信周り

Thrift http://thrift.apache.org/

- 各種言語間RPC

ymsr先生が逝った

そっと、亡くなったって。いわれた。 何のことかさっぱりわからなかった。 思わず電話かけてみた。 でない。 最初、どうせ壮大な悪ふざけだろうなぁと思ってたけど、そうじゃなかったのか。 そいや、初めて会ったのっていつだっけなと。 前職の案件で山城くんが関係していて、今度移籍して一緒に働くことになるってのを聞いたのが最初かなぁ。 入社してからは、一緒にモンハンばかりやってた気がする。 あとは、お金借りて飲みに行ったりとかしてたなぁ。 その後、なんだか、いろいろあって、別々の会社になってしまった。 露木さんも書いてたけど、うちの子もymsr先生によく遊んでもらった。 なぜか、ヨシオリさんと、他の人は「さん」づけなのだが、「ヤマシロ」とymsr先生だけは呼び捨てだったりした。 余談だが、レゴ・デュプロの緑のバケツにはいってたパンダに「ヤマシロくん」(のちに犬千代さん)と名づけて大事にしてた。 DSCF3491.JPG DSCF3492.JPG DSCF3493.JPG DSCF3500.JPG まだ、伝えていない。 自分で伝えてやってくれ。 ありがとう。バイバイ。 BBQ

SpringBatchHadoopでPermissionErrorを回避

リモートからSpringBatchを実行すると、ユーザがあわなくてPermissionErrorが起きる。 なので、HDFS上のユーザと合わせる。

<hdp:configuration>
 fs.default.name=hdfs://192.168.0.111:9000
</hdp:configuration>
<hdp:file-system user="hdfs" configuration-ref="hadoopConfiguration"/>

hdp:file-systemのuserをHDFS上のユーザに。 これで、script-taskletの暗黙値のfsが怒られない。

Run Run Run

Spring BatchのFlatFileItemReaderでタブ区切りファイルの設定

lineTokenizerをこうする。

<property name="lineTokenizer">
    <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
        <property name="delimiter">
            <util:constant static-field="org.springframework.batch.item.file.transform.DelimitedLineTokenizer.DELIMITER_TAB"/>
        </property>
    </bean>
</property>

utilのネームスペース使うので、

xmlns:util="http://www.springframework.org/schema/util

を忘れずに。

かるがも

リモートからHadoopのJobをキックするとき

Configuration conf =new Configuration();

conf.set(FileSystem.FS_DEFAULT_NAME_KEY, "hdfs://192.168.0.1:8020");

としないと、

java.lang.IllegalArgumentException: Wrong FS: hdfs://192.168.0.1:8020/***, expected: file:///
でエラーになる。

スキーマのチェックをしているようだ。

file:///はローカルで動かすときのデフォルト値、hadoopのjarの中に含まれる、core-default.xmlで設定される。

別の方法では、Configuration作成時に、conf.addResource()で、core.site.xmlを設定して食わす。