以下スキーマで(Solrのexamplesにある)books.csvをHIVEに取り込むことができる。
create table books (
id STRING,
cat STRING,
name STRING,
price DOUBLE,
inStock BOOLEAN,
author_t STRING,
series_t STRING,
sequence INT,
genre_s STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
取りこむのは以下コマンド。
LOAD DATA INPATH '/tmp/books.csv' overwrite into table books ;
火曜日, 11月 24, 2009
月曜日, 11月 09, 2009
[HIVE] 日本語が。。。
jdkのエンコードのせいだと思うのだけど(コマンドラインでUTF8は見えるから)、HIVEのコンソールでは日本語が使えない。直接cygwinのコマンドラインでなら使えるので、まぁいいのだけど。
$ /cygdrive/d/work/apache-hive/build/dist/bin/hive -hiveconf hadoop.bin.path="bash /cygdrive/d/work/apache-hadoop-0.19.2/bin/hadoop" -e "FROM zip z insert overwrite directory '/tmp/gina3' SELECT z.zip, z.pref, z.city, z.town WHERE z.ver = '2008-12-26' AND z.town REGEXP '銀座';"
@ITの記事を参考に練習中。。
$ /cygdrive/d/work/apache-hive/build/dist/bin/hive -hiveconf hadoop.bin.path="bash /cygdrive/d/work/apache-hadoop-0.19.2/bin/hadoop" -e "FROM zip z insert overwrite directory '/tmp/gina3' SELECT z.zip, z.pref, z.city, z.town WHERE z.ver = '2008-12-26' AND z.town REGEXP '銀座';"
@ITの記事を参考に練習中。。
日曜日, 11月 08, 2009
[HIVE] HIVE上からHDFS操作
HIVE上からファイルを見るには。
hive> dfs -ls /tmp;
Found 10 items
drwxr-xr-x - 00962724 mkgroup 0 2009-11-24 02:27 /tmp/00962724
drwxr-xr-x - 00962724 mkgroup 0 2009-11-03 03:24 /tmp/cy
-rw-r--r-- 1 00962724 mkgroup 2740 2009-11-23 23:44 /tmp/FirstTest.jar
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 01:21 /tmp/gina3
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 01:13 /tmp/ginza
drwxr-xr-x - 00962724 mkgroup 0 2009-11-24 02:25 /tmp/hadoop-00962724
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 01:21 /tmp/hive-00962724
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 00:16 /tmp/localfiles
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 01:08 /tmp/prefff.dat
-rw-r--r-- 1 00962724 mkgroup 6687150 2009-11-22 21:54 /tmp/sample.war
hive>
hive> dfs -ls /tmp;
Found 10 items
drwxr-xr-x - 00962724 mkgroup 0 2009-11-24 02:27 /tmp/00962724
drwxr-xr-x - 00962724 mkgroup 0 2009-11-03 03:24 /tmp/cy
-rw-r--r-- 1 00962724 mkgroup 2740 2009-11-23 23:44 /tmp/FirstTest.jar
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 01:21 /tmp/gina3
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 01:13 /tmp/ginza
drwxr-xr-x - 00962724 mkgroup 0 2009-11-24 02:25 /tmp/hadoop-00962724
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 01:21 /tmp/hive-00962724
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 00:16 /tmp/localfiles
drwxr-xr-x - 00962724 mkgroup 0 2009-11-09 01:08 /tmp/prefff.dat
-rw-r--r-- 1 00962724 mkgroup 6687150 2009-11-22 21:54 /tmp/sample.war
hive>
土曜日, 11月 07, 2009
[HIVE] HQLの関数を確認
意外に説明が充実してる。
hive> DESCRIBE FUNCTION EXTENDED substr;
OK
substr(str, pos[, len]) - returns the substring of str that starts at pos and is
of length len
pos is a 1-based index. If pos<0 the starting position is determined by counting
backwards from the end of str.
Example:
> SELECT substr('Facebook', 5) FROM src LIMIT 1;
'book'
> SELECT substr('Facebook', -5) FROM src LIMIT 1;
'ebook'
> SELECT substr('Facebook', 5, 1) FROM src LIMIT 1;
'b'
Time taken: 0.156 seconds
hive>
hive> DESCRIBE FUNCTION EXTENDED substr;
OK
substr(str, pos[, len]) - returns the substring of str that starts at pos and is
of length len
pos is a 1-based index. If pos<0 the starting position is determined by counting
backwards from the end of str.
Example:
> SELECT substr('Facebook', 5) FROM src LIMIT 1;
'book'
> SELECT substr('Facebook', -5) FROM src LIMIT 1;
'ebook'
> SELECT substr('Facebook', 5, 1) FROM src LIMIT 1;
'b'
Time taken: 0.156 seconds
hive>
金曜日, 11月 06, 2009
[HIVE] select出来た!
cygwinだと、HIVEからhadoopを呼び出すところで失敗する。なのでこのためにはhiveconfオプションにて、hadoopのまるママの実行文を書いておくべし。
00962724@XXX /cygdrive/d/work/apache-hive/build/dist/conf
$ /cygdrive/d/work/apache-hive/build/dist/bin/hive -hiveconf hadoop.bin.path="bash /cygdrive/d/work/apache-hadoop-0.19.2/bin/hadoop" -e "SELECT a.foo FROM invites a WHERE a.ds='2008-08-15';"
また、以下のようなエラーがでるときはmetadataが壊れていた様子。
Job Submission failed with exception 'java.lang.NullPointerException(null)'
"drop table"して(このコマンドも失敗したけど、その後"show tables"してテーブルが無いようなら"create table"してloadすれば、うまく動くようになった!
Hive history file=/tmp/00962724/hive_job_log_00962724_200911060205_2037141967.txt
Total MapReduce jobs = 1
Number of reduce tasks is set to 0 since there's no reduce operator
09/11/06 02:05:32 INFO exec.ExecDriver: Number of reduce tasks is set to 0 since there's no reduce operator
09/11/06 02:05:32 INFO exec.ExecDriver: Using org.apache.hadoop.hive.ql.io.HiveInputFormat
09/11/06 02:05:32 INFO exec.ExecDriver: Processing alias a
09/11/06 02:05:32 INFO exec.ExecDriver: Adding input file file:/user/hive/warehouse/invites/ds=2008-08-15
09/11/06 02:05:34 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
09/11/06 02:05:34 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
09/11/06 02:05:34 INFO mapred.FileInputFormat: Total input paths to process : 1
Job running in-process (local Hadoop)
09/11/06 02:05:35 INFO exec.ExecDriver: Job running in-process (local Hadoop)
09/11/06 02:05:35 INFO mapred.FileInputFormat: Total input paths to process : 1
09/11/06 02:05:35 INFO mapred.MapTask: numReduceTasks: 0
09/11/06 02:05:35 INFO ExecMapper: maximum memory = 1040515072
09/11/06 02:05:35 INFO ExecMapper: conf classpath = [file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/, file:/D:/work/apache-hive/build/dist/lib/hive_exec.jar, file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/classes]
09/11/06 02:05:35 INFO ExecMapper: thread classpath = [file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/, file:/D:/work/apache-hive/build/dist/lib/hive_exec.jar, file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/classes]
09/11/06 02:05:35 INFO exec.MapOperator: Adding alias a to work list for file /user/hive/warehouse/invites/ds=2008-08-15/kv2.txt
09/11/06 02:05:35 INFO exec.MapOperator: dump TS struct<foo:int,bar:string,ds:string>
09/11/06 02:05:35 INFO ExecMapper:
<MAP>Id =10
<Children>
<TS>Id =0
<Children>
<FIL>Id =1
<Children>
<FIL>Id =2
<Children>
<SEL>Id =3
<Children>
<FS>Id =4
<Parent>Id = 3 <\Parent>
<\FS>
<\Children>
<Parent>Id = 2 <\Parent>
<\SEL>
<\Children>
<Parent>Id = 1 <\Parent>
<\FIL>
<\Children>
<Parent>Id = 0 <\Parent>
<\FIL>
<\Children>
<Parent>Id = 10 <\Parent>
<\TS>
<\Children>
<\MAP>
09/11/06 02:05:35 INFO exec.MapOperator: Initializing Self 10 MAP
09/11/06 02:05:35 INFO exec.TableScanOperator: Initializing Self 0 TS
09/11/06 02:05:35 INFO exec.TableScanOperator: Operator 0 TS initialized
09/11/06 02:05:35 INFO exec.TableScanOperator: Initializing children of 0 TS
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing child 1 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing Self 1 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Operator 1 FIL initialized
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing children of 1 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing child 2 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing Self 2 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Operator 2 FIL initialized
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing children of 2 FIL
09/11/06 02:05:35 INFO exec.SelectOperator: Initializing child 3 SEL
09/11/06 02:05:35 INFO exec.SelectOperator: Initializing Self 3 SEL
09/11/06 02:05:35 INFO exec.SelectOperator: SELECT struct<foo:int,bar:string,ds:string>
09/11/06 02:05:35 INFO exec.SelectOperator: Operator 3 SEL initialized
09/11/06 02:05:35 INFO exec.SelectOperator: Initializing children of 3 SEL
09/11/06 02:05:35 INFO exec.FileSinkOperator: Initializing child 4 FS
09/11/06 02:05:35 INFO exec.FileSinkOperator: Initializing Self 4 FS
09/11/06 02:05:35 INFO exec.FileSinkOperator: Writing to temp file: FS file:/tmp/hive-00962724/1005059804/_tmp.10001/_tmp.attempt_local_0001_m_000000_0
09/11/06 02:05:35 INFO exec.FileSinkOperator: Operator 4 FS initialized
09/11/06 02:05:35 INFO exec.FileSinkOperator: Initialization Done 4 FS
09/11/06 02:05:35 INFO exec.SelectOperator: Initialization Done 3 SEL
09/11/06 02:05:35 INFO exec.FilterOperator: Initialization Done 2 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Initialization Done 1 FIL
09/11/06 02:05:35 INFO exec.TableScanOperator: Initialization Done 0 TS
09/11/06 02:05:35 INFO exec.MapOperator: Initialization Done 10 MAP
09/11/06 02:05:35 INFO exec.MapOperator: 10 forwarding 1 rows
09/11/06 02:05:35 INFO exec.TableScanOperator: 0 forwarding 1 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 1 forwarding 1 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 2 forwarding 1 rows
09/11/06 02:05:35 INFO exec.SelectOperator: 3 forwarding 1 rows
09/11/06 02:05:35 INFO ExecMapper: ExecMapper: processing 1 rows: used memory = 2369824
09/11/06 02:05:35 INFO exec.MapOperator: 10 forwarding 10 rows
09/11/06 02:05:35 INFO exec.TableScanOperator: 0 forwarding 10 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 1 forwarding 10 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 2 forwarding 10 rows
09/11/06 02:05:35 INFO exec.SelectOperator: 3 forwarding 10 rows
09/11/06 02:05:35 INFO ExecMapper: ExecMapper: processing 10 rows: used memory = 2388056
09/11/06 02:05:35 INFO exec.MapOperator: 10 forwarding 100 rows
09/11/06 02:05:35 INFO exec.TableScanOperator: 0 forwarding 100 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 1 forwarding 100 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 2 forwarding 100 rows
09/11/06 02:05:35 INFO exec.SelectOperator: 3 forwarding 100 rows
09/11/06 02:05:35 INFO ExecMapper: ExecMapper: processing 100 rows: used memory = 2388056
09/11/06 02:05:36 INFO exec.MapOperator: 10 finished. closing...
09/11/06 02:05:36 INFO exec.MapOperator: 10 forwarded 500 rows
09/11/06 02:05:36 INFO exec.MapOperator: DESERIALIZE_ERRORS:0
09/11/06 02:05:36 INFO exec.TableScanOperator: 0 finished. closing...
09/11/06 02:05:36 INFO exec.TableScanOperator: 0 forwarded 500 rows
09/11/06 02:05:36 INFO exec.FilterOperator: 1 finished. closing...
09/11/06 02:05:36 INFO exec.FilterOperator: 1 forwarded 500 rows
09/11/06 02:05:36 INFO exec.FilterOperator: PASSED:500
09/11/06 02:05:36 INFO exec.FilterOperator: FILTERED:0
09/11/06 02:05:36 INFO exec.FilterOperator: 2 finished. closing...
09/11/06 02:05:36 INFO exec.FilterOperator: 2 forwarded 500 rows
09/11/06 02:05:36 INFO exec.FilterOperator: PASSED:500
09/11/06 02:05:36 INFO exec.FilterOperator: FILTERED:0
09/11/06 02:05:36 INFO exec.SelectOperator: 3 finished. closing...
09/11/06 02:05:36 INFO exec.SelectOperator: 3 forwarded 500 rows
09/11/06 02:05:36 INFO exec.FileSinkOperator: 4 finished. closing...
09/11/06 02:05:36 INFO exec.FileSinkOperator: 4 forwarded 0 rows
09/11/06 02:05:36 INFO exec.FileSinkOperator: Committed to output file: file:/tmp/hive-00962724/1005059804/_tmp.10001/attempt_local_0001_m_000000_0
09/11/06 02:05:36 INFO exec.SelectOperator: 3 Close done
09/11/06 02:05:36 INFO exec.FilterOperator: 2 Close done
09/11/06 02:05:36 INFO exec.FilterOperator: 1 Close done
09/11/06 02:05:36 INFO exec.TableScanOperator: 0 Close done
09/11/06 02:05:36 INFO exec.MapOperator: 10 Close done
09/11/06 02:05:36 INFO ExecMapper: ExecMapper: processed 500 rows: used memory = 2459320
09/11/06 02:05:36 INFO mapred.TaskRunner: Task:attempt_local_0001_m_000000_0 is done. And is in the process of commiting
09/11/06 02:05:36 INFO mapred.LocalJobRunner:
09/11/06 02:05:36 INFO mapred.TaskRunner: Task attempt_local_0001_m_000000_0 is allowed to commit now
09/11/06 02:05:36 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0001_m_000000_0' to file:/tmp/hive-00962724/384798627
09/11/06 02:05:36 INFO mapred.LocalJobRunner: file:/user/hive/warehouse/invites/ds=2008-08-15/kv2.txt:0+5791
09/11/06 02:05:36 INFO mapred.TaskRunner: Task 'attempt_local_0001_m_000000_0' done.
2009-11-06 02:05:36,156 map = 100%, reduce = 0%
09/11/06 02:05:36 INFO exec.ExecDriver: 2009-11-06 02:05:36,156 map = 100%, reduce = 0%
Ended Job = job_local_0001
09/11/06 02:05:36 INFO exec.ExecDriver: Ended Job = job_local_0001
09/11/06 02:05:36 INFO exec.FileSinkOperator: Moving tmp dir: file:/tmp/hive-00962724/1005059804/_tmp.10001 to: file:/tmp/hive-00962724/1005059804/_tmp.10001.intermediate
09/11/06 02:05:36 INFO exec.FileSinkOperator: Moving tmp dir: file:/tmp/hive-00962724/1005059804/_tmp.10001.intermediate to: file:/tmp/hive-00962724/1005059804/10001
OK
Time taken: 27.86 seconds
00962724@XXX /cygdrive/d/work/apache-hive/build/dist/conf
00962724@XXX /cygdrive/d/work/apache-hive/build/dist/conf
$ /cygdrive/d/work/apache-hive/build/dist/bin/hive -hiveconf hadoop.bin.path=
また、以下のようなエラーがでるときはmetadataが壊れていた様子。
Job Submission failed with exception 'java.lang.NullPointerException(null)'
"drop table"して(このコマンドも失敗したけど、その後"show tables"してテーブルが無いようなら"create table"してloadすれば、うまく動くようになった!
Hive history file=/tmp/00962724/hive_job_log_00962724_200911060205_2037141967.txt
Total MapReduce jobs = 1
Number of reduce tasks is set to 0 since there's no reduce operator
09/11/06 02:05:32 INFO exec.ExecDriver: Number of reduce tasks is set to 0 since there's no reduce operator
09/11/06 02:05:32 INFO exec.ExecDriver: Using org.apache.hadoop.hive.ql.io.HiveInputFormat
09/11/06 02:05:32 INFO exec.ExecDriver: Processing alias a
09/11/06 02:05:32 INFO exec.ExecDriver: Adding input file file:/user/hive/warehouse/invites/ds=2008-08-15
09/11/06 02:05:34 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
09/11/06 02:05:34 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
09/11/06 02:05:34 INFO mapred.FileInputFormat: Total input paths to process : 1
Job running in-process (local Hadoop)
09/11/06 02:05:35 INFO exec.ExecDriver: Job running in-process (local Hadoop)
09/11/06 02:05:35 INFO mapred.FileInputFormat: Total input paths to process : 1
09/11/06 02:05:35 INFO mapred.MapTask: numReduceTasks: 0
09/11/06 02:05:35 INFO ExecMapper: maximum memory = 1040515072
09/11/06 02:05:35 INFO ExecMapper: conf classpath = [file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/, file:/D:/work/apache-hive/build/dist/lib/hive_exec.jar, file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/classes]
09/11/06 02:05:35 INFO ExecMapper: thread classpath = [file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/, file:/D:/work/apache-hive/build/dist/lib/hive_exec.jar, file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/classes]
09/11/06 02:05:35 INFO exec.MapOperator: Adding alias a to work list for file /user/hive/warehouse/invites/ds=2008-08-15/kv2.txt
09/11/06 02:05:35 INFO exec.MapOperator: dump TS struct<foo:int,bar:string,ds:string>
09/11/06 02:05:35 INFO ExecMapper:
<MAP>Id =10
<Children>
<TS>Id =0
<Children>
<FIL>Id =1
<Children>
<FIL>Id =2
<Children>
<SEL>Id =3
<Children>
<FS>Id =4
<Parent>Id = 3 <\Parent>
<\FS>
<\Children>
<Parent>Id = 2 <\Parent>
<\SEL>
<\Children>
<Parent>Id = 1 <\Parent>
<\FIL>
<\Children>
<Parent>Id = 0 <\Parent>
<\FIL>
<\Children>
<Parent>Id = 10 <\Parent>
<\TS>
<\Children>
<\MAP>
09/11/06 02:05:35 INFO exec.MapOperator: Initializing Self 10 MAP
09/11/06 02:05:35 INFO exec.TableScanOperator: Initializing Self 0 TS
09/11/06 02:05:35 INFO exec.TableScanOperator: Operator 0 TS initialized
09/11/06 02:05:35 INFO exec.TableScanOperator: Initializing children of 0 TS
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing child 1 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing Self 1 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Operator 1 FIL initialized
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing children of 1 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing child 2 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing Self 2 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Operator 2 FIL initialized
09/11/06 02:05:35 INFO exec.FilterOperator: Initializing children of 2 FIL
09/11/06 02:05:35 INFO exec.SelectOperator: Initializing child 3 SEL
09/11/06 02:05:35 INFO exec.SelectOperator: Initializing Self 3 SEL
09/11/06 02:05:35 INFO exec.SelectOperator: SELECT struct<foo:int,bar:string,ds:string>
09/11/06 02:05:35 INFO exec.SelectOperator: Operator 3 SEL initialized
09/11/06 02:05:35 INFO exec.SelectOperator: Initializing children of 3 SEL
09/11/06 02:05:35 INFO exec.FileSinkOperator: Initializing child 4 FS
09/11/06 02:05:35 INFO exec.FileSinkOperator: Initializing Self 4 FS
09/11/06 02:05:35 INFO exec.FileSinkOperator: Writing to temp file: FS file:/tmp/hive-00962724/1005059804/_tmp.10001/_tmp.attempt_local_0001_m_000000_0
09/11/06 02:05:35 INFO exec.FileSinkOperator: Operator 4 FS initialized
09/11/06 02:05:35 INFO exec.FileSinkOperator: Initialization Done 4 FS
09/11/06 02:05:35 INFO exec.SelectOperator: Initialization Done 3 SEL
09/11/06 02:05:35 INFO exec.FilterOperator: Initialization Done 2 FIL
09/11/06 02:05:35 INFO exec.FilterOperator: Initialization Done 1 FIL
09/11/06 02:05:35 INFO exec.TableScanOperator: Initialization Done 0 TS
09/11/06 02:05:35 INFO exec.MapOperator: Initialization Done 10 MAP
09/11/06 02:05:35 INFO exec.MapOperator: 10 forwarding 1 rows
09/11/06 02:05:35 INFO exec.TableScanOperator: 0 forwarding 1 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 1 forwarding 1 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 2 forwarding 1 rows
09/11/06 02:05:35 INFO exec.SelectOperator: 3 forwarding 1 rows
09/11/06 02:05:35 INFO ExecMapper: ExecMapper: processing 1 rows: used memory = 2369824
09/11/06 02:05:35 INFO exec.MapOperator: 10 forwarding 10 rows
09/11/06 02:05:35 INFO exec.TableScanOperator: 0 forwarding 10 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 1 forwarding 10 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 2 forwarding 10 rows
09/11/06 02:05:35 INFO exec.SelectOperator: 3 forwarding 10 rows
09/11/06 02:05:35 INFO ExecMapper: ExecMapper: processing 10 rows: used memory = 2388056
09/11/06 02:05:35 INFO exec.MapOperator: 10 forwarding 100 rows
09/11/06 02:05:35 INFO exec.TableScanOperator: 0 forwarding 100 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 1 forwarding 100 rows
09/11/06 02:05:35 INFO exec.FilterOperator: 2 forwarding 100 rows
09/11/06 02:05:35 INFO exec.SelectOperator: 3 forwarding 100 rows
09/11/06 02:05:35 INFO ExecMapper: ExecMapper: processing 100 rows: used memory = 2388056
09/11/06 02:05:36 INFO exec.MapOperator: 10 finished. closing...
09/11/06 02:05:36 INFO exec.MapOperator: 10 forwarded 500 rows
09/11/06 02:05:36 INFO exec.MapOperator: DESERIALIZE_ERRORS:0
09/11/06 02:05:36 INFO exec.TableScanOperator: 0 finished. closing...
09/11/06 02:05:36 INFO exec.TableScanOperator: 0 forwarded 500 rows
09/11/06 02:05:36 INFO exec.FilterOperator: 1 finished. closing...
09/11/06 02:05:36 INFO exec.FilterOperator: 1 forwarded 500 rows
09/11/06 02:05:36 INFO exec.FilterOperator: PASSED:500
09/11/06 02:05:36 INFO exec.FilterOperator: FILTERED:0
09/11/06 02:05:36 INFO exec.FilterOperator: 2 finished. closing...
09/11/06 02:05:36 INFO exec.FilterOperator: 2 forwarded 500 rows
09/11/06 02:05:36 INFO exec.FilterOperator: PASSED:500
09/11/06 02:05:36 INFO exec.FilterOperator: FILTERED:0
09/11/06 02:05:36 INFO exec.SelectOperator: 3 finished. closing...
09/11/06 02:05:36 INFO exec.SelectOperator: 3 forwarded 500 rows
09/11/06 02:05:36 INFO exec.FileSinkOperator: 4 finished. closing...
09/11/06 02:05:36 INFO exec.FileSinkOperator: 4 forwarded 0 rows
09/11/06 02:05:36 INFO exec.FileSinkOperator: Committed to output file: file:/tmp/hive-00962724/1005059804/_tmp.10001/attempt_local_0001_m_000000_0
09/11/06 02:05:36 INFO exec.SelectOperator: 3 Close done
09/11/06 02:05:36 INFO exec.FilterOperator: 2 Close done
09/11/06 02:05:36 INFO exec.FilterOperator: 1 Close done
09/11/06 02:05:36 INFO exec.TableScanOperator: 0 Close done
09/11/06 02:05:36 INFO exec.MapOperator: 10 Close done
09/11/06 02:05:36 INFO ExecMapper: ExecMapper: processed 500 rows: used memory = 2459320
09/11/06 02:05:36 INFO mapred.TaskRunner: Task:attempt_local_0001_m_000000_0 is done. And is in the process of commiting
09/11/06 02:05:36 INFO mapred.LocalJobRunner:
09/11/06 02:05:36 INFO mapred.TaskRunner: Task attempt_local_0001_m_000000_0 is allowed to commit now
09/11/06 02:05:36 INFO mapred.FileOutputCommitter: Saved output of task 'attempt_local_0001_m_000000_0' to file:/tmp/hive-00962724/384798627
09/11/06 02:05:36 INFO mapred.LocalJobRunner: file:/user/hive/warehouse/invites/ds=2008-08-15/kv2.txt:0+5791
09/11/06 02:05:36 INFO mapred.TaskRunner: Task 'attempt_local_0001_m_000000_0' done.
2009-11-06 02:05:36,156 map = 100%, reduce = 0%
09/11/06 02:05:36 INFO exec.ExecDriver: 2009-11-06 02:05:36,156 map = 100%, reduce = 0%
Ended Job = job_local_0001
09/11/06 02:05:36 INFO exec.ExecDriver: Ended Job = job_local_0001
09/11/06 02:05:36 INFO exec.FileSinkOperator: Moving tmp dir: file:/tmp/hive-00962724/1005059804/_tmp.10001 to: file:/tmp/hive-00962724/1005059804/_tmp.10001.intermediate
09/11/06 02:05:36 INFO exec.FileSinkOperator: Moving tmp dir: file:/tmp/hive-00962724/1005059804/_tmp.10001.intermediate to: file:/tmp/hive-00962724/1005059804/10001
OK
Time taken: 27.86 seconds
00962724@XXX /cygdrive/d/work/apache-hive/build/dist/conf
木曜日, 11月 05, 2009
[HIVE] 準備が結構。。。
Hadoopも、JavaのScalaと同様に楽をしたいためHIVEを使おうと思って準備。したのだけど結構はまったのでメモ。
・Hadoopをインストール
HIVEにするといってもHadoopは事前に入れておく必要がある様子。このときおとなしくcygwinを入れるべし。中でdfとか使うのでbash.exeなどを入れていても(それだけでは)途中でこける。
・HIVEをインストール
ivy(というmavenみたいな構成管理ツール)が曲者。というかtrunkをsvnで取ってきたのだけど、中でもう古い、たとえばv0.19.0みたいなHadoopをdownloadしようとしてしまう。なので以下2ファイルを書き替える必要があった。
apache-hive\shims\ivy.xml
apache-hive\shims\build.xml
これらの中で、使いたいHadoopバージョンだけを残せばOK(私はv0.19.2だけを入れました)。あと、普通に入れると途中のHadoopダウンロードが遅いので、
D:\work>ant -Dhadoop.mirror="http://www.meisei-u.ac.jp/mirror/apache/dist" -Dhadoop.version=0.19.2 package
のとおり、ダウンロードサイトを指定すると吉。
補足:
cygwinのv1.7をUTF8化する方法はこちら。
・Hadoopをインストール
HIVEにするといってもHadoopは事前に入れておく必要がある様子。このときおとなしくcygwinを入れるべし。中でdfとか使うのでbash.exeなどを入れていても(それだけでは)途中でこける。
・HIVEをインストール
ivy(というmavenみたいな構成管理ツール)が曲者。というかtrunkをsvnで取ってきたのだけど、中でもう古い、たとえばv0.19.0みたいなHadoopをdownloadしようとしてしまう。なので以下2ファイルを書き替える必要があった。
apache-hive\shims\ivy.xml
apache-hive\shims\build.xml
これらの中で、使いたいHadoopバージョンだけを残せばOK(私はv0.19.2だけを入れました)。あと、普通に入れると途中のHadoopダウンロードが遅いので、
D:\work>ant -Dhadoop.mirror="http://www.meisei-u.ac.jp/mirror/apache/dist" -Dhadoop.version=0.19.2 package
のとおり、ダウンロードサイトを指定すると吉。
補足:
cygwinのv1.7をUTF8化する方法はこちら。
日曜日, 10月 25, 2009
[Solr] tikaを簡単に
curlを2回つなげると、簡単にウェブページを検索対象にできる。
konpyuta:~/work tf0054$ curl -s http://lucene.apache.org/tika/ | curl 'http://localhost:8983/solr/update/extract?literal.id=doc5&literal.url=doc5&commit=true' -F "myfile=@-"
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">76</int></lst>
</response>
konpyuta:~/work tf0054$
ちなみに、curlの"-F"オプションで指定ファイルをPOSTすることができる(ココでは前のcurlから受け取ったSTDINを流すために"-"で受けている)。
konpyuta:~/work tf0054$ curl -s http://lucene.apache.org/tika/ | curl 'http://localhost:8983/solr/update/extract?literal.id=doc5&literal.url=doc5&commit=true' -F "myfile=@-"
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">76</int></lst>
</response>
konpyuta:~/work tf0054$
ちなみに、curlの"-F"オプションで指定ファイルをPOSTすることができる(ココでは前のcurlから受け取ったSTDINを流すために"-"で受けている)。
土曜日, 10月 03, 2009
[Android] BlueLoggerを公開しました
木曜日, 9月 24, 2009
[Linux] フィード取得の偽装に関して
blogspotユーザのフィード(atomで吐いている)を解析、画像のソースを本文に引っ付けて戻す事で、その記事ページに行かなくてもリーダ上で画像を見られるようにしたい。のだけど、atomで<img src="〜">〜</img>をきちんと処理してもらうには、どうすれば良いのか分からない。。。atom:contentでcdata付けてみたけどダメ。あ、cdata付けるからだめなのかな。
木曜日, 9月 10, 2009
[Solr] GoSenをまた修正!
Luceneが2.9-rc2になったからか、またSolrでgosenが動かなくなっていたので修正しました。
lucene-ja-gosen-1.0.2.zipとして置いておきます。
lucene-ja-gosen-1.0.2.zipとして置いておきます。
土曜日, 8月 29, 2009
[Android] サブメニューの作成
androidでメニューをXMLで書くときの、サブメニュー(クリックしたら更にその中から表示されるメニュー。選択肢だけが画面中央にでる)は以下のように書きます。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/main_Sort" android:title="ソート"
android:icon="@android:drawable/ic_menu_more">
<menu>
<item android:id="@+id/main_Sort_1" android:title="すれ違い日時" />
<item android:id="@+id/main_Sort_2" android:title="すれ違い回数" />
</menu>
</item>
<item android:id="@+id/main_Input" android:title="入力" />
<item android:id="@+id/main_Stop" android:title="停止" />
<item android:id="@+id/main_Exit" android:title="終了"
android:icon="@android:drawable/ic_menu_close_clear_cancel" />
</menu>
木曜日, 8月 27, 2009
[Scala] Antでfscを
Scalaはコンパイルが遅いので(Javaに比べて遅いかどうかは、Java開発をほぼしたことがないので不明)、Antでscalacタスクではなくfscタスクを使えるようにした。段どりは以下。
・fscだけをコマンドで実行し常駐させる(helpが出る)
・上がったデーモンのポート番号を調べる(※1)
・それをファイルに書く(※2)
・build.xmlのfscタスクでそれを指定(serverオプションにて)
(※1)は以下にポート番号でファイルができるのでそれを見ます。
d:\scala-2.7.5.final\var\scala-devel\scalac-compile-server-port
不思議なことに、fscのデーモンさんはPCをスタンバイにすると死んでしまうようなので、そうなると(※2)を毎回やらなくてはならず不便。。
今日AntでJavascript実行ができることに気がついたので、(※1)も(※2)も、それで何とかできると思います。
追伸:
今のところ致し方無い。そもそもWindowsじゃなければ、こんな面倒なことはないのだけど。
追伸2:
以下でポート番号を動的にantから取れそうです(参考にさせて頂いたページ)。
・fscだけをコマンドで実行し常駐させる(helpが出る)
・上がったデーモンのポート番号を調べる(※1)
・それをファイルに書く(※2)
・build.xmlのfscタスクでそれを指定(serverオプションにて)
(※1)は以下にポート番号でファイルができるのでそれを見ます。
d:\scala-2.7.5.final\var\scala-devel\scalac-compile-server-port
不思議なことに、fscのデーモンさんはPCをスタンバイにすると死んでしまうようなので、そうなると(※2)を毎回やらなくてはならず不便。。
今日AntでJavascript実行ができることに気がついたので、(※1)も(※2)も、それで何とかできると思います。
追伸:
今のところ致し方無い。そもそもWindowsじゃなければ、こんな面倒なことはないのだけど。
追伸2:
以下でポート番号を動的にantから取れそうです(参考にさせて頂いたページ)。
<target name="fileList">
<script language="javascript">
<![CDATA[
ls();
function ls() {
var curDir = (new java.io.File("/scala-2.7.5.final/var/scala-devel/scalac-compile-server-port"));
var list = curDir.listFiles();
for (var i = 0; i < list.length; i++) {
print(baseName(list[i].toString()));
}
}
function baseName(path) {
// var sep = environment["file.separator"];
var sep = "\\";
var i = path.lastIndexOf(sep);
return path.substring(i + 1);
}
]]>
</script>
</target>
月曜日, 8月 17, 2009
日曜日, 8月 09, 2009
[Scala] UriMatcher
ScalaでAndroidプログラミングをして、UriMatcherのmatchメソッドが使えず困った。
結局、matchが予約語だからバッククオート(`)で括ればOKでした。
ふつう、URLのマッチをとってそれを(Scalaだから)さらにmatchでcaseしてゆく、、ので確かに、書きながらややこしいなぁ、とは思っていましたが。
今はAndroid的売り(だと思う)ContentProviderを作ろうとしておりハマり中。マニフェストへ記述したら、なぜかClassNotFoundといわれてアプリごと起動不能に。。
結局、matchが予約語だからバッククオート(`)で括ればOKでした。
ふつう、URLのマッチをとってそれを(Scalaだから)さらにmatchでcaseしてゆく、、ので確かに、書きながらややこしいなぁ、とは思っていましたが。
今はAndroid的売り(だと思う)ContentProviderを作ろうとしておりハマり中。マニフェストへ記述したら、なぜかClassNotFoundといわれてアプリごと起動不能に。。
日曜日, 7月 19, 2009
[Scala] JavaからScalaを
JavaからScalaで作ったクラスを使うサンプル。簡単すぎてか、以外にサンプルが無かったので載せてみる。
konpyuta:~/work/j2s asummer$ cat javaMain.javaおもいきりシームレス。
class javaMain {
public static void main(String[] args){
scalaConv objScala = new scalaConv(args[0]);
System.out.println(objScala.getResult());
System.out.println(objScala);
}
}
konpyuta:~/work/j2s asummer$ cat scalaConv.scala
class scalaConv(tmpStr:String){
val tmpPre = "xxx>";
def getResult = {
tmpPre + tmpStr;
}
override def toString = {
tmpPre + tmpStr;
}
}
konpyuta:~/work/j2s asummer$ javac javaMain.java
konpyuta:~/work/j2s asummer$ scalac scalaConv.scala
konpyuta:~/work/j2s asummer$ java -cp ~/work/scala/lib/scala-library.jar:. javaMain test
xxx>test
xxx>test
konpyuta:~/work/j2s asummer$
火曜日, 7月 14, 2009
[Scala] HT-03AのUSB接続…
HT-03AをPCにUSBでつなげる際、普通にやるディスクドライブとして自動認識されてしまい、少しはまります。こんな時は、Android開発者MLに流れていたメッセージを参考に、
・レジストリを消して
・端末で"設定>アプリケーション>開発>デバッグ"をONに
することで、無事SDK(r2)のUSBドライバにて接続し、デバイス番号が確認できるところまで進みました。でも、もしかすると初めて端末を接続する前に、端末のデバッグをONにしておけばよかったのかも、と思います。
・レジストリを消して
・端末で"設定>アプリケーション>開発>デバッグ"をONに
することで、無事SDK(r2)のUSBドライバにて接続し、デバイス番号が確認できるところまで進みました。でも、もしかすると初めて端末を接続する前に、端末のデバッグをONにしておけばよかったのかも、と思います。
火曜日, 7月 07, 2009
[Scala] Androidアプリ!(センサーの実験など)
せっかくAndroid端末をGDDでもらったので、yamashitaさんのアプリを以下改造しました。
・せっかくなので売りのセンサーを使って(これは元から)
・自前式では動きが気に食わなかったので物理エンジンを入れて
・最近お気に入りのScalaで焼き直し
・SDKも1.5にして
そして、せっかくなので(汚いソースままですが)公開しておこうと思います(MoveCircle)。
物理エンジンはAPEがある程度Androidに移植されていた(testape2d.zip)ので取り込んでいます)。
でも、SDK1.5のセンサーって、今はシミュレータで実験できないんですね(シミュレータといってもライブラリを入れるタイプで、そのライブラリが1.1仕様ママ)。実機じゃないとテストできないってちょっと。。
・せっかくなので売りのセンサーを使って(これは元から)
・自前式では動きが気に食わなかったので物理エンジンを入れて
・最近お気に入りのScalaで焼き直し
・SDKも1.5にして
そして、せっかくなので(汚いソースままですが)公開しておこうと思います(MoveCircle)。
物理エンジンはAPEがある程度Androidに移植されていた(testape2d.zip)ので取り込んでいます)。
でも、SDK1.5のセンサーって、今はシミュレータで実験できないんですね(シミュレータといってもライブラリを入れるタイプで、そのライブラリが1.1仕様ママ)。実機じゃないとテストできないってちょっと。。
木曜日, 6月 25, 2009
[Scala] RichString!
動作は遅いのかもしれませんが、
追伸:
きちんとsplitなんかもあって。本当にLL感覚でいけて嬉しいです。
val tmpStr:String = '^'+args(0)+".*";というのが、一行で書けるScalaのRichStringは、やはり魅力です。
val objStr = tmpStr.r;
println(aryTmp.filter{w => {
w match {
case objStr() => { true;}
case _ => { false; }
}
}}(0));
println(aryTmp.filter{x => x.startsWith(args(0))});特に意識せずに使う文字列型がコレ、というのはしかし、考えようによってはやり過ぎですが。。まぁLLと捉えればまったくありかと。
追伸:
きちんとsplitなんかもあって。本当にLL感覚でいけて嬉しいです。
日曜日, 6月 21, 2009
[Scala] GAE/JのMemcacheサービス
Scalaで、なぜかGAE/JのMemcacheサービスをJCacheを経由して使う方法が分からない。
直接APIを使ってよいなら下のソースな感じで大丈夫なのだけど。
JCache経由にしようとしたら、出てしまうエラー。Kってjava.util.MapのKっぽいんだけど解決方法が分からない。。
直接APIを使ってよいなら下のソースな感じで大丈夫なのだけど。
import com.google.appengine.api.memcache._
class memcached {
val cache:MemcacheService = MemcacheServiceFactory.getMemcacheService();
def setValue(strKey:String,strValue:String) = {
cache.put(strKey,strValue);
}
def getValue(strKey:String):String = {
cache.get(strKey).asInstanceOf[String];
}
}
JCache経由にしようとしたら、出てしまうエラー。Kってjava.util.Map
~snip~お分かりの方は是非コメントください。一部ではGAE/JをPythonで使うべきかJavaで使うべきか、から発展した大変な議論が巻き起こったようですが、私はのんびりとScalaでがんばります。
[scalac] D:\work\workspace\test\src\com\digipepper\memcached.scala:51: error:
type mismatch;
[scalac] found : String
[scalac] required: K
[scalac] cache.put(key, value);
[scalac] ^
~snip~
土曜日, 6月 20, 2009
[Scala] GAE/JのMailサービス
本文は普通に日本語文章を与えたらOK。サブジェクトだけ自分でいじることにしました。
import java.util.Properties;エラー処理とかとても適当ですが、何かの参考に。
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
class sendmail(strFrom:String) {
var props:Properties = new Properties();
var session:Session = Session.getDefaultInstance(props, null);
def send(strTo:String, strSubject:String, strBody:String) {
try {
var msg:Message = new MimeMessage(session);
msg.setFrom(new InternetAddress(strFrom));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress(strTo, "Mr. User"));
msg.setSubject(MimeUtility.encodeText(strSubject,"iso-2022-jp","B"));
msg.setText(strBody+"\n");
Transport.send(msg);
} catch {
case e:AddressException => printf("Exp_A(%s)\n", e.getMessage)
case e:MessagingException => printf("Exp_B(%s)\n", e.getMessage)
case e => e.printStackTrace
}
}
}
登録:
投稿 (Atom)