无论你是使用Kafka作为队列,消息总线还是数据存储平台,你都会用到生产者,用于发送数据到Kafka。本文将介绍Kafka的producer。
Flink中的DataStream程序是常规程序,可对数据流实施转换(例如,过滤,更新状态,定义窗口,聚合)。
Flink具有两个关系API,即Table API和SQL。这两个API都是用于批处理和流处理的统一API,即,对无界的实时流或有界的记录流以相同的语义执行查询,并产生相同的结果。
Scala即可伸缩的语言(Scalable Language),是一种多范式的编程语言,类似于java的编程,设计初衷是要集成面向对象编程和函数式编程的各种特性。
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。今天我们来看看如何用Ganglia来监控我们的flume集群数据。
死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待之中,没有任何个体可以继续前进。死锁不仅仅是在线程之间会发生,存在资源独占的进程之间同样也 可能出现死锁。通常来说,我们大多是聚焦在多线程场景中的死锁,指两个或多个线程之 间,由于互相持有对方需要的锁,而永久处于阻塞的状态。
Apache Zeppelin 是一个可以进行大数据可视化分析的交互式开发系统,可以承担数据接入、数据发现、数据分析、数据可视化、数据协作等任务,其前端提供丰富的可视化图形库,不限于SparkSQL,后端支持HBase、Flink 等大数据系统以插件扩展的方式,并支持Spark、Python、JDBC、Markdown、Shell 等各种常用Interpreter,这使得开发者可以方便地使用SQL 在 Zeppelin 中做数据开发。
Kafka是一个非常优秀的消息开源系统,作为分布式的消息队列之所以能够实现高吞吐,其中的一个原因就是sendFile 的零拷贝
对于从事C、C++程序开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”又是从事最基础工作的“劳动人民”-既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。对于Java 程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,由虚拟机管理内存这一切看起来都很美好。然而一旦出现内存泄漏和溢出的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将异常艰难。