一、hive是什么东东
1. 个人理解 hive就是一个基于hdfs运行于MapReduce上的一个java项目, 这个项目封装了jdbc,根据hdfs编写了处理数据库的DDL/DML,自带的 二进制包内嵌Derby数据库,且默认使用Derby,简而言之,hive就是一个 帮助我们处理/分析数据的工具,不过这个工具却像namenode一样存储了 一份文件的元数据,这就有点像数据仓库的感觉 2. 架构 分为服务端、客户端,基于hadoop,运行在mapreduce,存储于hfds, 可与hbase结合使用,其中使用hql(hive sql)查询接口 3. 作用 将结构化得文件映射成表内容,并提供类sql查询功能 适合离线海量数据处理,简化mapreduce
二、hive的好处在哪,为什么要用它
简单易用,体现在类sql上,通常mapreduce的开发冗余繁琐,使用hive可以进行调优和提升开发效率,降低MapReduce学习成本, 另外hive的函数是可以自定义的,这样hive具备相应扩展型,存储在hadoop的文件系统上可以共享存储区域, hdfs的集群扩展性也成为hive存储的扩展性,hive本身跑在mapreudce上,所以其优势在于离线处理海量数据, 对于小数据来讲并没有太大优势,因为处理数据时执行延迟较高,对于小数据量实时处理不推荐使用hive hive本身跑在mapreudce上,所以其优势在于离线处理海量数据,对于小数据来讲并没有太大优势, 因为处理数据时执行延迟较高,对于小数据量实时处理不推荐使用hive hive初始使用derby数据库,而derby数据库只能启动一个实例,但注意不同路径下启动hive是可以的
三、hive的处理类SQL做了什么操作
在client端下,类sql语句抽象化,从中判断是否有表,字段等信息,交于编译器转换成逻辑执行语句, 交于优化器进行优化,再交于执行器,形成可执行的物理计划,基于mapreduce底层实施mapreduce任务, 实际上hive就是实现mapreduce任务的一个模板
四、hive安装部署
1. 下载hive,选择合适的版本 地址:http://archive.apache.org/dist/hive/ 2. 上传使用工具(filezilla.exe)或linux的rz命令 上传工具很多:filezilla,FlashFXP,Xftp,vmware-tools,notepad++... 可能会有文件夹权限问题,需要检查一下 3. 根据官网doc步骤 地址:https://cwiki.apache.org/confluence/display/Hive/GettingStarted 上传之后: $ tar -xzvf hive-x.y.z.tar.gz # 转到hadoop目录下 $ bin/hdfs dfs -mkdir /tmp $ bin/hdfs dfs -mkdir /user/hive/warehouse $ bin/hdfs dfs -chmod g+w /tmp $ bin/hdfs dfs -chmod g+w /user/hive/warehouse
五、启动hive测试(注意hadoop架构要提前运行)
# 转到hive目录下 $ bin/hive $ show databases; $ show tables; $ show functions; $ create database if not exists schooldb; $ use schooldb; $ create table if not exists student( num int, name string )raw format delimited fields terminated by ‘\‘; $ load data local inpath ‘/home/liuwl/opt/datas/studen.txt‘ into table student;
时间: 2024-10-09 22:17:03