Hadoop生态系统搭建(3)——数据仓库 Hive 的安装部署与测试

1. 系统环境

Ubuntu 16.04
vmware
Hadoop 2.7.0
Java 1.8.0_111

master:192.168.19.128
slave1:192.168.19.129
slave2:192.168.19.130

2. 安装部署

此处选择在 master 节点安装 HIve。
1.下载 hive 1.2.2 版本,http://hive.apache.org/downloads.html

wget http://mirror.bit.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz
tar -zxvf apache-hive-1.2.2-bin.tar.gz hive-1.2.2

2.配置 HIVE_HOMEHIVE_CONF_DIR环境变量,并生效。

# config hive env
export HIVE_HOME=/home/hadoop/software/hive-1.2.2
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$HIVE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$HIVE_HOME/lib

3.Hive元数据存储的数据库 metastore 选择mysql,为 mysql 添加 hadoop 用户,创建 hive 数据库,并设置 hadoop 用户对 hive 数据库访问权限:

mysql -u root -p
create database hive;
CREATE USER 'hive' IDENTIFIED BY '111111';
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%' WITH GRANT OPTION;
flush privileges;

这里写图片描述

4.将 mysql 的 JDBC 驱动复制到 $HIVE_HOME/lib 目录下:

wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar
mv mysql-connector-java-5.1.39.jar $HIVE_HOME/lib/

5.在$HIVE_HOME/conf中配置 hive-site.xml

vim hive-default.xml.template

  <!-- WARNING!!! This file is auto generated for documentation purposes ONLY! -->
  <!-- WARNING!!! Any changes you make to this file will be ignored by Hive.   -->
  <!-- WARNING!!! You must make your changes in hive-site.xml instead.         -->
  <!-- Hive Execution Parameters -->

所以复制一份 hive-default.xml.template 重命名为 hive-site.xml

  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <!-- <value>jdbc:derby:;databaseName=metastore_db;create=true</value> -->
    <!-- 注意mysql为本地链接,需要链接远程数据库,需要在 my.cnf 中配置。此处不能写 master -->
    <value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=utf8&amp;useSSL=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>

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

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

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

  <property>
    <name>hive.metastore.warehouse.dir</name>
    <!-- 采用 HDFS 模式,所以次路径为 HDFS 中的路径,也就意味着需要在 HDFS 中创建该目录 -->
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>

  <property>
    <name>hive.querylog.location</name>
    <!-- 部署解析配置文件时 ${system:java.io.tmpdir} 会出很奇怪的错误,此处写成了固定的 tmp 路径 -->
    <!-- <value>${system:java.io.tmpdir}/${system:user.name}</value> -->
    <value>/home/hadoop/software/hive-1.2.2/tmp/hive</value>
    <description>Location of Hive run time structured log file</description>
  </property>

  <property>
    <name>hive.server2.logging.operation.log.location</name>
    <!-- <value>${system:java.io.tmpdir}/${system:user.name}/operation_logs</value> -->
    <value>/home/hadoop/software/hive-1.2.2/tmp/hive/operation_logs</value>
    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  </property>

  <property>
    <name>hive.downloaded.resources.dir</name>
    <!-- <value>${system:java.io.tmpdir}/${hive.session.id}_resources</value> -->
    <value>/home/hadoop/software/hive-1.2.2/tmp/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

6.在$HIVE_HOME/conf中配置配置hive-env.sh

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

配置hive-env.sh

export HIVE_HOME=/home/hadoop/software/hive-1.2.2
export HIVE_CONF_DIR=/home/hadoop/software/hive-1.2.2/conf
export JAVA_HOME=/usr/local/jdk1.8.0_111
export HADOOP_HOME=/home/hadoop/software/hadoop-2.7.0

启动 Hive(保证 mysql 和 Hadoop 集群正常启动)。

这里写图片描述

3. 测试案例

创建数据库和表,观察元数据的变化:

create database test_hive_db;
# 不使用 use test_hive_db; 创建的表保存在 Default Hive database
use test_hive_db;
CREATE TABLE student(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

这里写图片描述

发布了72 篇原创文章 · 获赞 26 · 访问量 31万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览