Hadoopをより便利に使う!HiveでのMapReduceまとめ
目次
- Hiveとは
- Hiveの設定
- HiveQL構文(DDL)
- DataBase/SCHEMAの作成
- Database/SCHEMAの削除
- Tableの作成
- Tableの削除
- Table名変更
- Partition作成
- Partitionの削除
- Columnの変更
- Columnの追加/置き換え
- TableのProperty変更
- SerDe Propertyの追加
- HiveQL構文(SQL)
- テーブル一覧表示
- テーブルの内容を表示
- 基本的なSELECT文
- WHERE句(条件指定)
- DISTINCT(重複削除)
- ORDER BY / SORT BY句(ソート)
- GROUP BY句(グループ化)
- HAVING句(グループ化後の条件)
- LIMIT句
- JOIN(テーブル結合)
- 抽出カラムを正規表現で指定
- UNION(結果の結合)
- SUBQUERY
- LOAD(データの読み込み)
- Hiveを使う
- まとめ
- リンク
Hiveとは
Hiveの設定
- CentOSでのHiveの設定はCentOSでHadoopを使ってみる - Yuta.Kikuchiの日記 を参照して欲しい。
HiveQL構文(DDL)
DataBase/SCHEMAの作成
- 構文
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)];
- サンプル
CREATE DATABASE IF NOT EXISTS logs;Database/SCHEMAの削除
- 構文
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
- サンプル
DROP DATABASE IF EXISTS logs;Tableの作成
- 構文
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ [ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] (Note: only available starting with 0.6.0) ] [LOCATION hdfs_path] [TBLPROPERTIES (property_name=property_value, ...)] (Note: only available starting with 0.6.0) [AS select_statement] (Note: this feature is only available starting with 0.5.0, and is not supported when creating external tables.) CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name LIKE existing_table_or_view_name [LOCATION hdfs_path] data_type : primitive_type | array_type | map_type | struct_type primitive_type : TINYINT | SMALLINT | INT | BIGINT | BOOLEAN | FLOAT | DOUBLE | STRING array_type : ARRAY < data_type > map_type : MAP < primitive_type, data_type > struct_type : STRUCT < col_name : data_type [COMMENT col_comment], ...> row_format : DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char] [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char] | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)] file_format: : SEQUENCEFILE | TEXTFILE | RCFILE (Note: only available starting with 0.6.0) | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
- サンプル
- csvファイルを改行コードで1行として扱い、カンマで区切った値を格納する。
CREATE TABLE logs(id INT, created_at STRING) row format delimited fields terminated by ',' lines terminated by '\n';
- date項目でPartisionを設定する。(Partitionを設定するとそのカラムでの項目ごとの集計が簡単にできる。)
CREATE TABLE logs(id INT, created_at STRING) PARTITIONED BY(date STRING) row format delimited fields terminated by ',' lines terminated by '\n';Tableの削除
- 構文
DROP TABLE [IF EXISTS] table_name
- サンプル
DROP TABLE logs;Table名変更
- 構文
ALTER TABLE table_name RENAME TO new_table_name
- サンプル
ALTER TABLE logs RENAME TO logs_yesterday;Partition作成
- 構文
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec [LOCATION 'location1'] partition_spec [LOCATION 'location2'] ... partition_spec: : (partition_col = partition_col_value, partition_col = partiton_col_value, ...)
- サンプル
ALTER TABLE logs ADD PARTITION (date = '2011-12-14') location '/path/to/part111214';Partitionの削除
- 構文
ALTER TABLE table_name DROP [IF EXISTS] partition_spec, partition_spec,...
- サンプル
ALTER TABLE logs DROP PARTITION (date = '2011-12-14');Columnの変更
- 構文
ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]
- サンプル
- Columnの名前を変更
ALTER TABLE logs CHANGE COLUMN created_at created_date;Columnの追加/置き換え
- 構文
ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
- サンプル
ALTER TABLE logs ADD update_date STRING;TableのProperty変更
- 構文
ALTER TABLE table_name SET TBLPROPERTIES table_properties table_properties: : (property_name = property_value, property_name = property_value, ... )
- サンプル
- 外部テーブルに変更
ALTER TABLE logs SET TBLPROPERTIES ('EXTERNAL'=true);SerDe Propertyの追加
ALTER TABLE table_name SET SERDE serde_class_name [WITH SERDEPROPERTIES serde_properties] ALTER TABLE table_name SET SERDEPROPERTIES serde_properties serde_properties: : (property_name = property_value, property_name = property_value, ... )
- サンプル
ALTER TABLE logs SET SERDEPROPERTIES ( 'field.delim' = ',' );
HiveQL構文(SQL)
- これもRDBと同じような構文。SELECTなど。
テーブルの内容を表示
DESCRIBE logs;基本的なSELECT文
- 構文
SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list] ] [LIMIT number]
- サンプル
SELECT * FROM logs;WHERE句(条件指定)
SELECT * FROM logs WHERE id > 10 AND created_at = "US";DISTINCT(重複削除)
SELECT DISTINCT created_at FROM logs;ORDER BY / SORT BY(ソート)
- ORDER BY構文
colOrder: ( ASC | DESC ) orderBy: ORDER BY colName colOrder? (',' colName colOrder?)* query: SELECT expression (',' expression)* FROM src orderBy
- SORT BY構文
colOrder: ( ASC | DESC ) sortBy: SORT BY colName colOrder? (',' colName colOrder?)* query: SELECT expression (',' expression)* FROM src sortBy
- サンプル
SELECT * FROM logs SORT BY date ASC, created_at DESC;GROUP BY句(グループ化)
- 構文
groupByClause: GROUP BY groupByExpression (, groupByExpression)* groupByExpression: expression groupByQuery: SELECT expression (, expression)* FROM src groupByClause?
- サンプル
SELECT * FROM logs GROUP BY created_at;HAVING句(グループ化後の条件)
SELECT * FROM logs GROUP BY created_at HAVING COUNT( id ) > 10;LIMIT句
SELECT * FROM logs LIMIT 5;JOIN(テーブル結合)
- 構文
join_table: table_reference JOIN table_factor [join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference LEFT SEMI JOIN table_reference join_condition table_reference: table_factor | join_table table_factor: tbl_name [alias] | table_subquery alias | ( table_references ) join_condition: ON equality_expression ( AND equality_expression )* equality_expression: expression = expression
- サンプル
SELECT logs.* FROM logs JOIN logs2 ON ( logs.id = logs2.id );抽出カラムを正規表現で指定
SELECT <REGEX> FROM logs;UNION(結果の結合)
- 構文
select_statement UNION ALL select_statement UNION ALL select_statement ...
- サンプル
SELECT id,created_at FROM logs WHERE date = '2011-12-15' UNION ALL SELECT id,created FROM logs2 WHERE date = '2011-12-15' ;SUBQUERY
- 構文
SELECT ... FROM (subquery) name ...
- サンプル
SELECT col FROM ( SELECT a+b AS col FROM logs2 ) logs;LOAD(データの読み込み)
- 構文
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
- サンプル
LOAD DATA INPATH '/user/data/pv_2011-12-15_us.txt' INTO TABLE logs PARTITION(date='2011-12-15', created_at='US');
Hiveを使う
- http://www.atmarkit.co.jp/fdb/single/s_hive/hive_02.html ここに掲載差入れている実験データを元にHiveを動かす。
- 都道府県番号、郵便番号のデータをMapReduceすることが目的。
事前準備
- ファイルダウンロード
$ wget wget http://www.atmarkit.co.jp/fdb/single/s_hive/dl/data.tar.gz $ tar -xzf data.tar.gz
- 解凍フォルダの確認
- ファイル一覧
$ tree |-- pref.csv |-- zip20081128.csv `-- zip20081226.csv1,北海道 2,青森県 3,岩手県 4,宮城県 5,秋田県 6,山形県 7,福島県 8,茨城県 (略)
- zipYYYYMMDD.csvは郵便番号と住所をカンマ区切りで格納。
0600000,1,札幌市中央区, 0640941,1,札幌市中央区,旭ケ丘 0600041,1,札幌市中央区,大通東 0600042,1,札幌市中央区,大通西(1〜19丁目) 0640820,1,札幌市中央区,大通西(20〜28丁目) 0600031,1,札幌市中央区,北一条東 0600001,1,札幌市中央区,北一条西(1〜19丁目) 0640821,1,札幌市中央区,北一条西(20〜28丁目) 0600032,1,札幌市中央区,北二条東 0600002,1,札幌市中央区,北二条西(1〜19丁目)起動と終了
- 起動
$ /usr/bin/hive Hive history file=/tmp/yuta/hive_job_log_yuta_201112140914_1577424059.txt hive>
- 終了
hive> exit;テーブルの定義
- pref.csvを行内でカンマ区切りでデータを格納するための定義。
hive> CREATE TABLE pref (id int, pref STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; OK Time taken: 11.761 secondsデータの読み込み
- 読み込み
hive> LOAD DATA LOCAL INPATH '/home/yuta/work/dev/hadoop/hive/localfiles/pref.csv' OVERWRITE INTO TABLE pref; Copying data from file:/home/yuta/work/dev/hadoop/hive/localfiles/pref.csv Copying file: file:/home/yuta/work/dev/hadoop/hive/localfiles/pref.csv Loading data to table default.pref Deleted hdfs://localhost/user/hive/warehouse/pref OK Time taken: 0.919 seconds
- 確認
hive> SELECT * FROM pref; OK 1 北海道 2 青森県 3 岩手県 4 宮城県 5 秋田県 6 山形県 7 福島県 8 茨城県 (略)Tableのパーティション定義
hive> CREATE TABLE zip (zip STRING, pref INT, city STRING, town STRING) PARTITIONED BY (ver DATE) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; FAILED: Error in semantic analysis: DATE, DATETIME, and TIMESTAMP types aren't supported yet. Please use STRING instead.※どうもDATE,DATETIME,TIMESTAMPがまだサポートされていないバージョンのようだ。指示通りSTRINGに変えて試してみる。
hive> CREATE TABLE zip (zip STRING, pref INT, city STRING, town STRING) PARTITIONED BY (ver STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; OK Time taken: 0.098 seconds
- パーティション情報を指定してデータの読み込み
hive> LOAD DATA LOCAL INPATH '/home/yuta/work/dev/hadoop/hive/localfiles/zip20081128.csv' OVERWRITE INTO TABLE zip PARTITION (ver = '2008-11-28'); Copying data from file:/home/yuta/work/dev/hadoop/hive/localfiles/zip20081128.csv Copying file: file:/home/yuta/work/dev/hadoop/hive/localfiles/zip20081128.csv Loading data to table default.zip partition (ver=2008-11-28) OK Time taken: 1.517 seconds hive> LOAD DATA LOCAL INPATH '/home/yuta/work/dev/hadoop/hive/localfiles/zip20081226.csv' OVERWRITE INTO TABLE zip PARTITION (ver = '2008-12-26'); Copying data from file:/home/yuta/work/dev/hadoop/hive/localfiles/zip20081226.csv Copying file: file:/home/yuta/work/dev/hadoop/hive/localfiles/zip20081226.csv Loading data to table default.zip partition (ver=2008-12-26) OK Time taken: 0.76 seconds
- データの確認
SELECT * from zip; OK 0600000 1 札幌市中央区 2008-11-28 0640941 1 札幌市中央区 旭ケ丘 2008-11-28 0600041 1 札幌市中央区 大通東 2008-11-28 0600042 1 札幌市中央区 大通西(1〜19丁目) 2008-11-28 0640820 1 札幌市中央区 大通西(20〜28丁目) 2008-11-28 (略) 071101 47 八重山郡竹富町 竹富 2008-12-26 9071434 47 八重山郡竹富町 南風見 2008-12-26 9071433 47 八重山郡竹富町 南風見仲 2008-12-26 9071751 47 八重山郡竹富町 波照間 2008-12-26 9071544 47 八重山郡竹富町 鳩間 2008-12-26 9071800 47 八重山郡与那国町 2008-12-26 9071801 47 八重山郡与那国町 与那国 2008-12-26検索/MapReduce
- パーティションを指定して検索
hive> SELECT z.zip, z.pref, z.city, z.town FROM zip z WHERE z.ver = '2008-12-26'; Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 since there's no reduce operator Starting Job = job_201112190030_0001, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201112190030_0001 Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201112190030_0001 2011-12-19 01:20:21,358 Stage-1 map = 0%, reduce = 0% 2011-12-19 01:20:27,532 Stage-1 map = 100%, reduce = 0% 2011-12-19 01:20:30,933 Stage-1 map = 100%, reduce = 100% Ended Job = job_201112190030_0001 OK 0600000 1 札幌市中央区 0640941 1 札幌市中央区 旭ケ丘 0600041 1 札幌市中央区 大通東 0600042 1 札幌市中央区 大通西(1〜19丁目) 0640820 1 札幌市中央区 大通西(20〜28丁目) 0600031 1 札幌市中央区 北一条東 (略)
- 条件を指定して検索
hive> SELECT z.zip, z.pref, z.city, z.town FROM zip z WHERE z.ver = '2008-12-26' AND z.town LIKE '銀座'; Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 since there's no reduce operator Starting Job = job_201112190030_0002, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201112190030_0002 Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201112190030_0002 2011-12-19 01:25:34,289 Stage-1 map = 0%, reduce = 0% 2011-12-19 01:25:39,419 Stage-1 map = 100%, reduce = 0% 2011-12-19 01:25:43,562 Stage-1 map = 100%, reduce = 100% Ended Job = job_201112190030_0002 OK 0691331 1 夕張郡長沼町 銀座 3220052 9 鹿沼市 銀座 3600032 11 熊谷市 銀座 3670052 11 本庄市 銀座 1040061 13 中央区 銀座 3940022 20 岡谷市 銀座 3950031 20 飯田市 銀座 4240817 22 静岡市清水区 銀座 4480845 23 刈谷市 銀座 7450032 35 周南市 銀座 7700916 36 徳島市 銀座 8040076 40 北九州市戸畑区 銀座 Time taken: 17.508 seconds
- TableのJOIN
hive> SELECT z.zip, p.pref, z.city, z.town FROM zip z LEFT OUTER JOIN pref p ON (p.id = z.pref) WHERE z.ver = '2008-12-26' AND z.town REGEXP '銀座'; Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks not specified. Estimated from input data size: 1 In order to change the average load for a reducer (in bytes): set hive.exec.reducers.bytes.per.reducer=<number> In order to limit the maximum number of reducers: set hive.exec.reducers.max=<number> In order to set a constant number of reducers: set mapred.reduce.tasks=<number> Starting Job = job_201112190030_0003, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201112190030_0003 Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201112190030_0003 2011-12-19 01:27:54,253 Stage-1 map = 0%, reduce = 0% 2011-12-19 01:28:06,828 Stage-1 map = 50%, reduce = 0% 2011-12-19 01:28:08,983 Stage-1 map = 100%, reduce = 0% 2011-12-19 01:28:25,878 Stage-1 map = 100%, reduce = 100% Ended Job = job_201112190030_0003 OK 0691331 北海道 夕張郡長沼町 銀座 3220052 栃木県 鹿沼市 銀座 3600032 埼玉県 熊谷市 銀座 3670052 埼玉県 本庄市 銀座 1040061 東京都 中央区 銀座 9300991 富山県 富山市 新庄銀座 3940022 長野県 岡谷市 銀座 3940023 長野県 岡谷市 東銀座 3950031 長野県 飯田市 銀座 4130013 静岡県 熱海市 銀座町 4240817 静岡県 静岡市清水区 銀座 4140028 静岡県 伊東市 銀座元町 4750874 愛知県 半田市 銀座本町 4480845 愛知県 刈谷市 銀座 5220088 滋賀県 彦根市 銀座町 6128089 京都府 京都市伏見区 銀座町 7450032 山口県 周南市 銀座 7450033 山口県 周南市 みなみ銀座 7700916 徳島県 徳島市 銀座 8040076 福岡県 北九州市戸畑区 銀座 Time taken: 43.692 secondsSELECT結果をINSERT
- 結果を格納するテーブルの定義
hive> CREATE TABLE ginza_zip (zip STRING, pref INT, city STRING, town STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; OK Time taken: 0.175 seconds
- SELECT結果を格納
hive> FROM zip z INSERT OVERWRITE TABLE ginza_zip SELECT z.zip, z.pref, z.city, z.town WHERE z.ver = '2008-12-26' AND z.town REGEXP '銀座'; Total MapReduce jobs = 2 Launching Job 1 out of 2 Number of reduce tasks is set to 0 since there's no reduce operator Starting Job = job_201112190030_0004, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201112190030_0004 Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201112190030_0004 2011-12-19 01:36:02,015 Stage-1 map = 0%, reduce = 0% 2011-12-19 01:36:09,245 Stage-1 map = 100%, reduce = 0% 2011-12-19 01:36:12,383 Stage-1 map = 100%, reduce = 100% Ended Job = job_201112190030_0004 Ended Job = -346086037, job is filtered out (removed at runtime). Moving data to: hdfs://localhost/tmp/hive-yuta/hive_2011-12-19_01-35-54_464_2238504209915921606/-ext-10000 Loading data to table default.ginza_zip Deleted hdfs://localhost/user/hive/warehouse/ginza_zip Table default.ginza_zip stats: [num_partitions: 0, num_files: 1, num_rows: 0, total_size: 636] 20 Rows loaded to ginza_zip OK Time taken: 18.43 seconds
- データの確認
hive> SELECT g.* FROM ginza_zip g; OK 0691331 1 夕張郡長沼町 銀座 3220052 9 鹿沼市 銀座 3600032 11 熊谷市 銀座 3670052 11 本庄市 銀座 1040061 13 中央区 銀座 9300991 16 富山市 新庄銀座 3940022 20 岡谷市 銀座 3940023 20 岡谷市 東銀座 3950031 20 飯田市 銀座 4240817 22 静岡市清水区 銀座 4130013 22 熱海市 銀座町 4140028 22 伊東市 銀座元町 4750874 23 半田市 銀座本町 4480845 23 刈谷市 銀座 5220088 25 彦根市 銀座町 6128089 26 京都市伏見区 銀座町 7450032 35 周南市 銀座 7450033 35 周南市 みなみ銀座 7700916 36 徳島市 銀座 8040076 40 北九州市戸畑区 銀座 Time taken: 0.257 secondsHDFSに結果を保存
- HDFSに保存
hive> FROM zip z INSERT OVERWRITE DIRECTORY '/user/yuta/ginza' SELECT z.zip, z.pref, z.city, z.town WHERE z.ver = '2008-12-26' AND z.town REGEXP '銀座'; Total MapReduce jobs = 2 Launching Job 1 out of 2 Number of reduce tasks is set to 0 since there's no reduce operator Starting Job = job_201112190030_0005, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201112190030_0005 Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201112190030_0005 2011-12-19 01:45:36,429 Stage-1 map = 0%, reduce = 0% 2011-12-19 01:45:43,743 Stage-1 map = 100%, reduce = 0% 2011-12-19 01:45:47,863 Stage-1 map = 100%, reduce = 100% Ended Job = job_201112190030_0005 Ended Job = 897426408, job is filtered out (removed at runtime). Moving data to: hdfs://localhost/tmp/hive-yuta/hive_2011-12-19_01-45-24_734_5088617359163695965/-ext-10000 Moving data to: /user/yuta/ginza 20 Rows loaded to /user/yuta/ginza OK Time taken: 23.314 seconds
- HDFS上の結果を確認
$ hdfs -ls /user/yuta/ginza Found 1 items -rw-r--r-- 1 yuta supergroup 636 2011-12-19 01:45 /user/yuta/ginza/000000_0 $ hdfs -cat /user/yuta/ginza/000000_0 06913311夕張郡長沼町銀座 32200529鹿沼市銀座 360003211熊谷市銀座 367005211本庄市銀座 104006113中央区銀座 930099116富山市新庄銀座 394002220岡谷市銀座 394002320岡谷市東銀座 395003120飯田市銀座 424081722静岡市清水区銀座 413001322熱海市銀座町 414002822伊東市銀座元町 475087423半田市銀座本町 448084523刈谷市銀座 522008825彦根市銀座町 612808926京都市伏見区銀座町 745003235周南市銀座 745003335周南市みなみ銀座 770091636徳島市銀座 804007640北九州市戸畑区銀座ローカルファイルとして保存
- ローカルファイルに保存
hive> FROM zip z INSERT OVERWRITE LOCAL DIRECTORY '/home/yuta/work/dev/hadoop/hive/localfiles/ginza' SELECT z.zip, z.pref, z.city, z.town WHERE z.ver = '2008-12-26' AND z.town REGEXP '銀座'; Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 since there's no reduce operator Starting Job = job_201112190030_0006, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201112190030_0006 Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201112190030_0006 2011-12-19 01:51:56,101 Stage-1 map = 0%, reduce = 0% 2011-12-19 01:52:03,369 Stage-1 map = 100%, reduce = 0% 2011-12-19 01:52:08,816 Stage-1 map = 100%, reduce = 100% Ended Job = job_201112190030_0006 Copying data to local directory /home/yuta/work/dev/hadoop/hive/localfiles/ginza Copying data to local directory /home/yuta/work/dev/hadoop/hive/localfiles/ginza 20 Rows loaded to /home/yuta/work/dev/hadoop/hive/localfiles/ginza OK Time taken: 19.987 seconds
- 保存したファイルの確認
$ cat /home/yuta/work/dev/hadoop/hive/localfiles/ginza/000000_0 06913311夕張郡長沼町銀座 32200529鹿沼市銀座 360003211熊谷市銀座 367005211本庄市銀座 104006113中央区銀座 930099116富山市新庄銀座 394002220岡谷市銀座 394002320岡谷市東銀座 395003120飯田市銀座 424081722静岡市清水区銀座 413001322熱海市銀座町 414002822伊東市銀座元町 475087423半田市銀座本町 448084523刈谷市銀座 522008825彦根市銀座町 612808926京都市伏見区銀座町 745003235周南市銀座 745003335周南市みなみ銀座 770091636徳島市銀座 804007640北九州市戸畑区銀座