Hive是什么
Hive是Hadoop生态系统中一个重要的框架.
Hive是建立在HDFS储存系统之上的数据查询, 统计, 分析框架, 对应的大数据生态中的分析模块, 而非储存模块.
Hive是一个数据仓库工具, 通过类SQL => HQL 查询语句, 管理已经存在HDFS上的大型数据集.
Hive可以根据已经储存的数据, 建立表结构, 指定映射关系, 用户可以使用一个命令行工具和JDBC驱动方式连接Hive.
能做什么
统计, 查询, 分析储存在HDFS上的海量数据.
不能做什么
Hive不是一个关系型数据库, 不能进行 OLTP(online transaction processing) 在线事务处理
不支持实时查询 以及 行级更新(由于HDFS只支持追加写, 不支持随机写)
特点
仅储存schema(metadata)在关系型数据库中, 真正的数据存在HDFS上
支持OLAP(online analysis processing)
支持类SQL查询语言 => HQL
通用, 快速(对于海量数据), 可扩展
缺点
(1) hive的hql表达能力有限
①迭代式算法无法表达
②数据挖掘方面不擅长
(2) Hive的效率比较低
①hive自动生成的mapreduce程序, 通常情况下不够智能(慢)
②调优困难, 粒度较粗
快速搭建
(1) 安装地址 http://hive.apache.org/
(2) 部署
① 把apache-hive-1.2.1-bin.tar.gz上传到linux的/opt/software目录下
② 解压apache-hive-1.2.1-bin.tar.gz到/opt/module/目录下面
$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
③ 修改apache-hive-1.2.1-bin.tar.gz的名称为hive
$ mv apache-hive-1.2.1-bin/ hive
④ 修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh
$ mv hive-env.sh.template hive-env.sh
⑤ 配置hive-env.sh文件
配置HADOOP_HOME路径和HIVE_CONF_DIR路径
$ export HADOOP_HOME=/opt/module/hadoop-2.7.2
$ export HIVE_CONF_DIR=/opt/module/hive/conf
⑥ Hadoop集群配置
必须启动hdfs和yarn
$ sbin/start-dfs.sh
$ sbin/start-yarn.sh
在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写
$ bin/hadoop fs -mkdir /tmp
$ bin/hadoop fs -mkdir -p /user/hive/warehouse
$ bin/hadoop fs -chmod g+w /tmp
$ bin/hadoop fs -chmod g+w /user/hive/warehouse
快速使用
(1)启动hive
$bin/hive
(2)查看数据库
hive> show databases;
(3)打开默认数据库
hive> use default;
(4)显示default数据库中的表
hive> show tables;
(5)创建一张表
hive> create tablestudent(id int, name string);
(6)显示数据库中有几张表
hive> show tables;
(7)查看表的结构
hive> desc student;
(8)向表中插入数据
hive> insert into studentvalues(1000,"ss");
(9)查询表中数据
hive> select * from student;
(10)退出hive
hive> quit;
网友评论