MaxOS Hive 설치

MaxOS Hive 설치

참조

1. Install hive via brew. This will take some time

brew install hive

2. Add hadoop and hive to your path by editing your bash_profile

  • zshell사용자라면 .bash_profile대신 .zshrc
  • vi ~/.bash_profile
  • 아래 내용 추가 bash export HADOOP_HOME=/usr/local/Cellar/hadoop/hadoop.version.no export HIVE_HOME=/usr/local/Cellar/hive/hive.version.no/libexec
  • source ~/.bash_profile

3. Download the mysql connector

$ sudo cp mysql-connector-java-5.1.15/mysql-connector-java-5.1.22-bin.jar /usr/local/Cellar/hive/hive.version.no/libexec/lib/


## 4. Create the mysql metastore
-   아래 내용이 나와있는데 mysql을 사용하지 않을거라면 생략해도 무방한듯.
```bash
$ mysql
mysql> CREATE DATABASE metastore;
mysql> USE metastore;
mysql> CREATE USER 'hiveuser'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,ALTER,CREATE ON metastore.* TO 'hiveuser'@'localhost';

5. Copy the hive-default-xml template as hive-site.xml

$ cd /usr/local/Cellar/hive/{hive.version.no}/libexec/conf
$ cp hive-default.xml.template hive-site.xml

6. Add/Edit the following lines in your hive-site.xml

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost/metastore</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hiveuser</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>password</value>
</property>
<property>
  <name>datanucleus.fixedDatastore</name>
  <value>false</value>
</property>

7. Test if hive works

  • 여기까지가 흔히 나와있는 설치 가이드.
  • 아래처럼 hive입력시 잘 실행된다면 설치 성공. $ hive; hive >

8. Error Error Error

  • 가이드대로 따라하였으나 실행이 되지 않음.
  • 내가 겪은 문제들을 어떻게 해결하였는지 기록하고자 함.

8.1. Mysql관련 문제라면

  • 참조
  • #4에서 만든 계정이 아닌 root계정으로 아래 명령어를 실행 bash schematool -initSchema -dbType mysql -userName root -passWord {your-password} --verbose
  • localhost에서 작동하는거라면 port는 따로 적어주지 않아도 된다. 아래처럼 hive-site.xml에서 url뒤에 따로 port를 명시해주지 않아도 됨. xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore</value> </property>
  • 그냥 localhost만 적어줘도 된다. xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore</value> </property>

8.2. 경로 문제

  • 그래도 안된다면 경로문제일 수 있다.
  • The issue is Hadoop "Path" doesn't support ':' in filenames.
  • hfs-site.xml의 경로에 :가 들어가선 안된다는 뜻. 이 :를 제외해야함.
  • 참조