昔のIT
だらだらと年数だけ重ねてしまったのだけど、だいぶ昔のIT関係の状況の話を聞きたがる若い子がたくさんいるようなので、 まだ記憶があるうちにちょっとずつまとめていこうと思う。
大規模分散処理系プロダクトなどのまとめ
大規模分散処理系プロダクト、フレームワーク、サービス等は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互換
Cascading http://www.cascading.org/
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先生が逝った
OS X 10.9.1 FileMerge.appのありか
/Applications/Xcode.app/Contents/Applications/FileMerge.app
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が怒られない。

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を設定して食わす。
