用Zeppelin笔记本运行Spark程序

by vincent 2018-05-21

Apache Spark是一个快速,通用的分布式计算平台,并且为大数据领域带来了革命性的变化,比Hadoop的MapReduce快10到100倍。通过支持Python,Java,Scala以及R,Spark对广泛的用户提供了运算平台,从对Python和R比较偏好的的数据科学家社区,到普遍存在的Java社区以及使用日益流行的Scala社区,Spark似乎被运用的越来越广泛,然而,搭建一个Spark的运行环境,并让他和已经存在的大数据原有组件进行兼容,是一个耗时间且复杂的事情。

通过本文,你可以即刻在Zeppline上运行你的Spark程序,并且通过Zeppelin提供的交互式分析查询提供了可视化界面,你可以大大集中在数据挖掘,分析,和机器学习上面,并不需要担心任何,有关编译,依赖,配置的问题。通过BDOS启动的Zeppline,是一个一开始就可以和你现有的大数据组件和数据兼容的环境,你可以随时使用存在BDOS里面其他组件里面的数据,并且Zeppline里面运行结束的数据,也可以供给给其他的组件使用。

使用场景

场景1

自定义数据库的数据可视化和统建 – 通过使用Apache Zeppelin编译器概念,你可以将任何语言/数据处理后端插入Zeppelin。 Zeppelin支持许多编译器,如Apache Spark,Python,JDBC,Markdown和Shell。通过这个特性你可以为轻松实现使用存储在BDOS的MongoDB和MySQL的数据,通过你的Spark程序来查询并可视化真个过程,从而获取你的商业洞见。

场景2

交通事件可视化和预测 – 通过使用BDOS提供的一站式环境,你可以一站式分析,交通事件的数据,通过事件发生的类型,事件发生的日期和时间和事件地点的经纬度,将所有的这一些集中一起并提取其中能够被预见的事情,能够大大的辅助队城市交通的治理工作,而达到这一切,你仅仅只需要在BDOS上接通所需事件的事件数据集,数据提取与探索,数据操作,数据可视化,Spark&R的程序进行探索,所有的这一些步骤,仅仅只需要几次点击即刻在BDOS上完成。

场景3

探索性分析 – 数据科学家需要做探索性分析,通常必须对数据进行采样,想要快速并且高效的实现的话。他们需要一个完全进行交互式探索的平台,无论选择的开发语言是SQL,R,Python还是Scala,他们都能快速的进行交互式的探索实验,并随时随地对“小数据”用例进行分析,一个基于浏览器的界面,笔记本样式的交互界面可以大大提升数据科学家研究效率。

操作步骤

首先我们进入BDOS平台,点击左边的[“快速体验”]菜单,然后在[“快速入口”]选择[“运行Spark程序”],即进行如图1所示的界面。

图1

导入笔记本

进入到了图1所示的界面后,点击左边的“导入笔记本”。在接下来的弹出窗口中点击“Add as URL”,在如图2所示的界面中,“URL”这一栏输入如下的网址:

https://raw.githubusercontent.com/linktimecloud/artifacts/master/kmeans.json


图2

导入笔记本完毕后回到Zeppelin主界面,这时你再点击左边的“K-means教程”就会进入如图3所示的笔记本界面。

图3

网络入侵分析简介

我们展示的这个笔记本主要是用来分析对于企业网址的入侵式访问。
网络入侵的检测场景包括:检测-预测-防范-解除网络入侵,是“政府、金融、运营商、公安、能源、工商、社保、交通、卫生、教育、电子商务”等所有涉及网络应用的各个行业都需要高度重视的问题,传统的检测手段,已经难以应对日益增长的数据趋势,以及实时动态响应入侵事件的能力

你的企业可以使用BDOS企业版上搭建上述入侵防御系统完整闭环,帮助你的企业主动防护网络、主机系统,为信息安全提供最大的保障。

通过已经导入的K-means网络入侵的检测算法的笔记本,我们来直观浏览一下你的数据科学家如何在你的企业决定投入资金搭建一个入侵防御系统之前,去验证机器学习的论证是正确的,并且能够在一个方便,快捷的环境下调试代码,得出最适合的商业场景的算法结论。

如图所示,在我们提供的示例里面,我们通过9个步骤最后得出一个含有潜在异常网络访问的列表,在生产环境中,你可以将得出的数据集,通过在BDOS上搭建的Kafka主题的传入事务进行消费,随后发布入侵警报或将事务发布到一个显示大屏上面进展示,或者进行其他操作。

运行网络入侵分析算法

接下来,我们推荐你重新运行一下这个程序,然后观察一下真个过程的运行过程以及实时打印的日志,以便去模拟真实的生产环境当中的应用。如图3所示,点击顶部红色框标记内的运行按钮,在弹出的对话框中选择”OK”(运行所有的作业),随后可以在笔记本里查看作业的整体运行状况。每个步骤完成后,如图4所示,在右边的状态栏会显示“finished”状态。

图4

理解K-means网络入侵算法

在这个示例中,我们提供的分析方法采用的是K-means算法。K-means是经典的聚类算法,从代码当中你可以看到,我们按照一定的要求和规律对数据集进行分区和分类,这种做法属于构建一个入侵检测系统当中使用异常检测算法的策略,通过建立一个正常行为的模型,将攻击行为作为异常活动从大量的正常活动中检测出来,达到对攻击行为检测的目的。

进一步修改代码

我们非常鼓励你去更改我们的示例代码,甚至可以更改数据集,来测试,并且调整算法和模型来,测试不同的结果。根据你的使用场景的不一样,你也可以将检测的算法切换为误用检测算法,或者是人工智能算法,并且更换你自己的数据集对我们提供的示例案例进行扩展。

留言

评论

${{item['author_name']}} 回复 ${{idToContentMap[item.parent] !== undefined ? idToContentMap[item.parent]['author_name'] : ''}} · ${{item.date.slice(0, 10)}} 回复

暂时还没有一条评论.