流处理拓扑
回购: https://github.com/samaitra/streamers
Apache IgniteSink 提供了一个流式连接器, 将闪变数据注入到点火缓存中。接收器将其输入数据发送到点火缓存。要注意的关键功能是 apache 闪变和 apache 点火提供的性能和规模。Apache 闪变可以处理无界和有界的数据集, 并设计为在规模上运行有状态的流应用程序。应用程序计算是分布式的, 同时在集群中执行。Apache 闪变还针对任务的本地状态访问进行了优化, 并对局部状态进行了耐久性检查。Apache 点火提供了流式功能, 允许在内存中的数据网格中以较高的比例摄取数据。
在本文中, 我们将讨论如何使用 apache 闪变和 apache 点燃来构建数据流应用程序。构建数据流应用程序提供了一种在优化和容错方式下将大量有限和无限量的数据摄取到点火簇中的好处。数据摄取率非常高, 每秒可以扩展到上百万的事件。
安装程序: 下载并启动闪变
从下载页面下载二进制文件。您可以选择任何您喜欢的 Hadoop/Scala 组合。如果您打算只使用本地文件系统, 任何 Hadoop 版本都将工作正常。转到下载目录。
解压缩下载的存档
$ cd ~/Downloads # Go to download directory
$ tar xzf flink-*.tgz # Unpack the downloaded archive
$ cd flink-1.5.0
启动本地闪变群集
$ ./bin/start-cluster.sh # Start Flink
检查调度员在http://localhost:8081的 web 前端, 确保所有内容都正常运行。web 前端应报告单个可用的 TaskManager 实例。
调度员: 概述
还可以通过检查日志目录中的日志文件来验证系统是否正在运行:
$ tail log/flink-*-standalonesession-*.log
下载卡夫卡
从下载页 (https://kafka.apache.org/downloads) 下载二进制文件。你可以选择阿帕卡卡夫的 0.10.2.2
版本 scala 2.11
。
启动管理员服务器
$./bin/zookeeper-server-start.sh ./config/zookeeper.properties
启动代理
创建主题 “mytopic”
$ ./bin/kafka-topics.sh --create --topic mytopic --zookeeper localhost:2181 --partitions 1 --replication-factor 1
描述主题 “mytopic”
$ ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic mytopic
在主题中产生某种东西 (写一些东西, 点击进入)
$ ./bin/kafka-console-producer.sh --topic mytopic --broker-list localhost:9092
使用控制台生产者从主题中消耗
$ ./bin/kafka-console-consumer.sh --topic mytopic --zookeeper localhost:2181
克隆阿帕奇点燃
在编写此文档时, 闪变集群中的数据流应用程序的 IgniteSink 支持可在 master
分支com/apache/点燃
建立阿帕奇点燃
$ mvn clean package install -DskipTests
构建闪变程序
$ mvn clean package
提交闪变程序
$ ./bin/flink run streamers-1.0-SNAPSHOT.jar
在主题中产生某种东西 (写一些东西, 点击进入)
$ ./bin/kafka-console-producer.sh --topic mytopic --broker-list localhost:9092
该. 输出文件将在每个时间窗口的末尾打印计数, 只要单词在浮动, 例如:
$ tail -f log/flink-*-taskexecutor-*.out
lorem : 1
bye : 1
ipsum : 4
点燃休息服务
要检查缓存键值, 可以使用 “点火 REST” 服务
$ curl -X GET http://localhost:8080/ignite\?cmd\=getall\&k1\=jam\&cacheName\=testCache
扫描缓存
要检查点火缓存中的所有键, 可以使用以下 REST 服务
$ curl -X GET http://localhost:8080/ignite?cmd=qryscanexe&pageSize=10&cacheName=testCache
点燃网络控制台
点燃 Web 控制台生成说明
- 使用http://docs.mongodb.org/manual/installation的说明安装 MongoDB (版本 > = 3.2. 0 < = 3.4. 15)。
- 安装节点. js (版本 > = 8.0. 0) 使用安装程序从https://nodejs.org/en/download/current为您的操作系统。
- 将目录更改为 “模块/web 控制台/后端”, 然后运行 “npm 安装–无可选” 以下载后端依赖项。
- 将目录更改为 “模块/web 控制台/前端”, 然后运行
npm install --no-optional
以下载前端依赖项。 - 建立一个点火 web 代理模块, 按照 “模块/web 控制台/web 代理/自述文件” 中的说明进行操作。
- 复制点燃-从 “模块/web 控制台/web 代理/目标” 到 “模块/web 控制台/后端/agent_dists” 文件夹的 web 代理-. zip。
- 解压缩点燃-网络代理-. zip 模块/网络控制台/后端/agent_dists。
- 运行 ‘/点燃-网络代理. sh ‘ 内的点燃-网络代理-文件夹
步骤1-4 应该执行一次。
在开发模式下运行点火 Web 控制台
- 将 MongoDB 配置为以服务或终端更改目录运行, 以 $MONGO _install_dir/服务器/3.2/bin, 并通过执行启动 MongoDB
mongod
。 - 在新的终端中, 将目录更改为 “模块/web 控制台/后端”。如果需要运行
npm install --no-optional
(如果依赖项已更改) 并运行npm start
以启动后端。 - 在新的终端中, 将目录更改为 “模块/web 控制台/前端”。如果需要运行
npm install --no-optional
(如果依赖项已更改) 并在开发模式下启动 Webpacknpm run dev
。 - 在浏览器中打开: http://localhost:9000
web 控制台可用于扫描缓存和查看所有缓存内容。
要在完成后停止闪变, 请键入:
$ ./bin/stop-cluster.sh
总结
我们讨论了如何建立一个简单的数据流应用程序使用 apache 闪变和 apache 点燃和创建流处理拓扑, 允许数据流的分布式, 可扩展的, 容错的方式, 可以处理无界的数据集包括数以百万计的事件。