Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

とりあえず試してみたい方は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自体のクエリキャッチアップも進めていくことにします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした