如何从零开始学习并开发基于Java的Spark脚本?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2476个文字,预计阅读时间需要10分钟。
前言:由于工作需要,需要分析最近几天Nginx日志数据。之前也有过类似需求,但当时数据量不大,只有几百到几千条。因为数据都存储在Hive中,当时的做法是将数据提取出来。
具体步骤如下:
1. 使用Hive SQL查询出最近几天的Nginx日志数据。
2.将查询结果导出到本地文件系统。
3.使用工具(如Python)读取本地文件,解析日志数据。
4.对解析后的数据进行统计分析,得出所需结果。
前言最近由于工作需要,要分析大几百G的Nginx日志数据。之前也有过类似的需求,但那个时候数据量不多。一次只有几百兆,或者几个G。因为数据都在Hive里面,当时的做法是:把数据从Hive导到MySQL,然后写代码查询MySQL并处理。如果你的处理逻辑比较简单,或只是查询统计,不会涉及上游的服务调用,也可以直接写Hive SQL。
上面的做法在面对少量数据时还可以应付,对于大量数据就很不可取了。从Hive导数据到MySQL,光这一步就够呛,就更别说自己写的Java脚本效率性能如何了。请教同事过后,告诉我可以用Spark,并潇洒地丢给我一个Spark-Demo的jar包。之前只接触过HDFS和Hive,Spark只听说过,也准备学,但一直没时间。这下好了,有了带薪学习的机会。其实照着同事给我的jar包,照葫芦画瓢也能写出来,但是很多API都非常陌生,写出来的代码自己也不放心,所以还是有必要学学Spark的。
不过从头开始,完整学一遍Spark的话,时间肯定不够。当时接需求时,虽然知道自己不会,但是还挺相信自己的学习能力的,承诺了开发时间。所以我们的目标就是——用Spark处理Hive里面的数据,并把结果输出到MySQL中。
本文共计2476个文字,预计阅读时间需要10分钟。
前言:由于工作需要,需要分析最近几天Nginx日志数据。之前也有过类似需求,但当时数据量不大,只有几百到几千条。因为数据都存储在Hive中,当时的做法是将数据提取出来。
具体步骤如下:
1. 使用Hive SQL查询出最近几天的Nginx日志数据。
2.将查询结果导出到本地文件系统。
3.使用工具(如Python)读取本地文件,解析日志数据。
4.对解析后的数据进行统计分析,得出所需结果。
前言最近由于工作需要,要分析大几百G的Nginx日志数据。之前也有过类似的需求,但那个时候数据量不多。一次只有几百兆,或者几个G。因为数据都在Hive里面,当时的做法是:把数据从Hive导到MySQL,然后写代码查询MySQL并处理。如果你的处理逻辑比较简单,或只是查询统计,不会涉及上游的服务调用,也可以直接写Hive SQL。
上面的做法在面对少量数据时还可以应付,对于大量数据就很不可取了。从Hive导数据到MySQL,光这一步就够呛,就更别说自己写的Java脚本效率性能如何了。请教同事过后,告诉我可以用Spark,并潇洒地丢给我一个Spark-Demo的jar包。之前只接触过HDFS和Hive,Spark只听说过,也准备学,但一直没时间。这下好了,有了带薪学习的机会。其实照着同事给我的jar包,照葫芦画瓢也能写出来,但是很多API都非常陌生,写出来的代码自己也不放心,所以还是有必要学学Spark的。
不过从头开始,完整学一遍Spark的话,时间肯定不够。当时接需求时,虽然知道自己不会,但是还挺相信自己的学习能力的,承诺了开发时间。所以我们的目标就是——用Spark处理Hive里面的数据,并把结果输出到MySQL中。

