Apache InLong v0.10 教程

  • 更新时间:
  • 4218人关注
  • 点击下载

这是一个不错的Apache类学习资源,由漕茂学提供,主要知识点是关于Apache、InLong、Apache教程、Apache的内容,已被460人关注,同类资源中评分为9.1分。

Apache InLong(应龙)是一站式的数据流接入服务平台,提供自动、安全、高性能、分布式的数据发布订阅能力,基于该系统用户可以轻松构建基于流式的数据应用。

书籍目录

引导
组件介绍
联系我们

内容节选

inlong-sort是一个基于flink的ETL系统,支持多种数据源,支持简单的字段抽取,支持多种存储系统。 inlong-sort依赖inlong-manager进行系统元数据的管理,元数据依赖zk进行存储及同步。

特性

多租户系统

inlong-sort支持多租户,一个inlong-sort的作业中可以包含多个同构的数据源,以及多个同构的存储系统。 并且针对不同的数据源,可以定义不同的数据格式以及字段抽取方式。 多租户系统依赖inlong-manager的元数据管理,用户只需要在inlong-manager的前端页面进行相应的配置,即可实现。 举例:以tubemq为source,hive为存储为例,同一个inlong-sort的作业可以订阅多个topic的tubemq数据,并且每个topic的数据可以写入不同的hive集群。

支持热更新元数据

inlong-sort支持热更新元数据,比如更新数据源的信息,数据schema,或者写入存储系统的信息。 需要注意的是,当前修改数据源信息时,可能会造成数据丢失,因为修改数据源信息后,系统会认为这是一个全新的subscribe,会默认从消息队列的最新位置开始消费。 修改数据schema,抽取字段规则以及写入存储的信息,不会造成任何数据丢失,保证exactly-once

精选笔记:Apache Commons Math3学习之数值积分实例代码

3小时13分钟前回答

Apache.Commons.Math3里面的数值积分支持类采用的是“逼近法”,即,先对大区间做一次积分,再对小区间做一次积分,若两次积分结果的差值小于某一设定的误差值,则认为积分完成。否则,将区间再次细分,对细分后的区间进行积分,与前一次积分相比较,如此反复迭代,直至最近的两次积分差值足够小。这样的结果,有可能会导致无法收敛。

为了使用org.apache.commons.math3.analysis.integration包中的积分器类,需要先实现UnivariateFunction接口(本文以MyFunction为例),实现其value方法。然后创建指定的积分器对象,本文以SimpsonIntegrator为例,最后调用其integrate(...)方法即可算出MyFunction的积分。

调用integrate(...)方法时需要提供4个参数:

第1个是最大逼近次数,要适当大一些,否则可能会无法收敛;
第2个是MyFunction类的实例;
第3个是积分区间下限;
第4个是积分区间上限。

SimpsonIntegrator在第一次迭代时一定是分别以积分下限和积分上限作为x调用连词MyFunction.value(...)方法,下一次则会将区间分成2份(除上下限x值之外,还有一个中间x值),再下一次则是分成4份……

以下是使用辛普森积分类的例子:

import java.util.ArrayList;
import java.util.List;
import org.apache.commons.math3.analysis.UnivariateFunction;
import org.apache.commons.math3.analysis.integration.SimpsonIntegrator;
import org.apache.commons.math3.analysis.integration.UnivariateIntegrator;
interface TestCase 
{
	public Object run(List<Object> params) throws Exception;
	public List<Object> getParams();
	public void printResult(Object result) throws Exception;
}
public class TimeCostCalculator 
{
	public TimeCostCalculator() 
	  {
	}
	/** 
  * 计算指定对象的运行时间开销。 
  * 
  * @param testCase 指定被测对象。 
  * @return 返回sub.run的时间开销,单位为s。 
  * @throws Exception 
  */
	private double calcTimeCost(TestCase testCase) throws Exception 
	  {
		List<Object> params = testCase.getParams();
		long startTime = System.nanoTime();
		Object result = testCase.run(params);
		long stopTime = System.nanoTime();
		testCase.printResult(result);
		double timeCost = (stopTime - startTime) * 1.0e-9;
		return timeCost;
	}
	public void runTest(TestCase testCase) throws Exception 
	  {
		double timeCost = calcTimeCost(testCase);
		System.out.println("时间开销:: " + timeCost + "s");
		System.out.println("-------------------------------------------------------------------------------");
	}
	public static void main(String[] args) throws Exception 
	  {
		TimeCostCalculator tcc = new TimeCostCalculator();
		tcc.runTest(new CalcSimpsonIntegrator());
	}
}
/** 
 * 使用辛普森法求解数值积分。Apache.Common.Math3中所用的辛普森法是采用逼近法,即先对整个积分区间用矩形积分,然后将区间分解为4份,再次积分,比较两次积分的差值,若想对误差大于某个预订数值, 
 * 则认为还需要继续细分区间,因此会将区间以2倍再次细分后求积分,并将结果与前一次积分的结果比较,直至差值小于指定的误差,就停止。 
 * @author kingfox 
 * 
 */
class CalcSimpsonIntegrator implements TestCase 
{
	public CalcSimpsonIntegrator() 
	  {
		System.out.print("本算例用于测试使用辛普森法计算积分。正在初始化计算数据 ... ...");
		inputData = new double[arrayLength];
		for (int index = 0; index < inputData.length; index++)  // 鏂滃潯鍑芥暟 
		{
			inputData[index] = Math.sin(2 * Math.PI * index * MyFunction.factor * 4);
		}
		func = new MyFunction();
		integrator = new SimpsonIntegrator();
		System.out.println("初始化完成!");
	}
	@Override 
	  public Object run(List<Object> params) throws Exception 
	  {
		double result = ((SimpsonIntegrator)(params.get(1))).integrate(steps, (UnivariateFunction)(params.get(0)), lower, upper);
		return result;
	}
	/** 
  * 获取运行参数 
  * @return List对象,第一个元素是求积函数,第二个参数是积分器。 
  */
	@Override 
	  public List<Object> getParams() 
	  {
		List<Object> params = new ArrayList<Object>();
		params.add(func);
		params.add(integrator);
		return params;
	}
	@Override 
	  public void printResult(Object result) throws Exception 
	  {
		System.out.println(">>> integration value: " + result);
	}
	UnivariateFunction func = null;
	UnivariateIntegrator integrator = null;
	class MyFunction implements UnivariateFunction 
	  {
		@Override 
		   public double value(double x) 
		   {
			//     double y = x * factor;   // 1. 
			//     double y = 4.0 * x * x * x - 3.0 * x * x + 2.0 * x - 1.0;  // 2. 
			//     double y = -1.0 * Math.sin(x) + 2.0 * Math.cos(x) - 3.0;   // 3. 
			double y = inputData[(int)(x / factor)];
			// 4. 
			//     System.out.println(x + ", " + y); 
			return y;
		}
		private static final double factor = 0.0001;
	}
	private double[] inputData = null;
	private static final int arrayLength = 5000;
	private static final double lower = 0.0;
	//  private static final double upper = 2.0 * Math.PI;   // 3. 
	private static final double upper = (arrayLength - 1) * MyFunction.factor;
	// 1. 2. 4. 
	private static final int steps = 1000000;
}

上述代码中,注释为1. 2. 3.的可以正常计算出结果,但注释为4.的就无法收敛。

基于org.apache.commons.math3.analysis.integration.UnivariateIntegrator的积分器的另一个局限性在于必须编写一个继承于UnivariateFunction的函数类,实现其value方法(根据输入的x值计算出y值),这种做法有利于可用解析式表达的情况,不利于对存放于外存的大量数据做积分处理。

总结

以上就是本文关于Apache Commons Math3学习之数值积分实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Java 蒙特卡洛算法求圆周率近似值实例详解、apache zookeeper使用方法实例详解等,有什么问题可以随时留言,小编会及时回复大家的。这里推荐几本Java方面的书,供广大编程爱好及工作者进行阅读参考,免费的哦!

Java初级开发工程师面试题汇总.PDF

//www.jb51.net/books/576989.html

java JDK1.9 API 中文参考文档+原版文档 高清完整版 CHM

//www.jb51.net/books/575482.html

希望大家能够喜欢,希望对本站多多支持!

展开阅读

相关资源

  • 基于Apache Kylin 构建大数据分析平台

    基于Apache Kylin 构建大数据分析平台

    大小:89.9 MB大数据

    立即下载
  • 构建Apache Kafka流数据应用

    构建Apache Kafka流数据应用

    大小:144.5 MBKafka

    立即下载
  • Apache Storm技术参考手册

    Apache Storm是Twitter开源的分布式实时大数据处理框架,最早开源于github,从0.9.1版本之后,归于Apache社区,被业界称为实时版Hadoop。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具有最高的摄取率。虽然Storm是无状态的,它通过Apache ZooKeeper管理分布式环境和集群状态。它很简单,您可以并行地对实时数据执行各种操作 随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统

    大小:414 KBApache手册

    立即下载
  • Apache Pulsar v2.7.2 中文文档

    Apache Pulsar是一个分布式的消息发布/订阅传递平台,具有非常灵活地消息模型和一个直观的客户端API. 目录 Get started 概念和架构 Pulsar Schema Pulsar Functions Pulsar IO Pulsar SQL Tiered storage 事务 Kubernetes (Helm) 部署 系统管理 安全 性能 客户端库 Admin API 适配器 参考手册 开发

    大小:14.6 MBApache

    立即下载
  • 实战Nginx:取代Apache的高性能Web服务器

    实战Nginx:取代Apache的高性能Web服务器

    实战Nginx:取代Apache的高性能Web服务器 作者:张宴著 出版日期:2010-03 第1部分基础篇 第1章Nginx简介 1.1常用的Web服务器简介 1.2Nginx简介 1.3选择Nginx的理由 1.4Nginx与Apache、Lighttpd的综合对比 第2章Nginx服务器的安装与配置 2.1安装Nginx服务器所需要的系统资源 2.2Nginx的下载 2.3Nginx的安装 2.4Nginx的启动、停止、平滑重启 2.5Nginx的平滑重启 2.6Nginx的信号控制 2.7Ngin

    大小:42.3MBNginx

    立即下载
  • Apache Dubbo 3.0 教程

    Apache Dubbo 是一款高性能、轻量级的开源 Java 服务框架。Apache Dubbo |ˈdʌbəʊ| 提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。 目录 Dubbo 3.0 简介 新版本特性速览 概念架构 介绍与示例 高级用法 升级与兼容性 多语言 参考手册 公告栏 贡献指南

    大小:7.25 MBApache

    立即下载

学习笔记

24小时1分钟前回答

apache zookeeper使用方法实例详解

本文涉及了Apache Zookeeper使用方法实例详解的相关知识,接下来我们就看看具体内容。 简介 Apache Zookeeper 是由 Apache Hadoop 的 Zookeeper 子项目发展而来,现在已经成为了 Apache 的顶级项目。Zookeeper 为分布式系统提供了高效可靠且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置管理,状态同步和组服务等。 Zookeeper 接口简单,开发人员不必过多地纠结在分布式系统编程难于处理的同步和一致性问题上,你可以使用 Zookeeper 提供的现成(off-the-shelf)服务来实现分布式系统的配置管理,组管理,Leader 选举等功能。 英文原文地址:http://zookeeper.apache.org/doc/current/javaExample.html 一……

7小时3分钟前回答

macOS Sierra安装Apache2.4+PHP7.0+MySQL5.7.16

Mac系统上虽然自带PHP和Apache,但是有时不是我们想要的版本呢。今天我们就在macOS Sierra(10.12.1)上安装比较新的版本的PHP版本,也就是PHP7.0+了。本篇博客我们安装的Apache是2.4的版本, MySQL5.7.16。稍后会详细介绍这一过程。 一、安装前的准备 1.安装或更新Homebrew Homebrew就不做过多赘述了,也不是在博客中第一次提到了,是Mac上不可或缺的包包管理器。下方截图中是我本地使用的brew的版本信息,当然是目前最新的版本。在安装上述相关内容之前,要确保你的brew是最新版本。关于Mac下Homebrew的安装在此就不做过多赘述了,请自行Google。 下方首先进行了brew update的更新操作,提示我当前的brew是最新的版本。我们……