ヒノマルクです。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まで用意されていたのでこちらを利用しようと思います。
hortonworks sandboxのdockerイメージもあります。
公式サイトだとdockerコンテナ作成スクリプトも準備されていて、sandbox-hdpのイメージ*3を参照しているようです。
どちらでもよいのですが、ヒノマルクはhortonworksよりclouderaの方が慣れているので今回はclouderaの環境を用意しようと思います。
Cloudera quickstartイメージのダウンロード
docker pull cloudera/quickstart:latest
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
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
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