Hive実行環境(CentOS+Vagrant)


HiveQLの練習がてらローカルに環境構築してみました。

前提: mac

# VirtualBox

**OSX hosts**を選択。
[ここから](https://www.virtualbox.org/wiki/Downloads)ダウンロード


# Vagrant

```bash
$ brew cask install vagrant
```

実行できなかった場合は、以下を実行(caskをインストール)。

```bash
$ brew install caskroom/cask/brew-cask
```

# vagrantの起動&SSH

vagrantの起動は、**Vagrantfile**があるディレクトリで、以下を実行。
`vagrant up`するとけっこう時間がかかるかもしれません。
辛抱強く待ちましょう。

```bash
$ vagrant up
$ vagrant ssh
```



# パッケージをインストール

rootユーザーに切替〜！

```bash
$ sudo yum -y install openssh-clients rsync wget
```

# Javaをインストール

```bash
$ sudo yum -y install java-1.8.0-openjdk-devel
$ java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

$ export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
$ echo $JAVA_HOME
/usr/lib/jvm/jre-1.8.0-openjdk
```

# Hadoopをインストール&解凍

```bash
$ wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz
$ tar xf hadoop-2.8.1.tar.gz
$ cd hadoop-2.8.1
```

# Hadoop確認

```bash
$ bin/hadoop version
Hadoop 2.8.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 20fe5304904fc2f5a18053c389e43cd26f7a70fe
Compiled by vinodkv on 2017-06-02T06:14Z
Compiled with protoc 2.5.0
From source with checksum 60125541c2b3e266cbf3becc5bda666
This command was run using /home/vagrant/hadoop-2.8.1/share/hadoop/common/hadoop-common-2.8.1.jar
```

# Hadoopのパスを通す

```bash
$ export HADOOP_HOME=$HOME/hadoop-2.8.1
$ export PATH=$PATH:$HADOOP_HOME/bin

$ cd
$ hadoop version
Hadoop 2.8.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 20fe5304904fc2f5a18053c389e43cd26f7a70fe
Compiled by vinodkv on 2017-06-02T06:14Z
Compiled with protoc 2.5.0
From source with checksum 60125541c2b3e266cbf3becc5bda666
This command was run using /home/vagrant/hadoop-2.8.1/share/hadoop/common/hadoop-common-2.8.1.jar
```

# 設定ファイル

* etc/hadoop/core-site.xml

```xml
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
```

* etc/hadoop/hdfs-site.xml

```xml
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
```

* etc/hadoop/mapred-site.xml.template

```xml
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
```

* etc/hadoop/yarn-site.xml

```xml
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
```

# 起動

```
$ hadoop namenode -format
$ cd 
$ cd hadoop-2.8.1/sbin
$ ./start-dfs.sh
$ ./start-yarn.sh
```

# 起動の確認

```bash
$ jps
24049 Jps
18707 NodeManager
18135 DataNode
18281 SecondaryNameNode
18428 ResourceManager
22975 NameNode
```

# HBaseのインストール

```bash
$ wget http://ftp.jaist.ac.jp/pub/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
$ tar zxfv hbase-1.3.1-bin.tar.gz
```

# HBaseのパスを通す

```bash
export HBASE_HOME=/home/<name>/hbase-1.3.1
export PATH=$HBASE_HOME/bin:$PATH
```

# Hiveのインストール

```bash
$ wget http://ftp.riken.jp/net/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
$ tar -xzvf apache-hive-2.1.1-bin.tar.gz
$ mv apache-hive-2.1.1-bin /usr/hive-2.1.1
$ export HIVE_HOME=/usr/hive-2.1.1
$ export PATH=$PATH:$HIVE_HOME/bin
$ source /etc/bashrc
```

# 実行

起動されたら完了！

```bash
$ hive
```

# トラブルシューティング

* ユーザーを確認

`whoami`で現在のユーザーを確認。
`su`でrootのパスワードを入力して切替可能。

* 各wget http://xxxxxxxx

wgetしてくる.tar.gzは環境構築時によって有効でなくなっている場合があります。

* `hive`実行後のエラー

こちらを実行。

```bash
$ mv metastore_db metastore_db.tmp
$ schematool -initSchema -dbType derby
```

それでもうまくいかない場合は、[`起動`](https://qiita.com/O21/items/e2a63c87d951d34d21b3#%E8%B5%B7%E5%8B%95)を再実行。
参考URL：　https://qiita.com/hashimotom92/items/44fdced2b81846972a7d