RDBMS
Relation Database Management System 关系型数据库管理系统
OLTP:online transaction process.在线事务处理
A.原子性
C.一致性
I.隔离性
D.永久性
低延迟
事务并发现象
1.脏读:读未提交
2.不可重复读:读不回去
3.幻读:读多了
事务的隔离级别
1.读未提交
2.读已提交
4.可以重复读
8.串行化
级别越高,性能越差
Hive
数据仓库软件。
存储,重在分析数据,延迟高。
使用SQL来读、写、管理驻留在分布式存储系统大型数据集。可以使用命令行和JDBC驱动连接到Hive
运行在Hadoop之上,用来汇集查询数据。
OLAP:online analyze process,在线分析处理
不是:
1.关系弄数据库
2.不是OLTP
3.不适合实时查询和底层更新
特征
1.在数据库中存放schema,处理数据库到HDFS
2.OLAP
3.提供类SQL语言,HQL(HiveSQL)
4.快速,可扩展,可伸缩,速度快
Hive架构
UI(WEB UI/CLI/)
MetaStore + HQL Process Engine
Execution Engine
MapReduce
HDFS/Hbase...
Hive组件
UI //
MetaStore //存储schema,table,column信息在RDBMS
HQL Process Engine //编写SQL代替以前MR程序
Execution Engine //处理查询,生成结果
HDFS //存储数据
Hive安装
1.下载并tar开
2.安装jdk
3.安装hadoop
4.配置环境变量
HIVE_HOME
PATH=..;
$>tart -zxvf apache-xxx.gx
$>mv apache-hive-xx /soft
$>ln -s /soft/apache-hive-xx hive
$>sudo vim /etc/environment
HIVE_HOME=/soft/hive
:/soft/hive/bin
source /etc/environment
echo $HIVE_HOME
echo $PATH
5.查看Hive版本
hive --version
配置hive
[${hive_home}/conf/hive-env.sh]
HADOOP_HOME=/soft/hadoop
配置Hive的元数据库
1.Hive使用rdbms存储元数据,内置了derby数据库
2.hive/conf/hive-default.xml.template //hive的默认配置,不要修改
复制到hive-site.xml
$>cp hive-default.xml.template hive-site.xml
3.修改配置hive-site.xml
4.替换${system:java.io.tmpdir}=/home/hadoop/hive
替换${system:uer.name}=hadoop0
在家目录创建这两个文件夹
使用Hive
1.启动hadoop
2.初始化schema库
$>hive/bin/schematool -initSchema -dbType derby
3.完成后,在当前目录下创建一个文件夹metastore_db(元数据库)
4.
5.进入hive shell
$>hive
hive常见命令,类似于MySQL
$hive>show databases;
$hive>show tables;
$hive>create database myhive;
$hive>use myhive;
$hive>!clear;//清屏
加载数据到hive(hdfs)
$hive>
$hive>!linux命令;//hive中执行linux shell命令
$hive>dfs -lsr /; //查询hdfs文件
将hive中的schema存放到外部的MySQL中
1.编写hive-site.xml,添加MySQL连接信息
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConectionURL</name>
<value>jdbc:mysql://192.168.88.1:3306/myhive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
2.在MySQL中创建myhive数据库
$mysql>create database myhive;
3.MySQL驱动程序(jar)放置到hive classpath下
hive/lib
4.重新初始化hive schema元数据库
$>hive/bin/schematool -initSchema -dbtype mysql
启动hiveserver2服务
接收多个客户端连接请求,使得client通过jdbc连接操作hive数据仓库
$>hive/bin/hive --service hiveserver2 start //启动服务
$>jobs
$>ctrl+z
$>bg %1
$>netstat -ano|grep 10000 //查看端口
转载请注明:MitNick » Hive-01