数仓工具—Hive streaming(10)
streaming
HIVE是通过利用或扩展Hadoop的组件功能来运行的,常见的抽象有InputFormat、OutputFormat、Mapper、Reducer,还包含一些自己的抽象接口,例如SerializerDeserializer(SerDe)、用户自定义函数(UDF)和StorageHandlers。这些组件都是java组件,不过hive将这些复杂的底层实现隐藏起来了,而提供给用户通过SQL语句执行的方式,而不是使用java代码
streaming 提供了另一种处理数据的方式。在streaming job中,Hadoop StreamingAPI会为外部进程开启一个I/O管道。然后数据会被传给这个进程,然后数据从标准输入中读取数据,然后通过标准输出来写结果数据,最后返回到Streaming API job。尽管HIVE并没有直接使用Hadoop的StreamingAPI,不过他们的工作方式是一致的。这种管道计算模型对于Unix操作系统以及其衍生系统,如Linux和Mac OS X的用户来说是非常熟悉的。
Streaming的执行效率通常会比对应的编写UDF或改写InputFormat对象的方式要低。管道中的序列化和反序列化数据通常是低效的。而且以通常的方式很难调试整个程序。不过,对于快速原型设计和支持非java编写的已有的代码是非常有用的。对于那些不想写java代码的HIVE用户来说,这也是一个高效的方式
HIVE中提供了多个语法来使用Streaming,包括:MAP()、REDUCE()、TRANSFORM(),你可以在sql 中使用一些脚本去处理一些任务,脚本分为mapper 端的脚本和reducer 端的脚本,MAP()实际上并非可以强制在map阶段执行Streaming,同样REDUCE(
相关文章
- 如何利用记事本以提高工作效率?巧用这款便签记事工具
- 网络抓包工具
- 10个针对企业的免费大数据分析工具
- 数据库内核月报 - 2015 / 10-PgSQL · 特性分析 · pg_receivexlog工具解析
- 【工具收藏】golang 开发工具包,json、sql 转 struct
- 10款神奇的字符图案 & 词汇云生成工具
- AI之AutoML:autosklearn/Auto-Sklearn(基于scikit-learn库的自动化的机器学习工具)的简介、安装、使用方法之详细攻略
- 【华为云技术分享】敏捷开发落地不实际?原因可能在于你的 IDE 工具
- 还在用背单词App?使用Python开发英语单词自测工具,助你逆袭单词王!
- Guava中基础工具类Joiner的使用&字符串拼接方法 joiner.on
- 【软件简史】怎样理解 Alan Kay 曾在1984 年写道:“我们希望像以前编辑文档一样编辑我们的工具” 这句话 —— LLM 将如何影响软件的创建?
- 高通工具QXDM、QCAT和QPST的使用
- Navicat Premium 16.X--不错的数据库工具
- 【Ansible自动化运维工具】ansible的角色基本使用
- App自动化测试——定位工具和元素定位策略