大数据核心技术有哪些

大数据核心技术有哪些,第1张

大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、数据库、数据仓库、机器学习、并行计算、可视化等。

1、数据采集与预处理:FlumeNG实时日志收集系统,支持在日志系统中定制各类数据发送方,用于收集数据;Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供数据同步服务。

2、数据存储:Hadoop作为一个开源的框架,专为离线和大规模数据分析而设计,HDFS作为其核心的存储引擎,已被广泛用于数据存储。HBase,是一个分布式的、面向列的开源数据库,可以认为是hdfs的封装,本质是数据存储、NoSQL数据库。

3、数据清洗:MapReduce作为Hadoop的查询引擎,用于大规模数据集的并行计算。

4、数据查询分析:Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供HQL(HiveSQL)查询功能。Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

5、数据可视化:对接一些BI平台,将分析得到的数据进行可视化,用于指导决策服务。

Spark提交程序来说,最终都是通过Spark-submit命令来实现的,不同的是spark-shell在运行时,会先进行一些初始参数的设置,然后调用Sparksubmit来运行,并且spark-shell是交互式的。

下面我们从源代码的角度来解释。

首先看下Spark-Shell命令,其中它会调用main方法

在mian方法中,会调用spark-submit 并传入—class的参数(入口类)为orgapachesparkreplMain,设置应用程序名—name “Spark shell” 传入spark-shell接收的所有参数$@。

而在Spark-submit中是通过exec命令启动进程的,如下图:

总结:所用的应用程序最后的提交都是由spark-submit完成的,其他程序的调用只是对spark-submit的参数进行设置后,调用spark-submit来完成应用程序的提交到集群的 *** 作。

通过前面的介绍我们知道,Spark的客户端(Driver)有两种:Spark Submit和Spark Shell。这两种客户端相同点都是维护一个Spark Context对象,来向Spark集群提交任务;不同点是Spark Submit只能提交任务,不能交互,而Spark Shell是一个命令行工具,即可以提交任务,还可以人机交互。本节先来介绍Spark Submit客户端的使用。

例子:使用蒙特卡罗方法计算圆周率

如图所示,蒙特卡罗方法求圆周率,使用的是概率的思想:往正方形区域随机撒点,总点数记为P2,落在单位圆区域内的点数记为P1,单位圆的面积为π,正方形的面子为4,π = P1 / P2 4。这里的P1和P2均由随机实验中得到,实验的次数(P2)越多,得到的结果就越精确。

Spark提供的测试用例$SPARK_HOME/examples/jars/spark-examples_211-210jar中就有蒙特卡罗求圆周率的例子SparkPI,我们就使用它来介绍Spark Submit的使用。

(1)如果配置了基于Zookeeper的Spark HA,需要先启动Zookeeper服务器

(2)启动Spark集群

使用Spark Submit的命令格式如下:

(1)提交SparkPI任务,随机实验次数为100:

(2)提交SparkPI任务,随机实验次数为1000:

(3)提交SparkPI任务,随机实验次数为10000:

可以看到上面三次实验的结果分别是:

一般对于随机实验来说,试验次数越多结果越精确。但是不免存在误差。如果想要获取更精确的圆周率,你可以输入更多的次数进行测试。但这不是本文介绍的重点。

至此,使用Spark Submit客户端提交Spark任务的方法已经介绍完毕,祝你玩的愉快!

(翻译自 官网 )

Oozie是一个用于管理Apache Hadoop作业的工作流调度程序系统。

Oozie Workflow job是由多个Action组成的有向无环图(DAG)。

Oozie Coordinator job是根据时间(频率)和数据可用性触发的可重复执行的Oozie Workflow job(简单讲就是根据时间或数据条件,规划workflow的执行)。

Oozie与Hadoop技术栈的项目集成,支持多种类型的Hadoop作业(例如Java map-reduce,Streaming map-reduce,Pig,Hive,Sqoop和Distcp,Spark)以及系统特定的工作(例如Java程序和shell脚本)。

Oozie是一个可水平扩展,可靠和可使用扩展插件(scalable, reliable and extensible)的系统。

这里使用cdh虚拟机自带的oozie examples中的例子,执行hdfs dfs -put examples examples,将examples上传到hdfs。

打开apps/shell/ 可以看到jobproperties和workflowxml两个文件,在workflowxml中定义action和workflow,在jobproperties中定义各种变量。示例如下:

jobproperties

workflowxml

可以看到这里定义了一个shell workflow,它的DAG如下:

首先是start,end,kill三个控制节点,分别指定了workflow开始时,结束时,kill时的行为。

start指向了一个名为shell-node的action,该action执行了ehco命令,并使用capture-output获取标准输出。如果执行成功,则进入decision node check-output如果输出结果正确则顺利结束,否则输出错误信息。

然后使用以下命令测试(这里的config是使用的是本地文件)

oozie job -oozie >

以上就是关于大数据核心技术有哪些全部的内容,包括:大数据核心技术有哪些、Spark-shell和Spark-submit提交程序的区别、Spark从入门到精通7:Spark客户端之Spark Submit的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10209818.html

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

发表评论

登录后才能评论

评论列表(0条)

保存