【大数据】Summingbird(Storm + Hadoop)的demo运行
一、前言
为了运行summingbird demo,笔者走了很多的弯路,并且在国内基本上是查阅不到任何的资料,耗时很久才搞定了demo的运行。真的是一把辛酸泪,有兴趣想要研究summingbird的园友且听笔者一一道来,大体可以将summingbird理解为Storm + Hadoop。
二、大数据处理快速预览
大数据时代的来临,将大数据处理分为了批量处理与实时处理两个方向,批量处理的优势在于容错性好,因为数据时先存在本地或者是分布式的进行存储,可以重复对数据进行处理,劣势在于速度慢,要等到数据全部存入之后才开始批量处理。对于实时处理而言,优势则是速度很快,实时进行计算,劣势则是容错性不好,因为数据流进内存再流出,筛选出有用的数据,而不是对所有的数据进行存盘处理,所以当想要再次运行之前的数据则是不可能,也就是其处理的数据不可在现性。单单靠批处理或者实时处理已经越来越难满足多样化的需求,势必要将两者融合起来进行处理。既保持着批处理的容错性,又保持着实时处理的实时性。下面就是本文的主角-summingbird,无缝融合批量计算与实时计算。
三、学习summingbird所需要搭建的环境
笔者的机器OS为linux,要运行summingbird,搭建机器搭建的环境如下:
1.zookeeper
2.kafka
3.memcached
4.scala
四、学习summingbird所需要了解的技能
1.应该对sbt有些了解
2.对scala语言比较熟悉
3.对storm与hadoop的工作原理应该比较熟悉
五、Demo的探索运行
感兴趣的园友可以在github上搜索summingbird,就对会其有大概的了解。当然也可以按照github官方教程来进行demo的运行,如果顺利的话,是不会有结果的,因为GFW的存在,导致官方教程中的Twitter流无法顺利接入到程序中。所以肯定是运行不了,笔者刚开始的时候也尝试过,均已失败告终,之后不断google,并且在Twitter上不断询问项目的发起人。又开始不断尝试,又以失败告终。之后再github找到了一个实例,该实例结合了storm和hadoop,因此心中一喜,继续开始研究,按照步骤一步步开始,最后,结果还是失败了。看错误是发现因为有些jar包取不到,还是GFW的原因,无法在twitter的maven仓库中取得相应的jar包,由于笔者之前没有研究过maven和sbt,接下来就开始学习sbt和maven,当然也没有特别深入的学习,只是掌握一些基本的用法,能够看懂sbt文件和maven文件。之后打开了项目的sbt文件,发现里面所依赖的库被墙了,于是乎,开始改为oschina中的maven仓库。
六、终于成功运行
具体的项目代码已经托管到github上面,只需要按照步骤来,就可以得到正确的结果,也希望各位园有可以多多指教。下一步就开始从本地数据库开始导入数据进行处理。
七、体会
学习大数据涉及到的知识面确实是挺广,要掌握的知识很多很多,所以一定要扎扎实实的进行研究。不得不说中国的防火墙GFW确实是名不虚传,厉害。在保护网络的同时也确实是给开发者带去了一些不必要的麻烦。However,最终还是成功运行了。谢谢各位园友观看~
github路径如下:https://github.com/leesf/summingbird-hybrid-example-china
也欢迎各位园友fork 和star。
【大数据】Summingbird(Storm + Hadoop)的demo运行的更多相关文章
- 一篇了解大数据架构及Hadoop生态圈
一篇了解大数据架构及Hadoop生态圈 阅读建议,有一定基础的阅读顺序为1,2,3,4节,没有基础的阅读顺序为2,3,4,1节. 第一节 集群规划 大数据集群规划(以CDH集群为例),参考链接: ht ...
- 大数据测试之初识Hadoop
大数据测试之初识Hadoop POPTEST老李认为测试开发工程师是面向测试的开发,也就是说,写代码就是为完成测试任务服务的,写自动化测试(性能自动化,功能自动化,安全自动化,接口自动化等等)的cas ...
- 大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)
大数据时代之hadoop(一):hadoop安装 大数据时代之hadoop(二):hadoop脚本解析 大数据时代之hadoop(三):hadoop数据流(生命周期) 大数据时代之hadoop(四): ...
- 大数据 --> Spark与Hadoop对比
Spark与Hadoop对比 什么是Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法 ...
- 大数据计算框架Hadoop, Spark和MPI
转自:https://www.cnblogs.com/reed/p/7730338.html 今天做题,其中一道是 请简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什 ...
- 【大数据】了解Hadoop框架的基础知识
介绍 此Refcard提供了Apache Hadoop,这是最流行的软件框架,可使用简单的高级编程模型实现大型数据集的分布式存储和处理.我们将介绍Hadoop最重要的概念,描述其架构,指导您如何开始使 ...
- 初识大数据(二. Hadoop是什么)
hadoop是一个由Apache基金会所发布的用于大规模集群上的分布式系统并行编程基础框架.目前已经是大数据领域最流行的开发架构.并且已经从HDFS.MapReduce.Hbase三大核心组件成长为一 ...
- 学习大数据基础框架hadoop需要什么基础
什么是大数据?进入本世纪以来,尤其是2010年之后,随着互联网特别是移动互联网的发展,数据的增长呈爆炸趋势,已经很难估计全世界的电子设备中存储的数据到底有多少,描述数据系统的数据量的计量单位从MB(1 ...
- 大数据入门:Hadoop安装、环境配置及检测
目录 1.导包Hadoop包 2.配置环境变量 3.把winutil包拷贝到Hadoop bin目录下 4.把Hadoop.dll放到system32下 5.检测Hadoop是否正常安装 5.1在ma ...
- 实时流Streaming大数据:Storm,Spark和Samza
当前有许多分布式计算系统能够实时处理大数据,这篇文章是对Apache的三个框架进行比较,试图提供一个快速的高屋建瓴地异同性总结. Apache Storm 在Storm中,你设计的实时计算图称为top ...
随机推荐
- Adobe Flash Builder 4.7破解方法(绝对可用)
Flash Builder4.7 破解方法的实践 建议:作为草根一级,买不起正版,只能先拿破解版练练手了,如果商业的话,请用正版. 具体步骤如下: 1.到Adobe官网下载FlashBuilder ...
- 如何在MFC中创建非矩形button
一般情况下,我们创建的按钮都是矩形的,但有时为了满足特殊的需求,我们要在对话框中创建一个非矩形的按钮,比如,圆形,椭圆等. 要实现一个非矩形的按钮,这就涉及到了自绘控件.自绘控件的方法有很多,可以参考 ...
- 'sessionFactory' or 'hibernateTemplate' is required解决方法
这种情况就是在通过spring配置hibernate4的时候(注意,这里是hibernate4不是hibernate3,hibernate3的),使用的是HibernateDaoSupport的这种方 ...
- dojo分析之declare接口
欢迎转载opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e=57 declare接口是dojo定义类系统的关键函数, 类系统就是抽象,封装,继承.do ...
- \(\S1 \) Gaussian Measure and Hermite Polynomials
Define on \(\mathbb{R}^d\) the normalized Gaussian measure\[ d \gamma(x)=\frac{1}{(2\pi)^{\frac{d}{2 ...
- Yii2 中自定义实例名称
Yii2高级模板中,以frontend 和backeend的模式来分离前后台,这样的优势是 工程可以独立开发和部署.很大程度上起到解耦作用. 如果我们希望再增加名为 [api]一个过程怎么办? 第一步 ...
- C# 轻量级ORM 编写思维
目标: 降低研发人员门槛,提高效率,去除重复引用DLL的工作,基础配置由抽象工厂处理. 基础扩展 /// <summary> /// DataTable 转换为List 集合 /// &l ...
- Linux Ubuntu上手动安装.NET Core SDK
今天重装了一台Linux服务器的Ubuntu 14.04系统,需要重新安装.NET Core 1.0. 按照官网上的文档用apt-get命令进行安装: sudo sh -c 'echo "d ...
- 作业三:代码规范、代码复审、PSP
一.代码规范 我认为我们编写的代码都需要进行规范的操作,因为如果为了图省事情或者为了减少时间去完成这个编程.在最后检验的时候就会出现一些警告,导致你这次编程的代码出现问题,当出现问题的时候你在回头去检 ...
- [.net 面向对象编程基础] (14) 重构
[.net 面向对象编程基础] (14) 重构 通过面向对象三大特性:封装.继承.多态的学习,可以说我们已经掌握了面向对象的核心.接下来的学习就是如何让我们的代码更优雅.更高效.更易读.更易维护.当然 ...