MCP (MultiCore Parser)を使ってみる

http://www.scutum.jp/information/waf_tech_blog/2013/02/waf-blog-019.html
https://github.com/Kanatoko/MCP


↑の、Javaを用いて手軽にマルチコアを生かしたデータ処理を可能にするためのフレームワーク MCP (Multi Core Parser)というものを見つけたので使ってみました。

何かのデータ、特にログなどをHadoopで処理する前にそもそもマルチコアで処理したいなと思いました。意外と一つのファイルをマルチコアで処理するのは難しく、うまく出来ませんでした。シングルコアでの処理なら簡単なんですが、8コアマシンで1コアだけ使って待っているってアホらしいですね。一方でHadoopを持ち出すのも大仰ですし。。。

まずは使い方です。私はJavaに疎いのではじめから書きます。

# まず例として、以下の様なファイルを作ります。
# parseというメソッドに、テキストの一行一行が入るようです。
$ vi UpperCase.java
$ cat UpperCase.java 
public class UpperCase
implements net.jumperz.io.multicore.MParser
{
	//--------------------------------------------------------------------------------
	public String parse( String s )
	{
		return s.toUpperCase();
	}
	//--------------------------------------------------------------------------------
}

# mcp.jar をダウンロードします
$ wget http://www.jumperz.net/tools/mcp.jar

# コンパイルします
$ javac -cp mcp.jar UpperCase.java

# 使ってみます
$ echo -e 'foo\nbar\nbaz' | java -cp mcp.jar net.jumperz.app.MCP.MCP UpperCase
FOO
BAR
BAZ

というわけで無事に動かせました。次は集計などをやってみたいと思います。

Bookmark the permalink.

Comments are closed.