首页 > 代码库 > 【IT十八掌大数据】学习笔记
【IT十八掌大数据】学习笔记
hive简介:
--------------------
0.big data的特点:4 Volumn variety velocity value
1.介绍
数据仓库 //online analyze process,在线分析处理。
用来查询和管理位于分布式存储设备上的大型数据集。
Hive提供了一种类SQL语言--HiveQL(HQL)进行查询分析。
HiveQL可进行插件式扩展。
擅长处理结构化数据。非结构化的数据没办法创建对应的模式。
位于hadoop之上,重点在于对大数据进行分析和统计。
不是:
1.RDBMS
2.不是为OLTP所设计。(在线事务处理)
3.不擅长实时查询和行级更新。
特点:
1.在数据库中存储schema,处理的数据存储到hdfs。
2.用于OLAP
3.提供了SQL类型查询语言,叫做HiveQL(HQL)
4.熟悉、可伸缩的、快速、可扩展。
2.Hive架构
3.unit name
a.UI //webui | command line | HD insight
b.meta store //选择数据库存放schema或者元数据。
c.HiveQL处理引擎//类似于sql查询,对mr的替代,不需要再写mr程序。
d.Execution Engine //执行引擎,HiveQL处理引擎和mr的连接部分。
e.Hdfs/hbase //存储hive处理之后的结果
======================================================================================================
配置hive使用mysql数据库
------------------------
1.下载并解压hive.tar.gz
2.配置环境变量
HIVE_HOME=...
PATH=..:$HIVE_HOME/bin:$HIVE_HOME/conf
$>source /etc/environment
3.创建配置文件(通过cp方式,共四个)
$>cd conf
$ cp hive-default.xml.template hive-site.xml
$ cp hive-env.sh.template hive-env.sh
$ cp hive-exec-log4j.properties.template hive-execlog4j.properties
$ cp hive-log4j.properties.template hive-log4j.properties
4.修改conf/hive-env.sh配置文件
export HADOOP_HOME=/soft/hadoop
export HIVE_CONF_DIR=/soft/hive/conf
5.修改conf/hive-site.xml文件
hive.metastore.warehourse.dir=/user/hive/warehouse //hdfs系统
hive.exec.scratchdir=/tmp/hive-${user.name} //hdfs系统
6.配置使用mysql数据库
[conf/hive-site.xml]
#javax.jdo.option.ConnectionURL // the database URL
#javax.jdo.option.ConnectionDriverName // the JDBC driver name
#javax.jdo.option.ConnectionUserName // database username
#javax.jdo.option.ConnectionPassword // database password
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.12.2:3306/hive?createDatabaseIfNotExist=true</value>
<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>111111</value>
<description>password to use against metastore database</description>
</property>
7.复制mysql驱动程序到${hive_home}\lib下
8、在使用之前一定要先使用以下命令对元数据存储数据库进行初始化,
schematool -dbType mysql -initSchema
否则有如下错误提示:
Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema.
9、启动hive出现以下异常:
Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
原因是引用的路径是变量,而变量不存在,把变量换成固定值就行了。
解决方法:在hive-site.xml文件中将system:java.io.tmpdir对应的属性设置为固定目录即可
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/ubuntu/hive/scratchdir</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/ubuntu/hive/downloads</value>
</property>
成功启动hive之后,在mysql数据库中会生成在配置文件里指定的数据库,myhive,里面有大量自动生成的数据表。
【IT十八掌大数据】学习笔记