Hive+Mysql+Hbase集成配置实现离线数据分析

本文详细介绍了Hive的安装配置过程,包括下载、配置Hadoop环境、设置metastore为MySQL等步骤。并通过具体实例展示了如何进行hive测试,如下载测试数据、建库、导入数据以及查询操作。此外,还深入探讨了Hive与HBase的集成配置,涉及Zookeeper集群配置、jar包引用以及HBase表的创建和查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、hive的安装配置

1. 下载

2. 配置

二、hive测试

1. 下载测试数据

2. 建库及导入数据

三、hive和hbase集成

1. 配置

1.1 配置文件的修改

1.2 jar包的引用

1.3 建表

2. 测试


hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

在本实例中,mysql作为hive的metastore;hive来分析存储在hbase中的大量数据。配置hbase集群请参阅:Hbase的配置和分布式部署

说明:三台机器的主机名分别为:bigdata.centos01、bigdata.centos02、bigdata.centos03

一、hive的安装配置

1. 下载

wget http://archive.apache.org/dist/hive/hive-0.13.1/apache-hive-0.13.1-bin.tar.gz

2. 配置

  • 修改conf/hive-env.sh
# 配置Hadoop
HADOOP_HOME=/opt/modules/hadoop-2.5.0

# 配置hive的配置文件目录
export HIVE_CONF_DIR=/opt/modules/hive-0.13.1-bin/conf
  • 修改hive-site.xml

配置mysql作为hive的metastore

<configuration>

<!-- mysql作为hive的metastore -->
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://bigdata.centos03:3306/metastore?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>root</value>
</property>

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

<!-- 配置命令行显示列名和当前数据库名 -->
<property>
  <name>hive.cli.print.header</name>
  <value>true</value>
  <description>Whether to print the names of the columns in query output.</description>
</property>

<property>
  <name>hive.cli.print.current.db</name>
  <value>true</value>
  <description>Whether to include the current database in the Hive prompt.</description>
</property>

</configuration>
  • 导入mysql驱动包

二、hive测试

采用官网的测试用例进行测试,在测试之前务必开启hdfs、yarn和mysql。

1. 下载测试数据

wget http://files.grouplens.org/datasets/movielens/ml-100k.zip
# 解压
unzip ml-100k.zip

2. 建库及导入数据

  • 进入hive命令行界面
bin/hive
  • 建库&建表
# 建库
create database test;

# 建表,列之间通过制表符分隔
CREATE TABLE u_data (
  userid INT,
  movieid INT,
  rating INT,
  unixtime STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
  • 导入数据
load data local inpath '/opt/datas/hiveTestData/ml-100k/u.data' into table u_data;
  • 测试截图

三、hive和hbase集成

1. 配置

1.1 配置文件的修改

修改conf/hive-site.xml文件,增加zookeeper集群的配置,hive通过zookeeper来和hbase集成。

# hive-site.xml增加zookeeper的配置
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>bigdata.centos01,bigdata.centos02,bigdata.centos03</value>
</property>

1.2 jar包的引用

hive和hbase的集成需要引用hbase的jar包。本实例使用软连接应用。

export HBASE_HOME=/opt/modules/hbase-0.98.6-cdh5.3.9
export HIVE_HOME=/opt/modules/hive-0.13.1-bin

ln -s $HBASE_HOME/lib/hbase-server-0.98.6-cdh5.3.9.jar $HIVE_HOME/lib/hbase-server-0.98.6-cdh5.3.9.jar
ln -s $HBASE_HOME/lib/hbase-client-0.98.6-cdh5.3.9.jar $HIVE_HOME/lib/hbase-client-0.98.6-cdh5.3.9.jar
ln -s $HBASE_HOME/lib/hbase-protocol-0.98.6-cdh5.3.9.jar $HIVE_HOME/lib/hbase-protocol-0.98.6-cdh5.3.9.jar
ln -s $HBASE_HOME/lib/hbase-it-0.98.6-cdh5.3.9.jar $HIVE_HOME/lib/hbase-it-0.98.6-cdh5.3.9.jar
ln -s $HBASE_HOME/lib/htrace-core-2.04.jar $HIVE_HOME/lib/htrace-core-2.04.jar
ln -s $HBASE_HOME/lib/hbase-hadoop2-compat-0.98.6-cdh5.3.9.jar $HIVE_HOME/lib/hbase-hadoop2-compat-0.98.6-cdh5.3.9.jar
ln -s $HBASE_HOME/lib/hbase-hadoop-compat-0.98.6-cdh5.3.9.jar $HIVE_HOME/lib/hbase-hadoop-compat-0.98.6-cdh5.3.9.jar
ln -s $HBASE_HOME/lib/high-scale-lib-1.1.1.jar $HIVE_HOME/lib/high-scale-lib-1.1.1.jar
ln -s $HBASE_HOME/lib/hbase-common-0.98.6-cdh5.3.9.jar $HIVE_HOME/lib/hbase-common-0.98.6-cdh5.3.9.jar

1.3 建表

hbase的表名是logs,列簇名为info,info内列名分别为:time、userid、searchname、retorder、cliorder、url

CREATE EXTERNAL TABLE logs(
key string,
time string,
userid string,
searchname string,
retorder string,
cliorder string,
url string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:time,info:userid,info:searchname,info:retorder,info:cliorder,info:url")
TBLPROPERTIES ("hbase.table.name" = "logs");

2. 测试

  • select * from logs limit 10;

  • select count(*) from logs;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值