Hive 组件部署

Hive详解:https://www.cnblogs.com/huifeidezhuzai/p/9251969.html

本环节需要使用 root 用户完成相关配置,已安装 Hadoop 及需要配置前置环境,具体部署要求如下:

1、解压 Hive 安装包到“/usr/local/src”路径,并使用相关命令,修改解压后文件夹名为 Hive,进入 Hive 文件夹,并将查看内容截图;

tar zxvf /h3cu/apache-hive-1.2.2-bin.tar.gz -C /usr/local/src/
mv apache-hive-1.2.2-bin hive

2、设 置 Hive 环境变量 ( HIVE_HOME=/usr/local/src/hive ;PATH=$PATH:$HIVE_HOME/bin),并使环境变量只对当前用户生效;

vi ~/.bash_profile
export HIVE_HOME=/usr/local/src/hive
export PATH=$PATH:$HIVE_HOME/bin
source ~/.bashrc

验证:hive --version
SOURCE /usr/local/src/hive/scripts/metastore/upgrade/mysql/hive-schema-0.12.0.mysql.sql;

3、新建并配置 hive-site.xml 文件,实现“Hive 元存储”的存储位置为 MySQL数据库;

Hive配置文件里要用到HDFS的一些路径,需要先手动创建。

hdfs dfs -mkdir -p /usr/local/src/hive/warehouse
hdfs dfs -mkdir -p /usr/local/src/hive/tmp
hdfs dfs -mkdir -p /usr/local/src/hive/log
hdfs dfs -chmod g+w /usr/local/src/hive/warehouse
hdfs dfs -chmod g+w /usr/local/src/hive/tmp
hdfs dfs -chmod g+w /usr/local/src/hive/log

上述语句涉及hive-site.xml hive.metastore.warehouse.dir等,表示数据在hdfs中的存储位置

5.2 hive-env.sh (所有节点)

export HADOOP_HOME=/usr/local/src/hadoop
export HIVE_CONF_DIR=/usr/local/src/hive/conf

5.3 hive-log4j.properties(所有节点)

首先创建log存放的文件夹

mkdir /usr/local/src/hive/logs

然后配置hive-log4j.properties

hive.log.dir=/usr/local/src/hive/logs

5.4 服务端hive-site.xml

服务端指的是Metastore服务所在的机器,即安装metastore的机器,这里是51和52。

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://master:3306/metastore?createDatabaseIfNotExist=true</value>
  <description>the URL of the MySQL database</description>
</property>

<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>hive</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
</property>

<property>
 <name>hive.metastore.warehouse.dir</name>
 <value>/usr/hive/warehouse</value>
</property>

<property>
<name>hive.exec.scratchdir</name>
<value>/usr/local/src/hive/tmp</value>
</property>

<property>
<name>hive.querylog.location</name>
<value>/usr/local/src/hive/log</value>
</property>

5.5 客户端hive-site.xml

这里指的是53和54。

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

<property>
 <name>hive.metastore.warehouse.dir</name>
 <value>/usr/local/src/hive/warehouse</value>
</property>

<property>
 <name>hive.exec.scratchdir</name>
 <value>/usr/local/src/hive/tmp</value>
</property>

<property>
 <name>hive.querylog.location</name>
 <value>/usr/local/src/hive/log</value>
</property>

6. 启动Hive

  1. 启动MySQL
$ service mysqld start
  1. 启动metastore服务
$ service hive-metastore start
  1. 启动Hive CLI

因为在4台机器上都安装了hive,并且作了相关的配置,所有四台机器均可以启动Hive CLI(Hive交互式shell)

$ hive
cd /usr/local/src/hive/conf/
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
    <property>
        <name>hive.server2.thrift.bind.host</name>
    <!--172.16.12.160是Hive部署节点的IP,不是Hadoop集群master的IP  -->
        <value>172.16.12.160</value>
    </property>
    <property>
        <name>hive.server2.long.polling.timeout</name>
        <value>5000</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    </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>hive</value><!-- 数据库连接密码 -->
    </property>
    <property>
        <name>hive.hwi.listen.host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>hive.hwi.war.port</name>
        <value>9999</value>
    </property>
    <property>
        <name>hive.hwi.war.file</name>
        <value>/lib/hive-hwi-1.0.1.war</value>
    </property>
</configuration>

实现“Hive 元存储”的存储位置为 MySQL数据库 大概修改以下配置:

 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost/hive</value>
  </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>*</value>
  </property>

img

4、初始化 Hive 元数据(将 MySQL 数据库 JDBC 驱动拷贝到 Hive 安装目录的lib 下),初始化结果截图;

cp /h3cu/mysql-connector-java-5.0.8-bin.jar  /usr/local/src/hive/lib
初始化 Hive 元数据:
pwd
# /usr/local/src/hive/bin/
schematool -dbType mysql -initSchema

5、启动 Hive, 检查是否安装成功,截图保存结果;

hive

6、按指定要求创建 Hive 内部表和外部表,截图保存结果;

7、按要求实现内外部表转换,截图保存结果;

8、按指定要求创建分区表,截图保存结果。

results matching ""

    No results matching ""