您的位置:首页 > 运维架构

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

2017-04-12 22:37 666 查看

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_HOME
HIVE_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&characterEncoding=utf8&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';


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐