数据仓库工具¶
9.1 安装部署¶
9.1.1 环境要求¶
Hive是基于Hadoop的数据仓库工具, 所以要求系统已经安装部署了Hadoop。
此外为了存储元数据还需要MySQL环境。
- 安装MySQL
sudo yum install -y mysql mysql-server mysql-devel # vim /etc/my.cnf # 在[mysqld]下添加 character_set_server=utf8 # 启动服务 sudo service mysqld start
- 添加hive用户
# 设置root密码 sudo mysqladmin -u root password 'rootadmin' # 以root登录 mysql -u root -prootadmin # 创建hive数据库 create database hive; alter database hive character set latin1; # 创建hive用户 GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive' WITH GRANT OPTION; # 退出后以hive用户测试 mysql -u hive -phive
- 下载驱动在
http://www.mysql.com/downloads/connector/j/ 下载最新的MySQL的Java驱动, 这里是
tar -zxvf mysql-connector-java-5.1.24.tar.gz cd mysql-connector-java-5.1.24/ cp mysql-connector-java-5.1.24-bin.jar /usr/local/cloud/hive/lib/
9.1.2 版本选择¶
这里使用 0.10.0 版。
9.1.3 目录规范¶
- 程序目录
tar -zxvf hive-0.10.0.tar.gz -C /usr/local/cloud/src/ cd /usr/local/cloud/ ln -s -f /usr/local/cloud/src/hive-0.10.0 hive
- 数据目录
# 创建存储查询日志的目录 # 每个用户的查询日志在 /data/logs/hive 中 mkdir -p /data/logs/hive/query
9.1.4 修改配置¶
- 系统设置
vim /etc/profile export HIVE_HOME=/usr/local/cloud/hive export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$CHUKWA_HOME/bin:$HIVE_HOME/bin:$PATH source /etc/profile
- 全局配置
- 使用 $HIVEHOME/conf/hive-env.sh 进行环境变量配置
# 配置项参见同目录下的 hive-env.sh.template export JAVA_HOME=/usr/java/default export HADOOP_HOME=/usr/local/cloud/hadoop export HIVE_HOME=/usr/local/cloud/hive export HIVE_CONF_DIR=$HIVE_HOME/conf export HADOOP_HEAPSIZE=1024
- 使用 $HIVEHOME/conf/hive-site.xml 进行参数配置
<!-- 添加hdfs设置 --> <property> <name>default.fs.name</name> <value>hdfs://hadooptest:9000</value> </property> <!-- 修改一下配置项 --> <!-- 临时存储目录设置 --> <property> <name>hive.exec.scratchdir</name> <value>/user/${user.name}/hive/scratchdir</value> <description>Scratch space for Hive jobs</description> </property> <property> <name>hive.exec.local.scratchdir</name> <value>/data/logs/hive/scratch/${user.name}</value> <description>Local scratch space for Hive jobs</description> </property> <!-- 数据文件存储目录 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/hive/warehouse</value> <description>location of default database for the warehouse</description> </property> <!-- 查询日志存储目录 --> <property> <name>hive.querylog.location</name> <value>/data/logs/hive/query/${user.name}</value> <description>Location of Hive run time structured log file</description> </property> <!-- 使用MySQL存储元数据 --> <!-- MySQL服务器地址 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadooptest:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8</value> <description>JDBC connect string for a JDBC metastore</description> </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> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> <description>password to use against metastore database</description> </property>
- 日志设置
# 在 $HIVE_HOME/conf/hive-log4j.properties 中设置日志数据目录 hive.log.dir=/data/logs/hive/${user.name}
9.2 使用方式¶
直接使用hive命令即可。
9.3 数据测试¶
9.4 处理流程¶
Date: 2013-04-28 10:38:30 CST
Author: Cloud&Matrix
Org version 7.8.11 with Emacs version 24