《Storm实时数据处理》一1.2 搭建开发环境

简介:

本节书摘来华章计算机《Storm实时数据处理》一书中的第1章 ,第1.2节,(澳)Quinton Anderson 著 卢誉声 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 搭建开发环境

开发环境涵盖了构建Storm Topology所需的各种工具和系统。虽说本书重点关注的是每个有技术侧重点的Storm交付,但需要指出的是,对于一个软件开发团队来说,无论使用集中式开发环境还是分布式开发环境,都需要更多的工具和流程来保证高效工作,而且不能仅仅局限于本书所讨论的内容。
无论是为了将来的开发工作,还是为了实现书中的例子,以下几类工具和流程都是快速搭建开发环境必不可少的:

  • SDK
  • 版本控制
  • 构建环境
  • 系统配置工具
  • 集群配置工具

书中描述的配置和安装方法都基于Ubuntu。不管怎么说,适用于Ubuntu的这些方法还是比较容易移植到其他Linux发行版中的。如果将这些方法应用于其他发行版时出现任何问题,你可以通过Storm邮件列表寻求支持:https://groups.google.com/forum/#!forum/storm-user
环境变量是导致系统可操作性和可用性下降的“罪魁祸首”,如果部署环境与开发环境不同,那么环境变量很可能在这时引起大问题。所以尽可能让开发环境和部署环境保持一致。

1.2.1 实战

Step01 从Oracle网站(http://www.oracle.com/technetwork/java/javase/downloads/index.html)下载最新版本的J2SE 6 SDK,并通过以下命令进行安装:

image

Step02 然后安装版本控制系统Git:
image

Step03 接下来,安装构建系统Maven:
image

Step04 安装Puppet、Vagrant和VirtualBox,以便于对应用程序和环境进行配置:
image

Step05 最后,你还需要安装一个集成开发环境(IDE):
image

自从Sun公司被Oracle收购以后,人们就一直在争论该使用哪种Java SDK。虽说作者理解OpenJDK的必要性,但书中的例子都是在Oracle JDK下测试通过的。总的来说,OpenJDK和Oracle JDK没有什么区别,只是Oracle JDK为了追求稳定而在功能方面相对滞后。

1.2.2 解析

对于任何Java开发工作来说JDK都是必不可少的。GIT是近几年被广泛采用的开源分布式版本控制系统。稍后我们将简要介绍GIT。
Maven是一种广泛使用的“约定优于配置”的构建系统。Maven包含了许多有用的功能,比如项目对象模型(POM),POM能够让我们以有效的方式管理库、依赖和版本。Maven在互联网上拥有许多二进制仓库可供使用,所以我们可以直接用恰当的方式来维护二进制依赖项,然后打包部署Topology。
由于DevOps和持续交付的不断发展,Puppet 系统已经被广泛用于为Linux、其他一些操作系统和应用程序提供声明式服务器配置。Puppet能够对服务器的状态和部署环境进行编程,这一点非常重要,因为这样就可以通过GIT版本控制系统管理服务器状态,而且对于服务器的修改都可以安全删除。这么做好处很多,包括可确定的服务器平均恢复时间(MTTR)和审计跟踪,说白了就是让系统更加稳定。这对实现持续交付来说至关重要。
Vagrant是一个在开发过程中非常有用的工具,它能自动配置VirtualBox虚拟机,这对Storm处理系统这样的以集群为基础的技术来说尤为重要。为了测试一个集群,你必须构建一个真正的机群或配置多台虚拟机。Vagrant能准确无误地在本地配置虚拟机。
虚拟机在IT运维和系统开发过程中能够大显身手,但需要指出的是,虽然我们都知道在本地部署的虚拟机性能不太理想,但其可用性却完全依赖于可用的内存容量。处理能力不是需要考虑的主要问题,因为现代处理器的利用率普遍严重偏低,尽管处理Topology时利用率会高一些。建议你的计算机至少保留8GB的内存容量。

相关文章
|
消息中间件 存储 大数据
实时流处理框架之Storm的安装与部署
实时流处理框架之Storm的安装与部署
196 0
实时流处理框架之Storm的安装与部署
|
存储 运维 OLAP
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现1
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现1
433 0
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现1
|
存储 流计算
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现2
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现2
219 0
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现2
|
消息中间件 算法 固态存储
主流实时流处理计算框架Flink初体验。
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。Flink 被设计为在所有常见的集群环境中运行,以内存中的速度和任何规模执行计算。Apache Flink 是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架。
主流实时流处理计算框架Flink初体验。
|
消息中间件 分布式计算 数据可视化
通过Flink+NBI可视化构建实时分析系统
Flink: Apache Flink是一个计算框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。 Flink主要特点: 1、高吞吐、低延迟、纯流式架构; 2、支持对乱序事件的处理; 3、有状态、提供exactly-once计算; 4、高度灵活的窗口机制; 5、失败恢复、故障转移、水平扩展; 6、批处理、流处理统一的API
通过Flink+NBI可视化构建实时分析系统
|
消息中间件 SQL 搜索推荐
基于 Confluent + Flink 的实时数据分析最佳实践
在实际业务使用中,需要经常实时做一些数据分析,包括实时PV和UV展示,实时销售数据,实时店铺UV以及实时推荐系统等,基于此类需求,Confluent+实时计算Flink版是一个高效的方案。
|
消息中间件 SQL 搜索推荐
基于Confluent+Flink的实时数据分析最佳实践
在实际业务使用中,需要经常实时做一些数据分析,包括实时PV和UV展示,实时销售数据,实时店铺UV以及实时推荐系统等,基于此类需求,Confluent+实时计算Flink版是一个高效的方案。
820 0
|
SQL 关系型数据库 Apache
如何使用实时计算 e2e 搭建实时数仓(上)+(下)|学习笔记
快速学习 如何使用实时计算 e2e 搭建实时数仓(上)+(下)
198 0
|
SQL 消息中间件 弹性计算
基于Flink+ClickHouse构建实时游戏数据分析最佳实践
本实践介绍如何快速收集海量用户行为数据,实现秒级响应的实时用户行为分析,并通过实时流计算、云数据库ClickHouse等技术进行深入挖掘和分析,得到用户特征和画像,实现个性化系统推荐服务。
基于Flink+ClickHouse构建实时游戏数据分析最佳实践
|
消息中间件 SQL 存储
基于 Flink + ClickHouse 打造轻量级点击流实时数仓
Flink 和 ClickHouse 分别是实时计算和(近实时)OLAP 领域的翘楚,也是近些年非常火爆的开源框架,很多大厂都在将两者结合使用来构建各种用途的实时平台,效果很好。关于两者的优点就不再赘述,本文来简单介绍笔者团队在点击流实时数仓方面的一点实践经验。
基于 Flink + ClickHouse 打造轻量级点击流实时数仓