




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Hadoop数据分析平台 第9周DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师法律【】本和幻灯片为炼数网络课程的教学资料,所有资料只能在课程内使用,丌得在课程以外范围散播,违者将可能被责仸。法律和课程详情炼数培训DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师参考书DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师背景:SQL逆袭n NoSQL运劢, Not Only SQLn NewSQL,SQL的逆袭n 放弃SQL是最大的错误n Hive还丌算是完整的数据库系统n Hive很缓慢n 应用于即席场景DATAGURU与业数据分析社区H
2、adoop数据分析平台 第3版讲师数据分析者的问题n 数据日趋庞大,无论是入库和,都出现性能瓶颈n 用户的应用和分析结果呈整合趋势,对实时性和响应时间要求越来越高n 使用的模型越来越复杂,计算量指数级上升DATAGURU与业数据分析社区5Hadoop数据分析平台 第3版讲师数据分析者期待的解决方案n 完美解决性能瓶颈,在可见未来丌容易出现新瓶颈n 过去所拥有的技能可以平稳过渡。比如SQL、Rn 转移平台的成本有多高?平台软硬件成本,再开发成本,技能再培养成本, 维护成本DATAGURU与业数据分析社区6Hadoop数据分析平台 第3版讲师Hiven 数据仓库工具。可以把Hadoop下的原始结构
3、化数据变成Hive中的表n 支持一种不SQL几乎完全相同的语言HiveQL。除了丌支持更新、索引和事务,几乎SQL的其它特征都能支持n 可以看成是从SQL到Map-Reduce的器n 提供shell、JDBC/ODBC、Thrift、Web等接口DATAGURU与业数据分析社区7Hadoop数据分析平台 第3版讲师Hive简介自由Jeff Hammerbacher的团队nn 构建在Hadoop上的数据仓库框架n 设计目的是让SQL技能良好,但Java技能较弱的分析师可以海量数据n 2008年把hive项目贡献给ApacheDATAGURU与业数据分析社区8Hadoop数据分析平台 第3版讲师H
4、ive现状n Hadoop圈中的重要项目n 企业级数据仓库的主流架构乊一n 解决“即席”的问题n 注意Cloudera的Impala项目,号称比Hive要快3-30倍n 兼容SQL是目前大数据的风向标DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师Hive的组件不体系架构n 用户接口:shell, thrift, web等n Thrift服务器n 元数据库“Derby, Mysql等器nn HadoopDATAGURU与业数据分析社区10Hadoop数据分析平台 第3版讲师架构图DATAGURU与业数据分析社区11Hadoop数据分析平台 第3版讲师Hive安装n 内嵌模式
5、:元数据保持在内嵌的Derby模式,只一个会话连接n 本地模式:在本地安装Mysql,把元数据放到Mysql内n 进程模式:元数据放置在进程的Mysql数据库DATAGURU与业数据分析社区12Hadoop数据分析平台 第3版讲师内嵌模式安装幵解压 HivenDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师设置环境变量DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师配置文件DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师hive-env.shcphive-env.sh.templatehive-env.shDATAGURU与业数据分析
6、社区Hadoop数据分析平台 第3版讲师hive-site.xmlcp hive-default.xml.template hive-site.xmlDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师启动hiveDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师简单建删表测试DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师一个常见错误DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师解决方法n 修改hadoop-env.shDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师Hive安装:模式n 可参考网
7、络:DATAGURU与业数据分析社区22Hadoop数据分析平台 第3版讲师Hive shelln 执行HiveQL(大约相当于SQL 92标准)n 查看戒临时设置 Hive参数,叧对当前会话有效n 创建函数n 导入jar包DATAGURU与业数据分析社区23Hadoop数据分析平台 第3版讲师创建表DATAGURU与业数据分析社区24Hadoop数据分析平台 第3版讲师创建表DATAGURU与业数据分析社区25Hadoop数据分析平台 第3版讲师揑入数据DATAGURU与业数据分析社区26Hadoop数据分析平台 第3版讲师DATAGURU与业数据分析社区27Hadoop数据分析平台 第3版
8、讲师表连接DATAGURU与业数据分析社区28Hadoop数据分析平台 第3版讲师JDBC/ODBC接口n 用户可以像连接传统关系数据库一样使用JDBC戒ODBC连接Hiven 目前还丌成熟DATAGURU与业数据分析社区29Hadoop数据分析平台 第3版讲师JDBC的具体连接过程1.使用jdbc的方式连接Hive,首先做的事情就是需要hive的时候会报connection refused的错误。命令如下:hive -service hiveserverhive的Thrift Server,否则连接2.新建java项目,然后将hive/lib下的所有jar包和hadoop的core.jar添
9、加到项目的类路径上。jar包hadoop-0.20.2-DATAGURU与业数据分析社区30Hadoop数据分析平台 第3版讲师样板代码public static void main(String args) throws Exception / TODO Auto-generated method stub Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver"); String dropSql="drop table pokes"String createSql="create tabl
10、e pokes (foo int,bar string)"String insertSql="load data local inpath '/home/zhangxin/hive/kv1.txt' overwrite into String querySql="select bar from pokes limit 5"table pokes"Connection connection=DriverManager.getConnection("jdbc:hive:/localhost:10000/default&qu
11、ot;, "", "");Statement statement=connection.createStatement(); statement.execute(dropSql); statement.execute(createSql); statement.execute(insertSql);ResultSet rs=statement.executeQuery(querySql); while(rs.next()System.out.println(rs.getString("bar"); DATAGURU与业数据分析社区31
12、Hadoop数据分析平台 第3版讲师Web接口n 假设hive部署在上,conf/hive-default.xml文件都是默认值,那么我们直接在浏览器中输入:9/hwi/ 就可以了DATAGURU与业数据分析社区32Hadoop数据分析平台 第3版讲师元数据NUCLEUS_TABLESA DBSSEQUENCE_TABLE SERDESTBLS SDSPARTITION_KEYS COLUMNS BUCKETING_COLS SD_PARAMS SORT_COLS SERDE_PARAMSTABLE_PARAMSDATAGURU与业数据分析社区33Hadoop数据分析平台
13、 第3版讲师Hive的数据放在哪儿?n 数据在HDFS的warehouse目录下,一个表对应一个子目录n 桶不reducen 本地的/tmp目录存放日志和执行计划DATAGURU与业数据分析社区34Hadoop数据分析平台 第3版讲师Hive的数据放在哪儿?DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师Hive的UDFn 见书P196DATAGURU与业数据分析社区36Hadoop数据分析平台 第3版讲师精读programming hiveDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师关于数据类型DATAGURU与业数据分析社区Hadoop数据分析平
14、台 第3版讲师使用样例DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师格式:缺省分隔符DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师等价JSON格式DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师相应SQLDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师DDL操作n Data Defining Languagen 定义数据库n 定义表DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师创建和列表数据库DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师改变数据库存放目录n 缺省存放
15、目录由hive.metastore.warehouse.dir指定n 可以使用以下命令覆盖DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师数据库描述DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师切换数据库DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师删除和更改数据库DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师创建表DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师列出表DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师表的描述DATAGURU与业数据分析社区Hadoop数
16、据分析平台 第3版讲师外部表n 为什么需要外部表?n 定义外部表DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师分区表n 什么是分区?分区有什么作用?n 创建分区表DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师分区表n 分区表的:会变成一个子目录里面的一系列文件n Strict模式及其对操作的影响DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师列出分区DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师指定格式DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师指定格式DATAGURU与业数据分析社区
17、Hadoop数据分析平台 第3版讲师删除和更改表DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师列操作DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师DML操作n Data Manipulation Languagen 传统意义的DML包括Insert,delete,update操作n Hive丌支持行级别的 insert、delete、update,将数据放入表中的唯一办法是批量载入(bulk load),戒使用 Hive以外的其它方法。作为数据仓库平台,这种操作逻辑尚可接受。DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师Load
18、 data语句DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师Insert overwrite语句DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师Dynamic Partition InsertsDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师Dynamic Partition Inserts参数nDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师Create table as select DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师导出数据n 由于数据文件本身是文本明文,所以可以直接使用h
19、dfs的拷贝文件导出n 如果需要改劢数据格式,可以使用 insert overwrite,如下例DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师语句selectn 大部分语句的语法和常见的关系型数据库Oracle,MySQL等类似,实现的是它们的一个子集n 存在一些差异(见Programming Hive第80页DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师使用正则表达式DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师函数n 列表见Programming Hive第83页开始的几个表格n Explode函数DATAGURU与业数据分
20、析社区Hadoop数据分析平台 第3版讲师Nested SelectDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师一些优化小技巧n 聚组操作优化(第86页)n 使用“本地模式”(第92页)DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师连接操作n 支持大部分常见的关系代数连接方式(各种内连接,外连接,半连接等)n 连接是缓慢的操作!n 使用“map-side joins”优化连接(第105页)DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师排序n Order by不sort byn Distribute byn Cluster by
21、DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师bucketn 抽样是数据分析里常见的操作,Hive可以直接支持n Bucket的概念(第110页)DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师块级抽样DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师视图不索引n Hive具有不关系型数据库基本类似的视图功能(第113页)n Hive叧有非常简单的索引(早期甚至没有索引),关系型数据库的索引是用 B+树算法实现的,Hive的索引叧是简单地把排序数据放到另外一个表中DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师位图
22、索引n Hive 0.8开始引入n 适合列上有大量重复值的场景DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师几个模式设计的例子n Programming Hive第121页DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师执行计划n Explain语句n 阅读执行计划(第132页)DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师hive模式的安装幵解 压Hivenn wgetDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师设置环境变量DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师配置文件DAT
23、AGURU与业数据分析社区Hadoop数据分析平台 第3版讲师修改配置文件hive-env.shcp hive-env.sh.templatehive-env.shDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师安装MySQLn 在进程上安装好MySQL幵MySQL服务n 查看Mysql是否安装DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师建立相应的MySQL账号并赋予足够的权限DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师用hive账号登录MySQL并建立hive与用的元数据库DATAGURU与业数据分析社区Hadoop数据分析
24、平台 第3版讲师修改配置文件hive-site.xml下面为原文档的配置参数,须将原文档里面的相应配置参数修改DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师修改配置文件hive-site.xmlcp hive-default.xml.template hive-site.xml添加并修改里面的配置参数<property><name>hive.metastore.local</name><value>false</value></property><property><name>
25、javax.jdo.option.ConnectionURL</name><value>jdbc:mysql:/user4:3306/hive?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property&
26、gt;<name>javax.jdo.option.ConnectionUserName</name><value>hive</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><property><name>hive.metastore.uris</name><
27、;value>thrift:/:9083</value></property>DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师修改配置文件hive-site.xmlDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师注意n hive-0.12.0版本的hive-site.xml文件一个错误,2000行左右的地方将<value>auth</auth>改为<value>auth</value>DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师注意n
28、hive会检查metastore的版本号时,如果从metastore数据源中没有返回版本号,则会异常:n 由于第一次metastore服务时,mysql作为数据源的hive数据库内没有生成任何表和数据,所以会出现返回的版本号为 空的情况。我们可以暂时在hive.metastore.schema.verification里设置成false,在第一次自劢生成了数据后,那可以将这个配置值再改回truen 将hive.metastore.schema.verification里设置成falseDATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师MySQL的JDBC驱动包n 将MySQL的JDBC驱劢包 mysql-connector-java-5.1.12.jarlib目录下到Hive的DATAGURU与业数据分析社区Hadoop数据分析平台 第3版讲师启动hive前的准备n 进程的MySQL要先service mysqld startn hadoop 集群n hive -service metastore &(注意是两个-n hive -service h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《汉语阅读教程》课件-教学课件:汉语阅读教程
- 2025标准办公室装修设计合同
- 湖南省长沙市雅礼教育集团2024-2025学年高一下学期期中考试物理试题(原卷版)
- 钝痛的临床护理
- 2025金融服务行业中介居间合同范本
- 2025汽车买卖的合同范文
- 江苏移动2025春季校园招聘笔试参考题库附带答案详解
- 2025房产交易合同样本:个人房屋买卖协议
- 2025年公共营养师之二级营养师题库综合试卷B卷附答案
- 胃出口梗阻的临床护理
- (二模)济宁市2025年4月高考模拟考试地理试卷
- 首都医科大学附属北京安贞医院招聘考试真题2024
- 抽化粪池合同协议
- 中医养生馆运营方案中医养生馆策划书
- (二模)宁波市2024-2025学年第二学期高考模拟考试 英语试卷(含答案)+听力音频+听力原文
- 高考备考:100个高考常考易错的文言实词(翻译+正误辨析)
- 软件项目交付管理制度
- 知识产权现场审核记录表模板
- 机械系统动力学试题及答案
- 食品安全自查、从业人员健康管理、进货查验记录、食品安全事故处置等保证食品安全的规章制度
- 2024年吉林省中考满分作文《情味浸润的时光》4
评论
0/150
提交评论