欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【大数据环境篇二】Hive 本地环境搭建概述(四种运行模式)

程序员文章站 2022-07-14 14:31:45
...

Hive 3.1.2

Table of Contents

Hive 3.1.2

1 共用配置信息

1.1 配置Hadoop安全设置

1.2 创建数据存放目录

2. Hive 运行模式

2.1 Embedded Database + Embedded Metastore Server模式

2.2 Embedded Database + Remote Metastore Server 模式

2.3 Remote Database + Embedded Metastore Server 模式

2.4 Remote Database + Remote Metastore Server 模式

 


 

1 共用配置信息

 

1.1 配置Hadoop安全设置

$HADOOP_HOME/etc/hadoop/core-site.xml

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

这里使用的root用户。

 

1.2 创建数据存放目录

$HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
$HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

 

 

2. Hive 运行模式

 

2.1 Embedded Database + Embedded Metastore Server模式

服务器配置

不给定任何配置,默认情况就是该模式。

 

初始化 metastore 数据库

$HIVE_HOME/bin/schematool -dbType derby -initSchema

 

启动服务

使用root用户来启动hiveserver2

sudo $HIVE_HOME/bin/hiveserver2

 

测试连接

$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000 -n root

参考: https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-InstallationandConfiguration

 

 

2.2 Embedded Database + Remote Metastore Server 模式

 

服务器配置

hive-site.xml配置文件中,需要指定以下信息:

<configuration>
    <!-- database configuration -->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>org.apache.derby.jdbc.EmbeddedDriver</value>
        <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
        <description>
            JDBC connect string for a JDBC metastore.
            To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
            For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
        </description>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>APP</value>
        <description>Username to use against metastore database</description>
    </property>

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

    <!-- metastore mode definition -->
    <property>
        <name>hive.metastore.port</name>
        <value>9083</value>
        <description>Hive metastore listener port</description>
    </property>

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

 

初始化 metastore 数据库

$HIVE_HOME/bin/schematool -dbType derby -initSchema

 

启动服务

启动metastore服务

$HIVE_HOME/bin/hive –service metastore

 

使用root用户来启动hiveserver2

sudo $HIVE_HOME/bin/hive –service hiveserver2

 

 

测试连接

检查metastore服务是否启动成功

lsof -i:9083

如能查询到信息表示启动成功。

 

 

使用beeline来测试连接

$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000 -n root

 

 

 

2.3 Remote Database + Embedded Metastore Server 模式

 

依赖包准备

cp mysql-connector-java-5.1.41.jar $HIVE_HOME/lib/

 

服务器配置

hive-site.xml配置文件中,需要指定以下信息:

<configuration>

    <!-- database configuration -->
    <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.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/metastore</value>
        <description>
            JDBC connect string for a JDBC metastore.
            To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
            For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
        </description>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>Username to use against metastore database</description>
    </property>

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

    <!-- metastore mode definition -->
    <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>

</configuration>

 

初始化 metastore 数据库

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

启动服务

使用root用户来启动hiveserver2

sudo $HIVE_HOME/bin/hiveserver2

 

测试连接

使用beeline来测试连接

$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000 -n root

2.4 Remote Database + Remote Metastore Server 模式

 

依赖包准备

cp mysql-connector-java-5.1.41.jar $HIVE_HOME/lib/

 

服务器配置

hive-site.xml配置文件中,需要指定以下信息:

<configuration>

    <!-- database configuration -->
    <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.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/metastore</value>
        <description>
            JDBC connect string for a JDBC metastore.
            To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
            For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
        </description>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>Username to use against metastore database</description>
    </property>

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

    <!-- metastore mode definition -->
    <property>
        <name>hive.metastore.port</name>
        <value>9083</value>
        <description>Hive metastore listener port</description>
    </property>

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

</configuration>

 

初始化 metastore 数据库

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

 

启动服务

启动metastore服务

$HIVE_HOME/bin/hive –service metastore

 

使用root用户来启动hiveserver2

sudo $HIVE_HOME/bin/hive –service hiveserver2

 

测试连接

检查metastore服务是否启动成功

lsof -i:9083

如能查询到信息表示启动成功。

 

 

使用beeline来测试连接

$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000 -n root

 

 

参考文章:

https://blog.csdn.net/adorechen/article/details/104882601

https://blog.csdn.net/adorechen/article/details/104601396

相关标签: hive