LoginSignup
9
9

More than 5 years have passed since last update.

beelineを利用可能な簡易hiveserver2をdockerでさくっと作成してみる

Posted at

とりあえず試してみたい方は3以降を実施していただければと思います。

1. やりたいこと

beelineを触って、hiveクエリの練習をしたいと考えていました。

ただ、docker hubを漁ってみたけれども、お手軽そうなものが見当たらなかったので、下記の方のblog等を参考にdockerのイメージを作成してみました。

2. hiveを実行可能なイメージを作成

以下のDockerfileをご覧いただければと思います。

ハマったポイントがあり、簡易ながらも共有します。

  1. apt-get install hive-server2 zookeeperをしても、/usr/lib/hive/lib/zookeeper.jarが生成されない。(正確には存在しないsymlinkが生成される。。)で、hive-server2を起動するとClassNotFoundExceptionが発生しました。。私は、jaistからバイナリ配布のzookeeper-3.4.6のtar.gzをダウンロードしてそこからjarを取得しました。
  2. apt-get install zookeeper-serverがこける。cdhさんのチュートリアルが間違っているような気がしました。。
  3. hive-site.xmlで、hive.support.concurrencyのtrue/falseでクエリ実行速度がだいぶ違う。ここはお試しいただければと。(現在、内部動作等については確認中です)

3. docker-composeを利用して、コンテナを起動する

以下にdocker-composeを格納しました。

起動方法は、ymlファイルの存在するディレクトリに移動して、

docker-compose -f docker-compose.yml up -d

となります。

4. docker execを利用してコンテナに入り、beelineを試してみる

  • docker exec でコンテナにはいる(コンテナ名は事前にお調べください)
docker exec -it ${container_name} /bin/bash
  • beelineコンソールに入る
beeline
  • localhostのhiveに接続して、テーブル作成、テーブル一覧表示を実行する
!connect jdbc:hive2://localhost:10000 hive hive org.apache.hive.jdbc.HiveDriver

-- dummy table作成し、1レコード追加
create table dual (dummy string);
insert into table dual select count(*) from dual;

-- sample table作成し、データ登録が実施できるか確認してみる
create table sample (key string);
insert into sample select key from sample;

show tables;
  • 一部の標準出力結果など
0: jdbc:hive2://localhost:10000> show tables;
+-----------+--+
| tab_name  |
+-----------+--+
| dual      |
| sample    |
+-----------+--+

0: jdbc:hive2://localhost:10000> select * from sample;
+-------------+--+
| sample.key  |
+-------------+--+
| 1           |
+-------------+--+
1 row selected (0.06 seconds)

ちょっと不明点が多いので、休日中に調べつつ、hive自体のクエリキャッチアップも進めていくことにします。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9