自分のキャリアをあれこれ考えながら、Pythonで様々なデータを分析していくブログです

[docker] cloudera quickstartを使ってhive環境を準備する方法

Database
Database

ヒノマルクです。BigQueryやHiveなどのデータをPythonで読み込んでいる方も多いと思います。

今回はHadoop環境をお手軽に試せるclouderaのquick startイメージを使ってhiveを実行できる環境を準備しようと思います。

スポンサーリンク

ClouderaとHortonworksについて

数年前(2015年とか2016年ごろ)はquickstartの仮想マシン用のイメージが用意されていたのですが、現在はClouderaとHortonwoksの合併の影響*1でダウンロードできなくなっているようです。

その代わり今はHortonworks sandbox*2というものが提供されているようです。

clouderaのquickstartのVMイメージはありませんが、dockerイメージは運良くcloudera ver5.7まで用意されていたのでこちらを利用しようと思います。

Docker

hortonworks sandboxのdockerイメージもあります。
公式サイトだとdockerコンテナ作成スクリプトも準備されていて、sandbox-hdpのイメージ*3を参照しているようです。

どちらでもよいのですが、ヒノマルクはhortonworksよりclouderaの方が慣れているので今回はclouderaの環境を用意しようと思います。

スポンサーリンク

Cloudera quickstartイメージのダウンロード

clouderaのquickstartイメージをダウンロード
docker pull cloudera/quickstart:latest
Out[0]
latest: Pulling from cloudera/quickstart
Image docker.io/cloudera/quickstart:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
1d00652ce734: Pull complete
Digest: sha256:f91bee4cdfa2c92ea3652929a22f729d4d13fc838b00f120e630f91c941acb63
Status: Downloaded newer image for cloudera/quickstart:latest
docker.io/cloudera/quickstart:latest
スポンサーリンク

cloudera quickstartのコンテナ起動

コンテナ作成
docker run -it \
--hostname=quickstart.cloudera \
--privileged=true \
-p 8888:8888 \
-p 7180:7180 \
cloudera/quickstart:latest /usr/bin/docker-quickstart
Out[0]
Starting mysqld:                                           [  OK  ]
・・・省略・・・
Starting hue:                                              [FAILED]
Started Impala State Store Server (statestored):           [  OK  ]
・・・省略・・・
Starting Solr server daemon:                               [  OK  ]

HUEがFAILEDになりますが、問題ないようです。

I get the same error, but note that HUE is running by connecting to the appropriate mapped port on my host. So I ignore the error.
出典: https://community.cloudera.com/t5/Support-Questions/Docker-Quickstart-Image-Issue-Starting-hue-FAILED/m-p/38146

hive以外のツールは使わないのでサービスをストップしようと思います。
(メモリの節約にもなるので 笑)

各サービスのステータス一覧を確認

[root@quickstart /]# service --status-all

どんなサービスがあるか確認

[root@quickstart /]# ls -l /etc/init.d/*

必要ないサービスをストップする

[root@quickstart /]# service impala-server stop
[root@quickstart /]# service impala-catalog stop
[root@quickstart /]# service impala-state-store stop
[root@quickstart /]# service solr-server stop
[root@quickstart /]# service sqoop2-server stop
[root@quickstart /]# service hbase-master stop
[root@quickstart /]# service hbase-regionserver stop
[root@quickstart /]# service hbase-rest stop
[root@quickstart /]# service hbase-thrift stop
[root@quickstart /]# service flume-ng-agent stop
[root@quickstart /]# service hbase-solr-indexer stop
[root@quickstart /]# service hbase-thrift stop
[root@quickstart /]# service sentry-store stop
[root@quickstart /]# service spark-history-server stop

最終的に下記のサービスが起動または停止している状態になりました。

各サービスのステータスを確認
[root@quickstart /]# service --status-all
Out[0]
Flume NG agent is not running                              [FAILED]
Hadoop datanode is running                                 [  OK  ]
Hadoop journalnode is running                              [  OK  ]
Hadoop namenode is running                                 [  OK  ]
Hadoop secondarynamenode is running                        [  OK  ]
Hadoop httpfs is running                                   [  OK  ]
Hadoop historyserver is running                            [  OK  ]
Hadoop nodemanager is running                              [  OK  ]
Hadoop proxyserver is not running                          [FAILED]
Hadoop resourcemanager is running                          [  OK  ]
HBase master daemon is not running                         [FAILED]
hbase-regionserver is not running.
HBase rest daemon is not running                           [FAILED]
HBase Solr Indexer is not running                          [FAILED]
HBase thrift daemon is not running                         [FAILED]
Hive Metastore is running                                  [  OK  ]
Hive Server2 is running                                    [  OK  ]
Impala Catalog Server is not running                       [FAILED]
Impala Server is not running                               [FAILED]
Impala State Store Server is not running                   [FAILED]
Sentry DB Store Service is not running                     [FAILED]
Solr server daemon agent is not running                    [FAILED]
Spark history-server is not running                        [FAILED]
Sqoop Server is not running                                [FAILED]

Hadoop proxyserver is not running [FAILED]

proxyserverがRUNNINGではありませんが、MapReduceを動かすのに問題なさそうなので一旦無視します。

The above output shows, that all the necessary hadoop services are up and running. The proxy service is not necessary to run for the following exercices.
出典: https://timhagmann.com/html/e63/hw6-hagmann-tim.html

スポンサーリンク

Hueにアクセスしてhiveが使えるかどうか確認する

HueはブラウザからHiveやImpalaなどのクエリをインタラクティブに実行できるツールです。ヒノマルクも職場で使っています。

Hueにアクセス

http://localhost:8888 をブラウザで開いた後、IDとパスワードを入力してログインする。
ユーザー名: cloudera
パスワード: cloudera

Query Editors → Hive を選択

エラーがでていますが、HbaseやImpalaのサービスを停止している影響なので問題ありません。

サンプルデータを作成

create table test (
 aaa string
)
;

insert into table test values ("hello");

select * from test;

テーブルの作成、データの挿入、挿入データの確認ができました。

スポンサーリンク

参照元

*1 https://community.cloudera.com/t5/Support-Questions/Cloudera-Quickstart-VM-Download/td-p/291225

*2 https://www.cloudera.com/downloads/hortonworks-sandbox.html

*3 https://hub.docker.com/r/hortonworks/sandbox-hdp

タイトルとURLをコピーしました