SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Cloudera Quick Start VM」を活用したビッグデータ分析の学習環境構築

フリーのVM環境を使って、ビッグデータ分析の学習環境をすばやく構築する

「Cloudera Quick Start VM」を活用したビッグデータ分析の学習環境構築 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

チュートリアルの概要

 このチュートリアルでは、ある企業の注文データやサイトへのアクセスログなどをもとに、売上を分析したり、バスケット分析を行ったりします。

 シナリオの詳細は(英語ですが)原文をご覧ください。ただし、読まなくてもチュートリアルを行うことはできます。

チュートリアル1:Sqoopを使って、MySQLからデータをHadoopにインポートする

 まず、DBに収められているマスターデータをHadoopに投入します。以下のコマンドを実行してください。

$ sqoop import-all-tables \
 -m 1 \
 --connect jdbc:mysql://quickstart.cloudera:3306/retail_db \
 --username=retail_dba \
 --password=cloudera \
 --compression-codec=snappy \
 --as-avrodatafile \
 --warehouse-dir=/user/hive/warehouse

 以下のコマンドで、データが正しくインポートされたことを確認できます。

$ hdfs dfs -ls /user/hive/warehouse
$ hdfs dfs -ls /user/hive/warehouse/categories/

 ローカルディレクトリの/home/clouderaには、*.avscという拡張子のファイルがいくつかあります。これは、Avroというファイルフォーマットのスキーマ定義ファイルですが、今は詳細を理解しなくても大丈夫です。

 このデータをすべてHadoop上にロードします。

$ sudo -u hdfs hdfs dfs -mkdir /user/examples
$ sudo -u hdfs hdfs dfs -chmod +rw /user/examples
$ hdfs dfs -copyFromLocal ~/*.avsc /user/examples/

 次に、このスキーマ定義ファイルをもとに、Hive上でテーブルを作成します。まず、HiveServer2にアクセスします。

$ beeline -u jdbc:hive2://localhost:10000 -n cloudera -p cloudera -d org.apache.hive.jdbc.HiveDriver

 次に、以下のクエリをコピー&ペーストしてテーブルを作成していきます。

CREATE EXTERNAL TABLE categories
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/categories'
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_categories.avsc');

CREATE EXTERNAL TABLE customers
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/customers'
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_customers.avsc');

CREATE EXTERNAL TABLE departments
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/departments'
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_departments.avsc');

CREATE EXTERNAL TABLE orders
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/orders'
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_orders.avsc');

CREATE EXTERNAL TABLE order_items
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/order_items'
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_order_items.avsc');

CREATE EXTERNAL TABLE products
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/products'
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_products.avsc');

 上記のクエリの詳細は『プログラミングHive』のp.229を参照してください。

 クエリをすべて実行したら、以下のコマンドを使って正常にテーブルが作成されたかどうかを確認します。

show tables;

 確認が終わったら、hiveを終了します。

!quit

 いかがでしたか?

 次回は、Impalaを使用して投入したデータを高速に分析し、Hiveを使用してアクセスログの分析を行います。お楽しみに!

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
「Cloudera Quick Start VM」を活用したビッグデータ分析の学習環境構築連載記事一覧

もっと読む

この記事の著者

嶋内 翔(Cloudera株式会社)(シマウチ ショウ)

2011年、Clouderaの最初の日本人社員として入社。サポートエンジニアとして3年務めた後、セールスエンジニアとして働いている。監訳書に「Apache Sqoop クックブック」。ライフワークで技術系ポッドキャスティング garsue.fm のファシリテーターを務めている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8560 2015/04/24 15:18

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング