これまでHBaseにストアしていたが、HBaseは構成要素(プロセス)が多くてちょっと苦手なのでCassandraにしてみようと思い立つ。
- さくらVPS
- CentOS 6.2
- OpenJDK 1.6.0_24
- Ant 1.7.1
- Apache Nutch 2.1
- Apache Cassandra 1.2
- Cassandraのバイナリパッケージ取得
- 展開(ここでは/opt)
-
# cd /opt # tar xvf apache-cassandra-1.2.0-bin.tar.gz # cd apache-cassandra-1.2.0
- Cassandra実行 実はノードが1台なので、設定変更はクラスタ名の変更のみ。
- Nutchのソースパッケージ取得 ※現時点で公式リンクにはソースのみ。
- 展開(同様に/opt)
- 設定(Gora関連)
- コンパイル
- 設定(Nutch関連)
- クローリング 以下のコマンドで実行。
- 結果参照 cassandra-cliで確認してみる。
apache-cassandra-1.2.0-bin.tar.gz
(複数台の場合は、他サイト参考)
cassandra.yaml
cluster_name: 'Cassandra Cluster'
実行する。
# ./bin/cassandara
クライアントで接続確認。
# ./bin/cassandra-cli Connected to: "Cassandra Cluster" on 127.0.0.1/9160 Welcome to Cassandra CLI version 1.2.0 Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit. [default@unknown] [default@unknown] show cluster name; Cassandra Clusterとりあえず接続できているようなので、正常に起動している模様。
apache-nutch-2.1-src.tar.gz
# cd /opt # ls apache-nutch-2.1-src.tar.gz # tar xvf apache-nutch-2.1-src.tar.gz # cd apache-nutch-2.1
以下それぞれ追記。
conf/nutch-site.xml(<configuration>タグ内)
<property> <name>storage.data.store.class</name> <value>org.apache.gora.cassandra.store.CassandraStore</value> </property>
conf/gora.properties
gora.datastore.default=org.apache.gora.cassandra.store.CassandraStore gora.cassandrastore.servers=localhost:9160
ivy/ivy.xml
<dependency org="org.apache.gora" name="gora-cassandra" rev="0.2" conf="*->default" />
antでコンパイル。
# ant <省略>
confディレクトリにあるnutch-default.xmlの「http.agent.name」プロパティの値に適当な文字列を記述する。
conf/nutch-default.xml
<property> <name>http.agent.name</name> <value>My Nutch Spider</value> </property>
クローリングの始点となるサイトを記述したテキストファイルを任意のディレクトリに作成。
以下の例では、インストールディレクトリ配下に作成した「urls」ディレクトリに作成。
例)
# mkdir urlsurls/seed.txt
http://nutch.apache.org/正規表現でクローリング対象サイトを指定する。
ファイル「conf/regex-urlfilter.txt」を以下の通り、最下行コメントアウト+追記する。
conf/regex-urlfilter.txt
#+. +^http://([a-z0-9]*\.)*nutch.apache.org
# nutch crawl urls -dir crawl -depth 3 -topN 20
# cassandra-cli Connected to: "Cassandra Cluster" on 127.0.0.1/9160 Welcome to Cassandra CLI version 1.2.0 Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit. [default@unknown] use webpage; Authenticated to keyspace: webpageカラムファミリ「f」を全件参照。
[default@webpage] list f limit 1000; <省略> => (column=ts, value=1358554167986, timestamp=1358554170426001) ------------------- RowKey: 6f72672e6170616368652e6e757463683a687474702f617069646f63732d322e312f6f72672f6170616368652f6e757463682f70726f746f636f6c2f687474702f6170692f426c6f636b6564457863657074696f6e2e68746d6c => (column=fi, value=2592000, timestamp=1358554170550001) => (column=s, value=1.3605226E-4, timestamp=1358554170551000) => (column=st, value=1, timestamp=1358554170549002) => (column=ts, value=1358554167993, timestamp=1358554170550000) 739 Rows Returned. Elapsed time: 1349 msec(s).カラムファミリ「p」を全件参照。
[default@webpage] list p limit 1000; <省略> Parse Plugins org.apache.nutch.parse.headings Indexing Filter Plugins org.apache.nutch.indexer.anchor An indexing plugin for inbound anchor text. org.apache.nutch.indexer.basic A basic indexing plugin. org.apache.nutch.indexer.feed org.apache.nutch.indexer.metadata org.apache.nutch.indexer.staticfield A simple plugin called at indexing that adds fields with static data. org.apache.nutch.indexer.subcollection org.apache.nutch.indexer.tld Top Level Domain Indexing plugin. org.apache.nutch.indexer.urlmeta URL Meta Tag Indexing Plugin Misc. Plugins org.apache.nutch.analysis.lang Text document language identifier. org.apache.nutch.collection Subcollection is a subset of an index. org.creativecommons.nutch Sample plugins that parse and index Creative Commons medadata. Apache Nutch is an open source web-search software project. Nutch is a project of the Apache Software Foundation and is part of the larger Apache community of developers and users. Overview Package Class Use Tree Deprecated Index Help PREV NEXT FRAMES NO FRAMES All Classes Copyright © 2012 The Apache Software Foundation, timestamp=1358554162452000) => (column=sig, value=o�>SA-����=�Hɏ, timestamp=1358554162451000) => (column=t, value=Overview (apache-nutch 1.6 API), timestamp=1358554162451001) 21 Rows Returned. Elapsed time: 18 msec(s).ちゃんとデータはストアされている模様。
0 件のコメント:
コメントを投稿