hadoop hive *** 作 是封装在shell脚本好还是java中好

hadoop hive  *** 作 是封装在shell脚本好还是java中好,第1张

其实把hive做到shell里面最大的优势是可以定时执行,比如之前做一个论坛用户日志分析的时候,需要定时对hive导入数据,并在hive里面对数据做预处理,最后把hive处理的数据导入到hbase中 这样的实现起来用java显然就没有用shell有优势,因为shell写好了丢那 执行linux定时任务就好了,但是shell有个明显的缺陷就是不灵活,不能根据需求和功能做灵活调用,这时候做到java里面就比用shell写死的好很多,比如做即时需求,点某个功能按键的时候就需要跑hive,明显就是java更好嘛

Hadoop处理完全依赖于MapReduce框架,这要求用户了解Java编程的高级样式,以便成功查询数据。Apache Hive背后的动机是简化查询,并将Hadoop非结构化数据开放给公司中更广泛的用户群。

Hive有三个主要功能:数据汇总,查询和分析。它支持名为HiveQL或HQL的语言表达的查询,HQL是一种声明性的类SQL语言,在其第一个版本中,它自动将SQL样式的查询转换为在Hadoop平台上执行的MapReduce。此外,HiveQL支持自定义MapReduce脚本,以便查询。

当通过Hive提交SQL查询时,它们最初由创建会话句柄的驱动程序组件接收,通过Java数据库连接/开放数据库连接接口将请求转发给编译器,随后转发作业以供执行。Hive支持数据序列化/反序列化,并通过包含名为Hive-Metastore的系统目录来提高模式设计的灵活性。

SerDe是Serialize/Deserilize的简称,目的是用于序列化和反序列化。

序列化是对象转换为字节序列的过程。

序列化是字节序列恢复为对象的过程。

对象的序列化主要有两种用途:对象的持久化,即把对象转换成字节序列后保存到文件中;对象数据的网络传送。

除了上面两点, hive的序列化的作用还包括:Hive的反序列化是对key/value反序列化成hive table的每个列的值。Hive可以方便的将数据加载到表中而不需要对数据进行转换,这样在处理海量数据时可以节省大量的时间。

SerDe说明hive如何去处理一条记录,包括Serialize/Deserilize两个功能, Serialize把hive使用的java object转换成能写入hdfs的字节序列,或者其他系统能识别的流文件。Deserilize把字符串或者二进制流转换成hive能识别的java object对象。比如:select语句会用到Serialize对象, 把hdfs数据解析出来;insert语句会使用Deserilize,数据写入hdfs系统,需要把数据序列化。

hive创建表时, 通过自定义的SerDe或使用Hive内置的SerDe类型指定数据的序列化和反序列化方式。

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name

[(col_name data_type [COMMENT col_comment], )]

[COMMENT table_comment]

[PARTITIONED BY (col_name data_type [COMMENT col_comment], )]

[CLUSTERED BY (col_name, col_name, )

[SORTED BY (col_name [ASC|DESC], )]

INTO num_buckets BUCKETS]

[ROW FORMAT row_format]

[STORED AS file_format]

[LOCATION hdfs_path]

如上创建表语句, 使用row format 参数说明SerDe的类型。

Avro

ORC

RegEx

Thrift

Parquet

CSV

JsonSerDe

自定义类型使用的步骤:

以上就是关于hadoop hive *** 作 是封装在shell脚本好还是java中好全部的内容,包括:hadoop hive *** 作 是封装在shell脚本好还是java中好、Apache Hive的工作原理是什么、Hive系列之SerDe等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9875879.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存