赞
踩
1. Hive 简介
Hive 是一个基于 hadoop 的开源数据仓库工具,用于存储和处理海量结构化数据。它把海量数据存储于 hadoop 文件系统,而不是数据库,但提供了一套类数据库的数据存储和处理机制,并采用 HQL (类 SQL )语言对这些数据进行自动化管理和处理。我们可以把 Hive 中海量结构化数据看成一个个的表,而实际上这些数据是分布式存储在 HDFS 中的。 Hive 经过对语句进行解析和转换,最终生成一系列基于 hadoop 的 map/reduce 任务,通过执行这些任务完成数据处理。
Hive 自 2009.4.29 发布第一个官方稳定版 0.3.0 至今。Hive 诞生于 facebook 的日志分析需求,面对海量的结构化数据, Hive 以较低的成本完成了以往需要大规模数据库才能完成的任务,并且学习门槛相对较低,应用开发灵活而高效。
2. 依赖环境
安装Hive前提是要先安装hadoop(或集群),并且hive只需要在hadoop的namenode节点集群里安装即可(需要在有的namenode上安装),可以不在datanode节点的机器上安装。还需要说明的是,虽然修改配置文件并不需要把hadoop运行起来,但是本文中用到了hadoop的hdfs命令,在执行这些命令时你必须确保hadoop是正在运行着的,而且启动hive的前提也需要hadoop在正常运行着,所以建议先把hadoop集群启动起来。
安装MySQL 用于存储 Hive 的元数据(也可以用 Hive 自带的嵌入式数据库 Derby,但是 Hive 的生产环境一般不用 Derby),这里只需要安装 MySQL 单机版即可,如果想保证高可用的化,也可以部署 MySQL 主从模式;
3. 安装配置Hive
(1) 下载地址:https://archive.cloudera.com/cdh5/cdh/5/,版本自行选择。
(2) 解压缩:tar -zxvf hive-0.13.1-cdh5.3.6.tar.gz -C /opt
(3) 修改环境变量:vi /etc/profile
export HIVE_HOME=/opt/hive-0.13.1-cdh5.3.6
export PATH=$HIVE_HOME/bin:$PATH
使环境变量生效,运行 source /etc/profile使/etc/profile文件生效
(4)修改conf文件夹下文件
mv hive-env.sh.template hive-env.sh
vi hive-env.sh
HADOOP_HOME=/home/hadoop/hadoop-2.7.4/
export HIVE_CONF_DIR=/home/hadoop/hive-2.3.0/conf
export HIVE_AUX_JARS_PATH=/home/hadoop/hive-2.3.0/lib
Hive数据仓库位置配置
default
/user/hive/warehouse
注意事项
* 在仓库目录下,没有对默认的数据库default创建文件夹
* 如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
创建文件夹:
- $ $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
(5)MySQL存储元数据代替derby
下载驱动:wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar
touch hive-site.xml
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
- <configuration>
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://zhangbk:3306/hive?createDatabaseIfNotExist=true</valu
- e>
- <description>JDBC connect string for a JDBC metastore</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>root</value>
- <description>username to use against metastore database</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionPassword</name>
- <value>password01</value>
- <description>password to use against metastore database</description>
- </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>
(6)初始化 mysql
MySQL数据库进行初始化
首先确保 mysql 中已经创建 hive 库
cd /home/hadoop/hive-2.3.0/bin
./schematool -initSchema -dbType mysql
(7)修改日志文件,在conf目录下
mv hive-log4j.properties.template hive-log4j.properties
修改日志文件地址 mkdir -p /opt/hive-0.13.1-cdh5.3.6/logs
hive.log.dir=/opt/hive-0.13.1-cdh5.3.6/logs
hive.log.file=hive.log
备注:查询HDFS文件:
http://192.168.159.129:50070/
http://192.168.159.129:8088/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。