`

Hive-0.12.0-cdh5.0.1 安装[metasore 内嵌模式、本地模式、远程模式]

    博客分类:
  • Hive
阅读更多

概述:

      基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计.

组成:

(1)用户接口:主要是cli , beeline , hiveserver2 client(thrift客户端);用于接受用户任务。

(2)元数据存储:表结构和元数据存储于关系型数据库中,客户端通过访问metastore 服务获取元数据。

(3)解释器、编译器、优化器、执行器:HQL转换为作业。

(4)Hadoop:数据存储与HDFS中,查询操作转换成MapReduce作业。

安装:

       Hive的安装主要区别在于元数据存储位置,针对不同的元数据存储,分为如下情况:

 

一 Metastore 内嵌模式(embeded)



 

说明:

     本模式使用Derby 服务器存储,能提供单进程存储服务,无法启动多个客户端(注:测试cli不能启动多个,但是使用hiveserver2可以使用多个beeline开多个会话访问),多用户时并发访问,不适合使用

 

     Derby默认会在调用 hive 命令所在目录metastore_db持久化元数据,建议修改。

 

准备:

     Hadoop 安装 (略),本次使用的是Hadoop伪分布式模式,保证有如下进程:

  • namenode 
  • datanode
  • resourcemanager
  • nodemanager

安装:

1)解压:tar -xvf hive-0.12.0-cdh5.0.1.tar.gz

2)配置环境变量:vi ~/.bashrc

#Hive
export HIVE_HOME=/home/zero/hive/hive-0.12.0-cdh5.0.1
export PATH=$PATH:$HIVE_HOME/bin

 source ~/.bashrc

3)修改配置文件:

(1)修改hive-env.sh 指定hadoop 位置

cp hive-env.sh.template hive-env.sh

vi hive-env.sh

# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/zero/hadoop/hadoop-2.3.0-cdh5.0.1

 (2)修改hive-site.xml指定仓库目录,元数据存储目录等:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
     <property>
          <!--hive仓库地址,会使用hadoop的fs.default.name指定的模式存储数据,这里相当于hdfs://mycluster/user/hive/warehouse -->
          <name>hive.metastore.warehouse.dir</name>
          <value>/user/hive/warehouse</value>
     </property>
     <property>
          <!--改属性代替hive.metastore.local为空表示嵌入模式或本地模式,否则为远程模式 -->
          <name>hive.metastore.uris</name>
          <value></value>
     </property>
     <property>
          <!--JDBC URL 使用derby时可以指定metastroe存储位置,否则默认相对与命令路径 -->
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:derby:;databaseName=/home/zero/hive/hive-0.12.0-cdh5.0.1/metastore_db;create=true</value>
     </property>
     <!-- ================================================================== -->
     <!-- HiveServer2 使用的基于Zookeeper的表锁管理器 -->
     <property>
          <name>hive.support.concurrency</name>
          <description>Enable Hive's Table Lock Manager Service</description>
          <value>true</value>
     </property>
     <!--zookeeper 指定,使用默认端口 -->
     <property>
          <name>hive.zookeeper.quorum</name>
          <value>CentOS-StandAlone</value>
     </property>
     <!--zookeeper 端口指定 -->
     <property>
          <name>hive.zookeeper.client.port</name>
          <value>2181</value>
     </property>
</configuration>

 (3)修改 hive-log4j.properties 指定日志输出路径

cp hive-log4j.properties.template hive-log4j.properties

hive.root.logger=info,DRFA
hive.log.dir=/home/zero/hive/hive-0.12.0-cdh5.0.1/logs

  4)启动cli服务

------------------------------------------------------------------------------------------------------

 [zero@CentOS-StandAlone conf]$ hive

......

hive> create table test (id int);

OK

Time taken: 0.419 seconds

hive> show tables;

OK

test

Time taken: 0.064 seconds, Fetched: 1 row(s)

------------------------------------------------------------------------------------------------------

注:cli服务只能有一个会话使用,另启动一个会话会出现连接不上metastore错误

------------------------------------------------------------------------------------------------------

[zero@CentOS-StandAlone ~]$ hive

......

hive> show tables;

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

hive> 

------------------------------------------------------------------------------------------------------

 5)使用beeline

(1)后台启动hiveserver2:nohup hive --service hiveserver2 &

------------------------------------------------------------------------------------------------------

[zero@CentOS-StandAlone ~]$ nohup hive --service hiveserver2 &

[1] 28026

[zero@CentOS-StandAlone ~]$ nohup: ignoring input and appending output to `nohup.out'

^C

[zero@CentOS-StandAlone ~]$ jps -lm

28096 sun.tools.jps.Jps -lm

28026 org.apache.hadoop.util.RunJar /home/zero/hive/hive-0.12.0-cdh5.0.1/lib/hive-service-0.12.0-cdh5.0.1.jar org.apache.hive.service.server.HiveServer2

10594 org.apache.zookeeper.server.quorum.QuorumPeerMain /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfg

4835 org.apache.hadoop.hdfs.server.namenode.NameNode

5239 org.apache.hadoop.yarn.server.nodemanager.NodeManager

5010 org.apache.hadoop.yarn.server.resourcemanager.ResourceManager

4889 org.apache.hadoop.hdfs.server.datanode.DataNode

 

------------------------------------------------------------------------------------------------------

注:beeline依赖hiveserver2提供的thirft服务,必须启动

       hiveserver2默认提供端口为1000

(2)启动beeline:

------------------------------------------------------------------------------------------------------

[zero@CentOS-StandAlone conf]$ beeline

Beeline version 0.12.0-cdh5.0.1 by Apache Hive

beeline> !connect jdbc:hive2://localhost:10000

scan complete in 6ms

Connecting to jdbc:hive2://localhost:10000

Enter username for jdbc:hive2://localhost:10000: zero   注这里要写hadoop的用户,否则连接上没有hdfs操作权限,密码没有直接回车即可。

Enter password for jdbc:hive2://localhost:10000: 

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/home/zero/hadoop/hadoop-2.3.0-cdh5.0.1/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/home/zero/hive/hive-0.12.0-cdh5.0.1/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

Connected to: Apache Hive (version 0.12.0-cdh5.0.1)

Driver: Hive JDBC (version 0.12.0-cdh5.0.1)

Transaction isolation: TRANSACTION_REPEATABLE_READ

0: jdbc:hive2://localhost:10000> show tables;

+-----------+

| tab_name  |

+-----------+

| test      |

+-----------+

1 row selected (2.679 seconds)

------------------------------------------------------------------------------------------------------

注:beeline连接到hiveserver2 , hiveserver2 通过api访问metastore,貌似beeline可以起多个会话,不影响。因为hiveserver2服务是唯一的。

 

二 Metastore 本地模式(local)

 

说明:

       本地模式与内嵌模式最大的区别在与数据库有内嵌于hive服务变成独立部署,hive服务使用jdbc访问元数据,多个服务可以同时访问。

安装:

1)安装mysql (略)

2)安装mysql connector:下载 mysql-connector-java-5.1.31.jar 放置 $HIVE_HOME/lib

3)创建数据库及用户

(1)创建数据库:

------------------------------------------------------------------------------------------------------

[zero@CentOS-StandAlone ~]$ mysql -u root -p -h 127.0.0.1

Enter password:

......

mysql> CREATE DATABASE metastore;

Query OK, 1 row affected (0.11 sec)

 

mysql> USE metastore;

Database changed

 

mysql> SOURCE /home/zero/hive/hive-0.12.0-cdh5.0.1/scripts/metastore/upgrade/mysql/hive-schema-0.12.0.mysql.sql;

------------------------------------------------------------------------------------------------------

 (2)创建hive用户并授权

------------------------------------------------------------------------------------------------------

mysql> CREATE USER 'hive'@'%' IDENTIFIED BY '1234_qwer';

Query OK, 0 rows affected (0.05 sec)

 

mysql> CREATE USER 'hive'@'127.0.0.1' IDENTIFIED BY '1234_qwer';

Query OK, 0 rows affected (0.04 sec)

 

mysql> CREATE USER 'hive'@'CentOS-StandAlone' IDENTIFIED BY '1234_qwer';

Query OK, 0 rows affected (0.01 sec)

 

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'hive'@'%';

Query OK, 0 rows affected (0.00 sec)

 

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES,EXECUTE ON metastore.* TO 'hive'@'%';

Query OK, 0 rows affected (0.03 sec)

 

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.02 sec)

------------------------------------------------------------------------------------------------------

4)解压:同上

5)配置环境变量(同上)

6)修改配置文件:

(1)修改hive-env.sh(同上)

(2)修改hive-site.xml

<?xml version="1.0"?>                                                                                                                                                  
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <!--hive仓库地址,会使用hadoop的fs.default.name指定的模式存储数据,这里相当于hdfs://mycluster/user/hive/warehouse -->
                <name>hive.metastore.warehouse.dir</name>                                                                                       
                <value>/user/hive/warehouse</value>
        </property>
        <property>
                <!--改属性代替hive.metastore.local为空表示嵌入模式或本地模式,否则为远程模式 -->
                <name>hive.metastore.uris</name>
                <value></value>
        </property>
        <!-- ================================================================== -->
        <!-- 连接mysql -->
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://CentOS-StandAlone:3306/metastore</value>
                <description>the URL of the MySQL database</description>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>hive</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>1234_qwer</value>
        </property>
        <property>
                <name>datanucleus.autoCreateSchema</name>
                <value>false</value>
        </property>
        <property>
                <name>datanucleus.fixedDatastore</name>
                <value>true</value>
        </property>
        <property>
                <name>datanucleus.autoStartMechanism</name>
                <value>SchemaTable</value>
        </property>
        <!-- ================================================================== -->
        <!-- HiveServer2 使用的基于Zookeeper的表锁管理器 -->
        <property>
                <name>hive.support.concurrency</name>
                <description>Enable Hive's Table Lock Manager Service</description>
                <value>true</value>
        </property>
        <!--zookeeper 指定,使用默认端口 -->
        <property>
                <name>hive.zookeeper.quorum</name>
                <value>CentOS-StandAlone</value>
        </property>
        <!--zookeeper 端口指定 -->
        <property>
                <name>hive.zookeeper.client.port</name>
                <value>2181</value>
        </property>
</configuration>

 7)启动和使用方法同上

 

三 Metastroe 远程模式(remote)



 说明:

       远程模式,原内嵌与hive服务的metastore服务独立出来单独运行,hive服务通过thrift访问metastore,这种模式可以控制到数据库的连接等。

 部署规划:

(1)元数据服务器:部署metastore 服务和mysql

(2)hiveserver服务器:部署hiveserver2服务,通过thrift访问metastore

(3)客户服务器:部署hive客户端脚本,可以基于cli或beeline或直接使用thrift访问hiveserver2

 安装:

    安装过程同本地模式,只需要修改本地模式中的hive-site.xml 增加metastroe的访问地址如下,并在不同的服务器上部署。

 

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://CentOS-StandAlone:9083</value>
  <description>IP address (or fully-qualified domain name) and port of the metastore host</description>
</property>
启动:

 

 (1)元数据服务器:

service mysql start

nohup hive --service metastore &

(2)hiveserver服务器:

nohup hive --service hiveserver2 &

(3)客户端服务器:

脚本:showtables.sql

 

!connect jdbc:hive2://CentOS-StandAlone:10000
zero

show tables;
 其中
第一行:连接
第二行:用户名
第三行:密码
第四行:命令
执行:
------------------------------------------------------------------------------------------------------
[zero@CentOS-StandAlone test]$ beeline -f test.sql
Beeline version 0.12.0-cdh5.0.1 by Apache Hive
beeline> !connect jdbc:hive2://localhost:10000
scan complete in 5ms
Connecting to jdbc:hive2://localhost:10000
Enter username for jdbc:hive2://localhost:10000: zero
Enter password for jdbc:hive2://localhost:10000:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/zero/hadoop/hadoop-2.3.0-cdh5.0.1/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/zero/hive/hive-0.12.0-cdh5.0.1/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Connected to: Apache Hive (version 0.12.0-cdh5.0.1)
Driver: Hive JDBC (version 0.12.0-cdh5.0.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://localhost:10000> show tables;
+-----------+
| tab_name  |
+-----------+
| test      |
| test2     |
+-----------+
2 rows selected (0.583 seconds)
0: jdbc:hive2://localhost:10000> Closing: org.apache.hive.jdbc.HiveConnection
------------------------------------------------------------------------------------------------------
 
  • 大小: 43.1 KB
  • 大小: 36.1 KB
  • 大小: 37.5 KB
分享到:
评论

相关推荐

    Hive-2.1.1-CDH-3.6.1 相关JDBC连接驱动 Jar 包集合

    02、hive-exec-2.1.1-cdh6.3.1.jar 03、hive-jdbc-2.1.1-cdh6.3.1.jar 04、hive-jdbc-2.1.1-cdh6.3.1-standalone.jar 05、hive-metastore-2.1.1-cdh6.3.1.jar 06、hive-service-2.1.1-cdh6.3.1.jar 07、libfb303-...

    hive-0.12.0.tar.gz

    Hive-0.12.0是Hive的一个早期版本,虽然现在已经有了更多更新的版本,但这个版本在当时仍具有重要的意义,尤其对于初次接触Hive或者需要使用特定功能的用户来说。 Hive的核心特性包括以下几个方面: 1. **数据存储...

    hive-jdbc-2.1.1-cdh6.2.0-standalone.jar

    hive-jdbc-2.1.1-cdh6.2.0(ieda等jdbc链接hive2.1.1);cdh6.2.0安装的hive2.1.1

    hive-hwi-0.12.0-cdh5.0.0.war

    已经测试ok的hive-hwi-0.12.0-cdh5.0.0.war文件,直接放到hive/lib下可用

    hive-0.12.0.part1.rar

    hive-0.12.0.part1.rar hive-0.12.0.part1.rar

    hive2.1.1-cdh6.3.2

    1. **hive-jdbc-2.1.1-cdh6.3.2-standalone.jar**:这是Hive JDBC的独立版本,包含了所有必要的依赖,可以直接在没有其他CDH库的环境中运行。开发者可以将这个JAR文件添加到他们的项目中,以便通过Java应用程序或Web...

    hive-jdbc-1.1.0-cdh5.12.1 连接库 jar包

    1. `hive-jdbc-1.1.0-cdh5.12.1-standalone.jar`:这是一个独立的jar包,包含了所有必要的依赖,可以直接在没有其他CDH库的情况下运行。这意味着如果你的客户端环境中无法或不便解决所有依赖问题,你可以选择使用这...

    hive-1.1.0-cdh5.7.0.tar.gz.rar

    本篇将深入探讨如何安装、配置和使用Hive-1.1.0-cdh5.7.0,以及其在大数据处理中的核心功能和优势。 1. **Hive-1.1.0-cdh5.7.0 版本特性** Hive 1.1.0是Hive发展过程中的一个重要里程碑,它带来了诸多性能改进和新...

    hive-jdbc-2.1.1-cdh6.3.2-standalone.jar

    hive连接驱动

    hive-jdbc-1.1.0-cdh5.12.1-standalone.jar

    hive连接jdbc的jar包hive-jdbc-1.1.0-cdh5.12.1-standalone.jar

    hive-jdbc-2.1.1-cdh6.3.1-standalone.jar

    Hive 2.1.1 的 JDBC 连接驱动,CDH-6.3.1 版本。

    hive-exec-2.1.1-cdh6.3.1.jar

    hive-exec-2.1.1-cdh6.3.1.jar

    hive-0.10.0-cdh4.2.1

    6. **安装与配置**:下载Hive-0.10.0-cdh4.2.1压缩包后,需要进行解压、配置环境变量、初始化元数据、安装依赖库等步骤才能在CDH4环境中运行。配置包括设置Hive的安装路径、Hadoop相关配置、 metastore数据库连接...

    hive-1.1.0-cdh5.7.0.tar

    学习和使用Hive-1.1.0-cdh5.7.0,你需要了解如何安装配置Hive,设置Metastore服务,编写HQL查询,管理表和分区,优化查询性能,以及与其他Hadoop组件的协同工作。这包括理解Hadoop的环境变量设置,熟悉Linux命令行...

    hive-0.12.0.part2.rar

    hive-0.12.0.part2.rar

    hive-1.1.0-cdh5.15.1.tar.gz

    大数据/Linux安装包-hive-1.1.0-cdh5.15.1.tar.gz 大数据/Linux安装包-hive-1.1.0-cdh5.15.1.tar.gz 大数据/Linux安装包-hive-1.1.0-cdh5.15.1.tar.gz

    hive-jdbc-2.1.1-cdh6.1.0-standalone.jar

    hive JDBC jar包。由于项目使用,此jar包从国外下载费了好大劲,现分享给大家。 hive JDBC jar包。由于项目使用,此jar包从国外下载费了好大劲,现分享给大家。 hive JDBC jar包。由于项目使用,此jar包从国外下载费...

    Cloudera_HiveJDBC_2.5.4.1006,hive-1.1.0-cdh5.13.2.tar

    可用于在DataGrip连接CDH HIVE,也可以用于在idea或eclipse中连接hive使用,压缩包中包含hive-1.1.0-cdh5.13.2.tar和Cloudera_HiveJDBC_2.5.4.1006,已测试成功,尽情享用!

    cloudera-hive-cdh6.3.2源码包

    下面我们将对 `cloudera-hive-cdh6.3.2` 源码包中的关键组件和技术进行深入解析。 1. **Hive Metastore** Hive Metastore 是 Hive 的元数据存储服务,它负责存储表和分区的信息,包括表名、列名、表的物理位置、...

    hive-1.1.0-cdh5.14.2.tar.gz

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的...

Global site tag (gtag.js) - Google Analytics