1. 程式人生 > >apache-hive-1.2.2安裝教程

apache-hive-1.2.2安裝教程

1、安裝前提

1、hadoop叢集(偽分散式也可以)
2、mysql資料庫

這裡假設hadoop叢集和mysql資料庫都安裝好了。

2、配置mysql資料庫

1、建立hive元資料存放庫

mysql> create database hivemeta character set = latin1;
Query OK, 1 row affected (0.00 sec)

2、建立hive資料庫使用者

mysql> grant all on hivemeta.* to [email protected]'%' identified by 'hiveuser';
Query OK, 0
rows affected (0.00 sec) mysql> grant all on hivemeta.* to [email protected]'localhost' identified by 'hiveuser'; Query OK, 0 rows affected (0.00 sec) mysql> grant all on hivemeta.* to [email protected]'hbaselx' identified by 'hiveuser'; Query OK, 0 rows affected (0.05 sec) mysql> use mysql; Database changed mysql> select
user,host,password from user where user='hiveuser'; +----------+-----------+-------------------------------------------+ | user | host | password | +----------+-----------+-------------------------------------------+ | hiveuser | % | *9B0A19544652EC0C7748682AB93554C85080C326 | | hiveuser | localhost | *9
B0A19544652EC0C7748682AB93554C85080C326 | +----------+-----------+-------------------------------------------+ 2 rows in set (0.00 sec) mysql> exit Bye [[email protected] ~]$ mysql -uhiveuser -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 5.1.71 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

3、配置hive

1、解壓

[[email protected] ~]$ ls
apache-hive-1.2.2-bin.tar.gz  app  hadoop-2.6.5.tar.gz  jdk-8u172-linux-x64.tar.gz
[[email protected] ~]$ tar -zxvf apache-hive-1.2.2-bin.tar.gz -C app

2、複製配置檔案

[[email protected] ~]$ cd app
[[email protected] app]$ ls
apache-hive-1.2.2-bin  hadoop-2.6.5  jdk1.8.0_172
[[email protected] app]$ cd apache-hive-1.2.2-bin/conf
[[email protected] conf]$ ls
beeline-log4j.properties.template  hive-env.sh.template                 hive-log4j.properties.template
hive-default.xml.template          hive-exec-log4j.properties.template  ivysettings.xml
[[email protected] conf]$ cp hive-default.xml.template hive-site.xml
[[email protected] conf]$ cp hive-env.sh.template hive-env.sh
[[email protected] conf]$ cp hive-log4j.properties.template hive-log4j.properties
[[email protected] conf]$ cp  hive-exec-log4j.properties.template  hive-exec-log4j.properties
[[email protected] conf]$ 

3、在hdfs上建立hive需要的目錄

[[email protected] conf]$ hdfs dfs -mkdir -p /hive/warehouse
18/06/14 10:54:21 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[[email protected] conf]$ hdfs dfs -mkdir -p /hive/log
18/06/14 10:54:28 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[[email protected] conf]$ hdfs dfs -mkdir -p /hive/tmp
18/06/14 10:54:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[[email protected] conf]$ 
[[email protected] apache-hive-1.2.2-bin]$ hdfs dfs -chmod -R 777 /hive

4、在本地建立如下目錄

[hadoop@hbaselx apache-hive-1.2.2-bin]$ mkdir log
[hadoop@hbaselx apache-hive-1.2.2-bin]$ mkdir exec
[hadoop@hbaselx apache-hive-1.2.2-bin]$ mkdir downloadedsource

5、配置hive-site.xml
hive-site.xml檔案裡配置項很多,我們只需要修改下面這些即可。

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hiveuser</value>
    <description>Username to use against metastore database</description>
</property>

 <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hiveuser</value>
    <description>password to use against metastore database</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.16.66:3306/hivemeta</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>

   <property>
    <name>hive.metastore.uris</name>
    <value/>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>  
  </property>

  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/hive/warehouse</value>   //hive資料檔案在hdfs上存放目錄
    <description>location of default database for the warehouse</description>
  </property>

    <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/home/hadoop/app/apache-hive-1.2.2-bin/exec</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

    <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/home/hadoop/app/apache-hive-1.2.2-bin/downloadedsource</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

6、配置hive-exec-log4j.properties和hive-log4j.properties
修改hive.log.dir為:

hive.log.dir=/home/hadoop/app/apache-hive-1.2.2-bin/log

7、拷貝mysql連線驅動包到${HIVE_HOME}/lib

[hadoop@hbaselx ~]$ cp mysql-connector-java-5.1.38.jar app/apache-hive-1.2.2-bin/lib

4、啟動hive metastore服務

[hadoop@hbaselx bin]$ ./hive --service metastore &
[1] 25981
[hadoop@hbaselx bin]$ Starting Hive Metastore Server

[hadoop@hbaselx bin]$ 

5、啟動 hive cli

[[email protected] bin]$ ./hive

Logging initialized using configuration in file:/home/hadoop/app/apache-hive-1.2.2-bin/conf/hive-log4j.properties
hive> create table t1
    > (id int,
    > name string);
OK
Time taken: 1.665 seconds
hive> show tables;
OK
t1
Time taken: 0.236 seconds, Fetched: 1 row(s)
hive> select * from t1;
OK
Time taken: 0.672 seconds

安裝hive遇到的問題

問題1:

[[email protected] bin]$ ./hive

Logging initialized using configuration in file:/home/hadoop/app/apache-hive-1.2.2-bin/conf/hive-log4j.properties
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
        at jline.TerminalFactory.create(TerminalFactory.java:101)
        at jline.TerminalFactory.get(TerminalFactory.java:158)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
        at org.apache.hadoop.hive.cli.CliDriver.setupConsoleReader(CliDriver.java:787)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:721)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:230)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
        at org.apache.hadoop.hive.cli.CliDriver.setupConsoleReader(CliDriver.java:787)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:721)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

解決方式:
把 ${HADOOP_HOME}/share/hadoop/yarn/lib/的 jline 刪了,換成hive自帶的2.12版本的

rm ${HADOOP_HOME}/share/hadoop/yarn/lib/jline-0.9.94.jar
cp ${HIVE_HOME}/lib/jline-2.12.jar ${HADOOP_HOME}/share/hadoop/yarn/lib/

問題2:

[[email protected] bin]$ ./hive

Logging initialized using configuration in file:/home/hadoop/app/apache-hive-1.2.2-bin/conf/hive-log4j.properties
hive> create table t1(
    > id int,
    > name string
    > );
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:For direct MetaStore DB connections, we don't support retries at the client level.)

解決方式:
資料庫的字符集不對,應該是latin1。

mysql> show create database hivemeta\G
*************************** 1. row ***************************
       Database: hivemeta
Create Database: CREATE DATABASE `hivemeta` /*!40100 DEFAULT CHARACTER SET utf8 */
1 row in set (0.00 sec)

mysql> drop database hivemeta;
Query OK, 22 rows affected (0.16 sec)

mysql> create database hivemeta;
Query OK, 1 row affected (0.00 sec)

mysql> show create database hivemeta\G
*************************** 1. row ***************************
       Database: hivemeta
Create Database: CREATE DATABASE `hivemeta` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)

然後重新啟動metastore服務即可。

相關推薦

apache-hive-1.2.2安裝教程

1、安裝前提 1、hadoop叢集(偽分散式也可以) 2、mysql資料庫 這裡假設hadoop叢集和mysql資料庫都安裝好了。 2、配置mysql資料庫 1、建立hive元資料存放庫 mysql> create database hiv

apache-hive-1.2.1-bin 安裝

apache-hive-1.2.1-bin 安裝 更多資源:https://github.com/opensourceteams 技能標籤 下載apache hive 安裝包 進行apache-hive-1.2.1-bin.tar.gz安裝 配置mysql儲存

【轉載】Hadoop 2.7.3 和Hbase 1.2.4安裝教程

啟動 運行 property new rop net 文本文 .tar.gz cor 轉載地址:http://blog.csdn.net/napoay/article/details/54136398 目錄(?)[+] 一、機器環境

apache-hive-1.2.1和hbase-1.2.2的整合(偽分散式)

我的機器環境: hadoop2.6.0 的偽分散式  Hbase偽分散式環境 參考:hbase權威指南P240 1.啟動hadoop和hbase  2.下載apache-hive-1.2.1 3.修改hive中conf下的hive-env.sh # Set HADOOP_H

Linux學習筆記4-CentOS7中redis3.2.9安裝教程

錯誤 img make .gz 需要 down images red pre redis下載地址:http://www.redis.cn/download.html 1、將下載過來的redis-3.2.9.tar.gz文件復制到/usr/local文件夾下 2、tar x

zookeeper3.4.5+Hbase1.2.6安裝教程

使用 4.5 命令 保持 2.6 完成後 epp 進入 查看進程 說明:在安裝zookeeper+Hbase之前,我們應該已經將hadoop集群搭建好了(三個節點),並且驗證啟動成功。因為HBase是一種構建在HDFS之上的分布式、面向列的存儲系*統。 zookeeper安

Windows下Redis3.2.10安裝教程

oct ria sde ase filename 網站 nat lan x64 1、下載地址; GitHub地址:https://github-production-release-asset-2e65be.s3.amazonaws.com/3402186/bb1d10fc

erdas9.2破解安裝教程

1、 首先,開啟erdas安裝包,雙擊【setup.exe】(如圖),進行程式的安裝!程式雙擊後進行解壓。。。 2、 解壓完成後進入安裝步驟:前面的步驟和一般都的軟體步驟類似,點選next,同意協議繼續下一步next,到更改安裝目錄的階段 3、 在這裡改軟體安裝路徑,

ubuntu16.04 + opencv3.2.0 安裝教程

0、安裝前準備: (1)安裝編譯工具 sudo apt-get install build-essential -y (2)安裝依賴包 sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-d

Hive1.2.2詳細安裝教程

Hive是Hadoop組態中的資料倉庫,本質是將sql語句轉換為MapReduce任務,所以Hive只是一個解析引擎,它的資料儲存在hdfs上,元資料資訊依託mysql資料庫。在這裡有一個小問題,為什麼需要mysql關係資料庫,因為hdfs儲存的只是資料資訊,而建表的時候是需要列名來查詢的,因此要用

最新版spark-2.2.0安裝教程

1.jdk的安裝;(java1.8) 2.hadoop安裝;(hadoop2.7.2) 3.scala安裝;(scala2.11.8) 4.spark安裝。(spark2.2.0) 0.環境:mac OS X 10.12 1.jdk的安裝:安裝java

hive部署安裝apache-hive-1.1.0)

http://blog.csdn.net/an342647823/article/details/46048403 以下操作在hdpsrc3 節點上操作 一,下載安裝包 1,下載hive http://mirrors.hust.edu.cn/apache/   得到

hadoop入門第七步---hive部署安裝apache-hive-1.1.0)

以下操作在hdpsrc3 節點上操作 一,下載安裝包 1,下載hive http://mirrors.hust.edu.cn/apache/   得到apache-hive-1.1.0.tar.gz  ,放到該目錄下 /home/hdpsrc/  mysql-client

Kali 2.0 安裝教程

域名設置 操作 向導 中文 裝系統 無法啟動 命名 個人 重啟 本文適合KALI初學者,將詳細介紹Kali Linux 2.0的安裝過程。 首先我們到KALI的官網下載鏡像,大家可以自己選擇下載32或64位的KALI 2.0系統。   KALI 官網:https://

物聯網模擬 ns-allinone-2.35 安裝教程 ubuntu16.04下安裝 與使用

1. 首先 安裝一個虛擬機器 然後把Ubuntu裝進去 ubuntu16.04 官網地址https://www.ubuntu.com/download/server 2.下載ns-allinone-2.35 最好在官網下載  https://www.isi.edu/nsnam/ns/ns-build.htm

Apache Hive 基本理論與安裝指南

scratch 建表 username apach 而且 use res isp 自動 一、Hive的基本理論   Hive是在HDFS之上的架構,Hive中含有其自身的組件,解釋器、編譯器、執行器、優化器。解釋器用於對腳本進行解釋,編譯器是對高級語言代碼進行編譯,執行器

Hive/Hbase/Sqoop的安裝教程

啟動 get Coding 如果 path master 安裝教程 targe name Hive/Hbase/Sqoop的安裝教程 HIVE INSTALL 1.下載安裝包:https://mirrors.tuna.tsinghua.edu.cn/apache/hiv

1.kafka下載安裝教程以及中文手冊連結集錦

1.進入kafka官網進行下載,kafka官網路徑如下: http://kafka.apache.org/downloads.html 顯示介面如下所示: 我們進行下載已經編譯好的 下載下面已經編譯好了的 因為我的scala是2.12.7版本,因此下載的是2.12的k

mysql5.1.73編譯安裝教程-改進後的

mysql 5.1.73官方下載地址 http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz md5:887f869bcc757957067b9198f707f32f 1 md

Julia Pro 1.0 下載安裝教程

千呼萬喚的Julia Pro 1.0可以下載安裝了. JuliaPro版本相當於Anconda 之於 Python, Julia Pro有很多模組, 對於一些常規的模組都有包含, 不用手動下載, 更加方便. 所以我一直等到Julia Pro下線, 才將0.6版本