如何使用apache ignite 安装

Apache Ignite 1.6.0 发布,内存数据组织平台 - 开源中国社区
当前访客身份:游客 [
当前位置:
Apache Ignite 1.6.0 发布,内存数据组织平台
Apache Ignite 内存数据组织平台 1.6.0 版本发布:---------------------------------------Ignite .NET:* 新增:为缓存的SQl查询提供了 LINQ Provider;* 新增: 原生的配置机制 (C#, app.config, web.config - 替代 Spring XML);* 新增: 新增了分布式NuGet;* 新增: 新增了AtomicSequence和AtomicReference数据结构;* 二进制支持任何CPU (不只是 x64/x86);* 可以和调用.NET服务同样的方式调用基于Java的服务;* 新增: 增加了基于Java的持续查询过滤器;* 新增:新增了自动化的Java检测,不再需要JAVA_HOME;* 新增:新增了在持续查询中使用基于Java的远程过滤器的功能。Ignite C++:* 新增:为C++客户端新增了事务API;* 新增:为C++客户端新增了日期和时间戳类型实现;* 为C++客户端简化了自动化工具构建过程。Ignite:* 新增:通过持续查询开放API,新增了获取分区'updateCntr'的功能;* 新增:新增了持续查询的远程过滤器和本地监听器的异步执行;* 新增:新增了默认将分区备份至本地存储;* 新增:新增了缓存的死锁检测;* 新增:新增了基于Cassandra DB的缓存存储实现:* 新增:新增了获取版本化的缓存条目的方法;.* 新增:新增了Ignite的ODBC驱动;* 新增:在TcpDiscoverySpi中当通过IP搜索器注册本地地址时,支持关联的超时;* 新增:通过同步回调支持JTA事务;* 新增:为Ignite新增Web控制台;* IGFS: 新增了禁用“/ignite”文件夹作为默认路径的配置标志;* IGFS: 为Hadoop文件系统创建新增了可插拔的工厂接口;* 在集群拓扑变更时改进了编组器的行为;* Mesos集成: 新增了从文件系统加载Ignite包的功能;* 在关系节点优化了缓存的'get'操作;* 在服务端节点优化了内存使用以支持更多的客户端连接;* 为数据发现传递更新通知标志来确保所有的集群节点和第一个节点有同样的通知状态;* 在不获得锁的情况下优化事务的性能;* 本地分区扫描查询的性能优化;* 支持Ignite服务的私有包实现;* Ignite.NET中支持Ignite计算任务的取消;* Visor CMD: 为报警新增了附加自定义脚本的功能;* Web会话: 在服务端节点不再需要用户会话类;* 大量的Bug、稳定性和容错性问题修复。
Apache Ignite 的详细介绍:
Apache Ignite 的下载地址:
想通过手机客户端(支持 Android、iPhone 和 Windows Phone)访问开源中国:
旧一篇: 2个月前
新一篇: 2个月前
相关讨论话题
你也许会喜欢
为Ignite新增Web控制台这个是不是提供了web接口的visor command line?如何使用呢? 最新1.6手册没有提到?
2楼:李玉珏 来自
引用来自“happycool333”的评论为Ignite新增Web控制台这个是不是提供了web接口的visor command line?如何使用呢? 最新1.6手册没有提到?相关手册还没有放出来,可能还得等等。大体上可能是每个节点需要有一个agent,然后和web控制台通讯
3楼:紫电清霜
和redis的区别是啥~
4楼:周建伟_Callen
5楼:磊_子
竟然是作者? 赞一个~~关注
6楼:李玉珏
引用来自“紫电清霜”的评论和redis的区别是啥~你可以看下这篇文章:这个是之前官方做的一个对比,整体来说,功能要比Redis强很多,性能上应该没有Redis好,用那个看你的业务场景了。
7楼:紫电清霜 来自
引用来自“紫电清霜”的评论和redis的区别是啥~引用来自“李玉珏”的评论你可以看下这篇文章:这个是之前官方做的一个对比,整体来说,功能要比Redis强很多,性能上应该没有Redis好,用那个看你的业务场景了。多谢大侠指导
这个不是redis那种微观db
是高级货 应对分布式大需求的
支持分布式事务 支持sql
完没完成 就不知道了
9楼:李玉珏 来自
引用来自“雷兽”的评论这个不是redis那种微观db
是高级货 应对分布式大需求的
支持分布式事务 支持sql
完没完成 就不知道了都支持
与内容无关的评论将被删除,严重者禁用帐号
本周热点资讯
本站最新资讯全国统一热线:400-028-
密 码:
Domain Trader
VPS SERVER
CLOUD HOST
您当前的位置:&>&&>&
Apache Ignite内存数组组织框架是一个高性能、集成和分布式的内存计算和事务平台,用于大规模的数据集处理。Ignite 为应用和不同的数据源之间提供一个高性能、分布式内存中数据组织管理的框架。集群计算特性:内存缓存和数据网格关键特性:内存数据流:
版权申明:本站文章部分自网络,如有侵权,请联系028-5 ,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点!本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
既然是技术人员,那么实际的代码是必不可少的。鉴于目前很多
Copyright & &&版权所有
电话总机:028- (20线)
400电话:400-Java 8与Apache Ignite
发表于 10:07|
作者杨旭钧
摘要:从JDK发布的历程来看,JDK1.6添加了对脚本语言:Ruby、Groovy、JavaScript的支持,JDK7添加了对集合(Collections)的增强支持,而Java8在JDK7之上进一步大胆地创新,引入了Lambda框架、Streams、函数式接口模块等。
时间过得真快,转眼间十年过去了,而Java都已经二十岁了,《礼记》有云“二十弱冠、三十而立”,我们首先要感谢JamesGosling和他的团队把Java带到这个世界上来,而年方弱冠,这位翩翩少年郎在IT技术的各个领域都取得了举世瞩目的成绩,在二十年这么长的时间里,已经有无数的企业应用、互联网应用和移动应用都是基于Java构建的,甚至包括物联网上的很多应用也依然使用Java编写,而目前各具特色的编程语言也是层出不穷、百花齐放,也确实给Java造成了不小的压力。面对眼前瞬息万变的IT技术世界,我还是坚信Java到了“而立之年”,仍然可以老骥伏枥为我们带来更多的惊喜!杨旭钧
Java8新功能特性
从JDK发布的历程来看,JDK1.6添加了对脚本语言:Ruby、Groovy、JavaScript的支持,JDK7添加了对集合(Collections)的增强支持,而Java8在JDK7之上进一步大胆地创新,引入了Lambda框架、Streams、函数式接口模块等,这里我们重点讲一下Lambda框架。Java8的最大亮点就是引入了Lambda表达式,通过Lambda表达式提供闭包的方式,使集合(Collection)库更加容易遍历、过滤、从一个集合中抽取数据,特别是集合(Collection)操作充分利用多核编程的特性,能够大幅提升并发操作的性能。
什么是Lambda表达式?
Lambda表达式是一个匿名函数,即没有函数名的函数,通常我们用Lambda表达式表示闭包操作。当开发者在编写一个Lambda表达式时,被编译成函数式接口。
Runnable接口实现
代码1是使用Lambda表达式来写一个Runnable接口。public class RunnableTest {
public static void main(String[] args) {
System.out.println("=== RunnableTest ===");
// Anonymous Runnable
Runnable r1 = new Runnable(){
public void run(){
System.out.println("Hello world one!");
// Lambda Runnable
Runnable r2 = () -& System.out.println("Hello world two!");
// Run em!
Comparator接口实现
代码2是使用Lambda表达式来写一个Comparator接口。Comparator类被用于筛选集合。在下面的例子中,Person对象通过surName筛选出来一个ArrayList列表。如下是包含Person类的域值。public class Person {
private String givenN
private String surN
private String eM
代码3通过使用匿名内部类和两个Lambda表达式来应用Comparator接口。public class ComparatorTest {
public static void main(String[] args) {
List&Person& personList = Person.createShortList();
// Sort with Inner Class
Collections.sort(personList, new Comparator&Person&(){
public int compare(Person p1, Person p2){
return p1.getSurName().compareTo(p2.getSurName());
System.out.println("=== Sorted Asc SurName ===");
for(Person p:personList){
p.printName();
// Use Lambda instead
// Print Asc
System.out.println("=== Sorted Asc SurName ===");
Collections.sort(personList, (Person p1, Person p2) -& p1.getSurName().compareTo(p2.getSurName()));
for(Person p:personList){
p.printName();
// Print Desc
System.out.println("=== Sorted Desc SurName ===");
Collections.sort(personList, (p1,
p2) -& p2.getSurName().compareTo(p1.getSurName()));
for(Person p:personList){
p.printName();
我们在后面两个Collections集合中引用了Lambda表达式,Lambda表达式声明了参数类型传递给了表达式。然而,我们从第二个Lambda表达式可以看到,这个参数传递是可选的,Lambda支持“targettyping”,可以智能地从上下文中引用对象类型。因为我们正在分配一个结果给Comparator,而编译器能够将这两个参数作为Person类型来引用。
Listner接口实现
代码4是使用Lambda表达式来写一个Listener接口。public class ListenerTest {
public static void main(String[] args) {
JButton testButton = new JButton("Test Button");
testButton.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent ae){
System.out.println("Click Detected by Anon Class");
testButton.addActionListener(e -& System.out.println("Click Detected by Lambda Listner"));
// Swing stuff
JFrame frame = new JFrame("Listener Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(testButton, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
根据示例,Lambda表达式作为一个参数被传递,“targettyping”可用于如下的上下文中:
数组初始化
方法或构造器参数
Lambda表达式方法体
条件表达式
Cast表达式
在ApacheIgnite中使用Lambda函数上面我们简单介绍了一下Lambda的基本用法,而在Apache开源项目ApacheIgnite上也支持Lambda方法的使用。在ApacheIgnite的分布式网格中,创建GridInstance实例,grid通过Broadcast(广播)的方式来执行GridRunnable方法中的操作,如代码5所示。try (Grid grid = GridGain.start()) {
pute().broadcast((GridRunnable)() -&
System.out.println("Hello World")).get();
在ApacheIgnite中使用时空索引ApacheIgnite能够轻松地使用带有内存索引的SQL语句查询内存中的数据,并且能够扩展SQL到时空查询。例如,代码6的查询将找到地图中的特定平方区域内所有的点:Polygon square = factory.createPolygon(new Coordinate[] {
new Coordinate(0, 0),
new Coordinate(0, 100),
new Coordinate(100, 100),
new Coordinate(100, 0),
new Coordinate(0, 0)
cache.queries().
createSqlQuery(MapPoint.class, "select * from MapPoint where location && ?").
queryArguments(square).
execute().get();
什么是JavaStreaming?
Java8Stream是元素的集合,这点让Stream看起来用些类似Iterator,可以支持顺序和并行的对原Stream进行汇聚的操作。
大家可以把Stream当成一个高级版本的Iterator。用户只要给出需要对其包含的元素执行什么操作,比如“过滤掉长度大于10的字符串”、“获取每个字符串的首字母”等,具体这些操作如何应用到每个元素上。Java8的并行流处理特性也是一大创新亮点,能够让你更简单地使用JavaAPI进行更复杂的数据处理查询,进而优化传统的数据处理查询的性能。
Stream接口和Collect接口
Java8并行流处理类位于java.util.stream包中。主要的流处理接口有两个:Stream接口和Collect接口。Stream接口定义了典型的流处理应该具备的基本操作,如filter方法、map方法和reduce方法,这三个方法是函数式编程的标志。另外,Stream接口还定义了创建Stream的static方法,Stream或者是有限的、或者是无限的,其中无限的Stream通过Iterate()来实现。
IntStream、LongStream和DoubleStream接口。上述接口是基于原生类型int、long和double的Stream,提供了很多关于流的操作方法。例如,sum()、min()/max()、average()方法等,这些方法都是汇聚过程中的基本操作。
Collect接口。Collect接口是Reduce类的抽象接口,提供了很多常用的Reduce()操作方法。其中Reduce()操作有并行和串行两种实现方式,BaseStream接口中的parallel()、sequential()、unordered()方法,大多数应用程序都使用parallel()方法进行并行流处理操作。
Collectors类。Collectors接口提供了很多可以直接使用的Reduce操作方法。比较典型的方法,例如GroupingBy、PartitioningBy操作。它们都可以通过parallel()、sequential()来执行,例如groupingByConcurrent会使用Parallel()进行grouping操作。
StreamSupport类。StreamSupport类提供了一些底层用于操作Stream的方法,如果不需要创建自己的Stream,一般不需要使用它。JavaStream处理示例代码7是使用JavaStream并行处理和Lambda闭包函数的特性来计算证券投资中资产组合的信用风险,CodeA使用传统的循环迭代方法进行计算,而CodeB使用IntStream调用parallel()方法来执行Integer数据类型的并行流处理操作。Code Adouble[] losses = new double[num];
for (int i = 0; i & i++)
for (Credit crd : portfolio)
int remDays = Math.min(crd.getRemainingTerm(), horizon);
if (rndGen.nextDouble() &= 1 - crd.getDefaultProbability(remDays))
losses[i] += (1 + crd.getAnnualRate() * Math.min(horizon, crd.getRemainingTerm()) / 365)
* crd.getRemainingAmount();
losses[i] -= crd.getAnnualRate() * Math.min(horizon, crd.getRemainingTerm()) / 365 *
crd.getRemainingAmount();
&/b&Code BIntStream.range(0, num).parallel().forEach(i -&
for (Credit crd : portfolio)
int remDays = Math.min(crd.getRemainingTerm(), horizon);
if (rndGen.nextDouble() &= 1 - crd.getDefaultProbability(remDays))
losses[i] += (1 + crd.getAnnualRate() * Math.min(horizon, crd.getRemainingTerm()) / 365)
* crd.getRemainingAmount();
losses[i] -= crd.getAnnualRate() * Math.min(horizon, crd.getRemainingTerm()) / 365 *
crd.getRemainingAmount();
在CodeB中,我们通过parallel()并行执行任务操作,利用多核操作的优势,将获得更多的并发优势。从编程角度上看减少了大量冗余代码,同时也提升了代码执行的效率。ApacheIgnite特性介绍ApacheIgnite目前是Apache组织孵化器下的一个开源项目,由GridGain公司领导,是一个高性能、集成度高的分布式内存平台,能够实时地对大量数据集进行计算和事务处理,同时在最新版本中引入了对Java8Lambda和Streaming的支持。它将数据缓存在内存当中,因此比传统关系型数据库的处理速度更快。
主要功能特性如下:
分布式内存缓存(兼容JSR-107)
数据操作速度超快
分布式事务
分布式SQL查询(兼容SQL-99)
分布式内存队列和其他数据结构
分层Off-Heap存储
WebSeesion集群
HibernateL2缓存集成
兼容Memcached
基于HTTP的RESTAPI访问
Java8Lambda函数
Java8Streaming
Java8发展展望
Java从诞生到现在为止经历了20年的漫长发展历程,Java固有的编程模式看似不可能会有太大的变化,然而Java8的横空出世使这一情况有了极大改观,JavaLambda和Stream两大特性为垂垂老矣的Java平台注入了强大的活力,更加符合Java开发者们的热切期望,让他能够更自信地迎接云计算和移动应用时代的到来。目前在开源世界中支持Java8新特性的应用框架和软件平台逐渐增多(例如ApacheIgnite工程),相信未来会有越来越多的Java应用迁移到Java8平台上,充分享受Java8新特性带来的舒适体验感。
作者简介:杨旭钧多年的银行、保险行业的金融系统的规划、设计和开发经验,参与过多个国内外银行、互联网电商与移动支付领域项目。曾就职于VMware和Accenture两家公司,服务客户包括花旗银行、中国外汇交易中心、中国央行、中国银行等。目前正在创办一家提供大数据分析处理服务的公司。
本文选自程序员电子版2015年5月B刊,该期更多文章请查看。2000年创刊至今所有文章目录请查看。欢迎(含iPad版、Android版、PDF版)。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章Apache Ignite
目前用的是最新孵化版本:1.3.0-incubating。
官方文档&&& 这里给出了一个一个分布式类加载机制(distributed ClassLoader)。
文档这么说的:
The closures and tasks that you use for your computations may be of any custom class, including anonymous classes. In Ignite, the remote nodes will automatically become aware of those classes, and you won't need to explicitly
deploy or move any .jar files to any remote nodes.
Such behavior is possible due to peer class loading (P2P class loading), a specialdistributed ClassLoader in Ignite for inter-node byte-code exchange. With peer-class-loading enabled, you don't have to manually
deploy your Java or Scala code on each node in the grid and re-deploy it each time it changes。
在你的计算中,所用到的闭包(java8概念)和任务,可能是我们程序自己写的类,包括匿名类。在Ignite集群中,远程节点们可以相互感知你这些类,这样,我们可以避免显示的把我们的类打包成一个jar文件,放到集群Ignite的每个lib文件下。
这个行为由于peer class loading,一种特殊的分布式类加载,可以在集群几点之间交换字节码,采用peer class loading,你的java代码或scala代码就不用手动发布或由于这些类根据业务需要改动而重新发布到集群机器上。
文档是这么说的,可现在的1.3.0-incubating,Apache Ignite并不是所有的功能能很好的支持。如sql查询,peer
class loading 就会失败。
我提出的isssue: ,为什么sql查询配置了peer
class loading还是会失败,必须手动发布jar包才可以吗。
答案是:目前有些不支持的,必须手动发布jar包。
回答者这么说的:I think when
will be fixed, there will be no need to put user classes on the server side, sopeerClassLoadingEnabled setting will not have special behavior for caches anymore.
而且,目前官方只说了这么句:
It is recommended that peer-class-loading is disabled in production. Generally you want to have a controlled production environment without
any magic. To deploy your classes explicitly, you can copy them into Ignite
libs folder or manually add them to the classpath on every node.
生成环境禁用这个peer-class-loading,好像目前版本,这个好功能没能很好的实现。
所以,我们还是手动发布jar包。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:205344次
积分:4392
积分:4392
排名:第4552名
原创:203篇
转载:180篇
评论:16条
文章:14篇
阅读:7377
阅读:1232
文章:12篇
阅读:8844
文章:16篇
阅读:12896
文章:19篇
阅读:12078
文章:49篇
阅读:45494如何使用apache ignite_百度知道
如何使用apache ignite
提问者采纳
if (arrType==1)
cout&&&lt:&&lt:0-5&
cout&len&&lt:&当前数组元素个数为;&&&
}else if(arrType==2)
1)无重复值&&len-1&&&
2)值分布;&&
1)大量重复值&&&原始数组的元素特点:0-&&&
cout&&ltcout&&
2)非重复值的分布
来自团队:
其他类似问题
为您推荐:
apache的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 apache ignite 的文章

 

随机推荐