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

GCEのhadoopにhiveをインストールする、そうubuntuから。

More than 3 years have passed since last update.

Google compute engineのhadoopにhiveをインストールします

GCEのhadoopにhiveをインストールする方法を色々検索したけど情報が少なすぎてまとめることにしました。

公式っぽいドキュメントとしては下記のものがあります。
基本その通りに実施すれば実行できるようになるのですが、ドキュメントがあまりにも不親切というか分かりにくいというか・・・。

https://github.com/GoogleCloudPlatform/solutions-apache-hive-and-pig-on-google-compute-engine

  • 事前にgcloudでの接続が可能な設定を行っておきます。
  • 基本的に作業はubuntuのtermで行います。(readmeにはこれが抜けている)
  • 事前にhadoopのvmを作成しておきます。
  • gsutil と gcutil コマンドがubuntuで実行できることを確認しておく。

本当に必要かわからんがやっておく

readmeに書いてあるのでとりあえず下記を実行しておく。

プロジェクトのセット

gcloud config set project <project ID>

project IDは、GCPで作成済みのはずです。
image

バケットの作成

これもreadmeに書いてるけど、

gsutil mb gs://<bucket name>

バケットが作成済みの場合もあります。
バケット名は、[ストレージ][cloud Storage][ストレージ ブラウザ]を開くとみれます。
image

image

パッケージのダウンロード

このセクションも説明不足すぎてわかりにくい。
ダウンロード先は実行するユーザのhomeで問題ない。

$ wget https://github.com/GoogleCloudPlatform/solutions-apache-hive-and-pig-on-google-compute-engine/archive/master.zip
$ unzip master.zip

Hive パッケージのセットアップ

上記でunzipしたフォルダ(solutions-apache-hive-and-pig-on-google-compute-engine-master)に移動する。
この位置をreadmeではサンプルアプリケーションルートディレクトリと呼んでいる。(root directory of the sample application.)
このフォルダの下で以下のコマンドを実行する。

$ mkdir -p packages/hive

作成packages/hive下にhiveをダウンロードする。自分は、hive-0.12.0.tar.gzにしました。

$ cd packages/hive
$ wget http://archive.apache.org/dist/hive/hive-0.12.0/hive-0.12.0.tar.gz

project_properties.shの編集

サンプルアプリケーションルートディレクトリにあるproject_properties.shを編集します。
編集する項目は以下の4つです。
各項目を自分の環境に合わせて書き直します。

readonly GCS_PACKAGE_BUCKET=myproject-bucket
readonly ZONE=us-central1-a
readonly MASTER=myproject-hm
readonly HADOOP_HOME=/home/hadoop/hadoop-install

HADOOP_HOMEは自分の環境のhadoopではhadoop-insallだったので書き換えています。
分からない場合、gceのVM側でwhichしてみます。

$ which hadoop
/home/hadoop/hadoop-install/bin/hadoop

でbin以下がHADOOP_HOMEになります。

cloud storageにパッケージをプッシュ

サンプルアプリケーションルートディレクトリから以下のシェルを実行してパッケージをプッシュします。

$ ./scripts/packages-to-gcs_at_host.sh

インストール実行

サンプルアプリケーションルートディレクトリから以下のシェルを実行してインストールを実行します。

$ ./scripts/install-packages-on-master_at_host.sh

成功すればGCE側にhdpuserが作成されます。

確認

ここからreadmeと若干異なります。
また、ここからはGCEにgcloudで接続してhadoop vm上での実行です。

sudo sudo -i -u hdpuser

hiveの起動

$ hive

起動時に以下のメッセージが出る場合、HADOOP_HOMEかHADOOP_PREFIXが正しくhadoopのインストールディレクトリを指していないことが原因です。

Cannot find hadoop installation: \$HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path

環境変数を確認してください。
自分の環境では、最初に

HADOOP_PREFIX=/home/hadoop/hadoop

となっていましたので、

HADOOP_PREFIX=/home/hadoop/hadoop-install

と修正しています。
project_properties.shの内容が正しく設定されていれば問題ないと思うので、project_properties.shを修正してセットアップをし直すのもいいかもしれません。

hiveが起動したらプロンプトがこんな感じに。

hive>

下記のテーブルを作成します。(readmeのままです)

CREATE TABLE passwd (
user STRING,
dummy STRING,
uid INT,
gid INT,
name STRING,
home STRING,
shell STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ':'
STORED AS TEXTFILE;

次にデータをロードします。

hive|>LOAD DATA LOCAL INPATH '/etc/passwd' OVERWRITE INTO TABLE passwd;

readmeではgsからロードになっていますが、まだ上手くいっていないので直接ロードします。

ロードできたらselectしてみます。

hive> select * from passwd;
OK
root    x   0   0   root    /root   /bin/bash
daemon  x   1   1   daemon  /usr/sbin   /bin/sh
bin x   2   2   bin /bin    /bin/sh
sys x   3   3   sys /dev    /bin/sh
sync    x   4   65534   sync    /bin    /bin/sync
games   x   5   60  games   /usr/games  /bin/sh
man x   6   12  man /var/cache/man  /bin/sh
lp  x   7   7   lp  /var/spool/lpd  /bin/sh
mail    x   8   8   mail    /var/mail   /bin/sh
news    x   9   9   news    /var/spool/news /bin/sh
uucp    x   10  10  uucp    /var/spool/uucp /bin/sh
proxy   x   13  13  proxy   /bin    /bin/sh
www-data    x   33  33  www-data    /var/www    /bin/sh
backup  x   34  34  backup  /var/backups    /bin/sh
list    x   38  38  Mailing List Manager    /var/list   /bin/sh
irc x   39  39  ircd    /var/run/ircd   /bin/sh
gnats   x   41  41  Gnats Bug-Reporting System (admin)  /var/lib/gnats  /bin/sh
nobody  x   65534   65534   nobody  /nonexistent    /bin/sh
libuuid x   100 101     /var/lib/libuuid    /bin/sh
ntp x   101 103     /home/ntp   /bin/false
sshd    x   102 65534       /var/run/sshd   /usr/sbin/nologin
messagebus  x   103 105     /var/run/dbus   /bin/false
hadoop  x   500 500     /home/hadoop    /bin/bash
hdpuser x   1002    500     /home/hdpuser   /bin/bash
Time taken: 10.486 seconds, Fetched: 26 row(s)
hive> 

どうやらselectできたようです。

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
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