精华内容
下载资源
问答
  • MapR compatibility

    2021-01-01 15:36:23
    t really relevant to MapR since they have their own C API, but it would nice for this library to support MapR. It seems like the MapR API is different enough from libhdfs3 to make this a quick and ...
  • #MapR群集管理脚本 使用单个bash脚本进行MapR集群设置和管理 MapR群集设置: 创建一个与示例文件相似的角色文件。 通过设置enabled = 1在启用所需的 运行mapr_setup.sh进行安装/卸载 安装 : ./mapr_setup.sh -c=...
  • hadoopde mapr MapR Streams是一个新的分布式消息传递系统,用于大规模流式传输事件数据,并且已集成到MapR融合平台中。 MapR Streams使用Apache Kafka API,因此,如果您已经熟悉Kafka,就会发现开始使用MapR ...

    hadoopde mapr

    MapR Streams是一个新的分布式消息传递系统,用于大规模流式传输事件数据,并且已集成到MapR融合平台中。 MapR Streams使用Apache Kafka API,因此,如果您已经熟悉Kafka,就会发现开始使用MapR Streams特别容易。

    尽管MapR Streams通常使用Apache Kafka编程模型 ,但仍存在一些关键差异。 例如,在MapR文件系统中有一种新的对象,称为对象流。 每个流都可以处理大量主题,并且在一个群集中可以有许多流。 可以在流级别设置诸如生存时间或ACE(访问控制表达式)之类的策略,以便一起方便地管理许多主题。 您可以在新的短本《 流式体系结构:使用Apache Kafka和MapR流的新设计》中找到有关使用Kafka和MapR Streams的流体系结构的更多信息,可从MapR网站免费下载。

    如果您已经拥有Kafka应用程序,则很容易将它们迁移到MapR Streams。 您可以在http://maprdocs.mapr.com/51/的MapR文档中找到更多信息– MapR_Streams / migrating_kafka_applications_to_mapr_streams.html

    在当前博客中,我们描述了如何使用MapR Streams运行最初为Kafka编写的简单应用程序。

    样例程序

    如上所述,MapR Streams使用Kafka API 0.9.0 ,这意味着可以在进行较小更改的情况下重用同一应用程序。 在深入探讨具体示例之前,让我们看一下必须更改的内容:

    1. 主题名称从“ topic-name ”更改为“ /stream-name:topic-name ”,因为出于管理原因(安全性,TTL等),MapR在流中组织了主题。
    2. MapR流未使用的生产者使用者配置参数将被自动忽略,因此此处未做任何更改。
    3. 生产者和消费者应用程序正在使用MapR中的jar,而不是Apache Kafka jar。

    您可以在“ MapR流示例程序”页面上找到完整的应用程序 这是一个简单的副本,其中包括对Kafka 0.9 API项目的示例程序的较小更改。 这卡夫卡项目已经证明这文章

    先决条件

    您将需要基本的Java编程技能以及访问权限:

    运行您的第一个MapR Streams应用程序

    步骤1:建立串流

    是可以通过以下方式一起管理的主题的集合:

    1. 设置适用于该流中所有主题的安全策略
    2. 为流中创建的每个新主题设置默认的分区数
    3. 为流中每个主题的消息设置生存时间

    您可以在文档中找到有关MapR Streams概念的更多信息。

    在MapR集群上,以mapr用户身份运行以下命令:

    $ maprcli stream create -path /sample-stream

    缺省情况下,生产和消费主题权限默认为流的创建者—您用于运行maprcli命令的Unix用户。 可以通过编辑流来配置权限。 例如,要使所有人都能使用所有主题(公共权限),可以运行以下命令:

    $ maprcli stream edit -path /sample-stream -produceperm p -consumeperm p -topicperm p

    步骤2:建立主题

    对于示例程序,我们需要两个主题,可以使用maprcli创建maprcli

    $ maprcli stream topic create -path /sample-stream  -topic fast-messages
    $ maprcli stream topic create -path /sample-stream  -topic summary-markers

    可以使用以下命令列出这些主题:

    $ maprcli stream topic list -path /sample-stream
    topic            partitions  logicalsize  consumers  maxlag  physicalsize
    fast-messages    1           0            0          0       0
    summary-markers  1           0            0          0       0

    请注意,如果该主题尚不存在,该程序将自动创建该主题。 对于您的应用程序,您应该决定让程序仅通过提及主题来自动创建主题会更好还是严格控制存在的主题会更好。

    步骤3:编译并打包示例程序

    返回到包含示例程序的目录,并构建示例程序。

    $ cd ..
    $ mvn package
    ...

    该项目创建一个具有所有外部依赖项的jar( ./target/mapr-streams-examples-1.0-SNAPSHOT-jar-with-dependencies.jar jar-with-dependencies.jar)

    请注意,只要您在运行和部署Apache Kafka依赖项时不将其打包到应用程序中,就可以构建该项目。 此示例依赖于MapR Streams客户端,而后者可以在mapr.com maven存储库中找到。

    <repositories>
           <repository>
               <id>mapr-maven</id>
               <url>http://repository.mapr.com/maven</url>
               <releases><enabled>true</enabled></releases>
               <snapshots><enabled>false</enabled></snapshots>
           </repository>
       </repositories>
       ...
           <dependency>
               <groupId>org.apache.kafka</groupId>
               <artifactId>kafka-clients</artifactId>
               <version>0.9.0.0-mapr-1602</version>
               <scope>provided</scope>
           </dependency>
      ...

    步骤4:运行示例生产者

    您可以安装MapR Client并在本地运行该应用程序,也可以将jar文件复制到您的集群(任何节点)上。

    $ scp ./target/mapr-streams-examples-1.0-SNAPSHOT-jar-with-dependencies.jar mapr@<YOUR_MAPR_CLUSTER>:/home/mapr

    生产者将向/sample-stream:fast-messages发送大量消息,并向/sample-stream:summary-markers /sample-stream:fast-messages偶尔的消息。 由于尚未运行任何使用者,因此没有人会收到消息。

    如果将此与用于构建此应用程序的Kafka示例进行比较,则主题名称是对代码的唯一更改。

    任何MapR Streams应用程序都将需要MapR Client库。 一种使用/opt/mapr/bin/mapr classpath命令使这些库可用于将它们添加到应用程序类路径的方法。 例如:

    $ java -cp $(mapr classpath):./mapr-streams-examples-1.0-SNAPSHOT-jar-with-dependencies.jar com.mapr.examples.Run producer
    Sent msg number 0
    Sent msg number 1000
    ...
    Sent msg number 998000
    Sent msg number 999000

    Apache Kafka应用程序和MapR Streams应用程序之间唯一重要的区别是客户端库是不同的。 这将导致MapR生产者连接到MapR群集以发布消息,而不是Kafka代理。

    步骤5:启动示例使用者

    在另一个窗口中,可以使用以下命令运行使用者:

    $ java -cp $(mapr classpath):./mapr-streams-examples-1.0-SNAPSHOT-jar-with-dependencies.jar com.mapr.examples.Run consumer
    1 messages received in period, latency(min, max, avg, 99%) = 20352, 20479, 20416.0, 20479 (ms)
    1 messages received overall, latency(min, max, avg, 99%) = 20352, 20479, 20416.0, 20479 (ms)
    1000 messages received in period, latency(min, max, avg, 99%) = 19840, 20095, 19968.3, 20095 (ms)
    1001 messages received overall, latency(min, max, avg, 99%) = 19840, 20479, 19968.7, 20095 (ms)
    ...
    1000 messages received in period, latency(min, max, avg, 99%) = 12032, 12159, 12119.4, 12159 (ms)
    <998001 messages received overall, latency(min, max, avg, 99%) = 12032, 20479, 15073.9, 19583 (ms)
    1000 messages received in period, latency(min, max, avg, 99%) = 12032, 12095, 12064.0, 12095 (ms)
    999001 messages received overall, latency(min, max, avg, 99%) = 12032, 20479, 15070.9, 19583 (ms)

    请注意,摘要中列出了消息批次的等待时间。 这是因为在将消息发送到MapR Streams时,使用者没有在运行,因此只有在消息发送很久以后才获取消息。

    监控主题

    您可以随时使用maprcli工具获取有关该主题的一些信息。 例如:

    $ maprcli stream topic info -path /sample-stream -topic fast-messages -json

    -json选项用于将主题信息作为JSON文档获取。

    打扫干净

    播放完毕后,可以使用以下命令删除流和所有相关主题:

    $ maprcli stream delete -path /sample-stream

    结论

    通过使用从Apache Kafka应用程序构建的示例,您学习了如何编写,部署和运行第一个MapR Streams应用程序。

    如您所见,应用程序代码确实很相似,只需要进行一些更改(例如更改主题名称)。 这意味着可以轻松地将您的Kafka应用程序部署在MapR上,并获得MapR Streams所有功能的好处,例如高级安全性,地理位置分散的部署,大量主题等等。 这也意味着您可以立即在MapR部署中使用所有的Apache Kafka技能。

    如果您对运行MapR Streams应用程序有任何疑问,请在下面的评论部分中提问。

    翻译自: https://www.javacodegeeks.com/2016/03/getting-started-mapr-streams.html

    hadoopde mapr

    展开全文
  • mapr-fs 架构 MapR Streams和MapR-DB都是MapR融合数据平台中非常激动人心的开发。 在这篇博客文章中,我将向您展示如何获取Ruby代码以与MapR-DB和MapR Streams进行本机交互。 我是Ruby开发人员,并且HBase和Kafka的...

    mapr-fs 架构

    MapR Streams和MapR-DB都是MapR融合数据平台中非常激动人心的开发。 在这篇博客文章中,我将向您展示如何获取Ruby代码以与MapR-DB和MapR Streams进行本机交互。 我是Ruby开发人员,并且HBase和Kafka的现有Ruby客户端/库在MapR等效项下无法正常工作。 因此,我着手寻找一种方法来使Ruby代码与这两种MapR技术进行本地对话。 我决定探索将Java示例移植到JRuby的方法,效果很好。 这篇文章中包含几个Java示例,因此我还将引导您逐步了解如何将Java代码移植到JRuby(Ruby的全线程Java实现)。 让我们开始吧!

    这篇文章的源代码可以在https://github.com/rvictory/MapR-JRuby-Demos中找到,并且受https://github.com/mapr-demos/maprdb-ojai-101https的影响很大: //github.com/mapr-demos/mapr-streams-sample-programs

    基础知识–加载MapR客户端库

    JRuby尽最大努力保持Ruby约定,同时允许您与Java代码和库进行接口。 但是,为了使其“查找” Java类,您需要像加载Gem或另一个Ruby源文件一样加载它们的JAR。 为了加载所有内容,我采取了非常笨拙的方法(据我所知,这不会影响性能)。 基本上,我准备了脚本,以能够引用任何MapR JAR,并且在每个Ruby脚本的顶部都包含以下几行:

    包含Java

    Dir["/opt/mapr/lib/\*.jar"].each { |jar| require jar }

    显然,这仅在MapR安装在/ opt / mapr中时才有效; 但是,如果您不在该默认配置下运行,那么更改就足够容易了。

    在JRuby中使用MapR-DB

    既然我们已经引用了适当的JAR,现在就可以将代码从Java移植到Ruby了。 在大多数情况下,这是一项无缝的任务-只需采用Java中使用的结构并将其制成“ Ruby”即可。 例如,这是MapR-DB演示中的以下代码:

    Table table;
    if (!MapRDB.tableExists(tableName)) { 
        table = MapRDB.createTable(tableName); // Create the table if not already present } else { 
        table = MapRDB.getTable(tableName); // get the table 
    }

    成为:

    table = nil
    if !MapRDB.tableExists(tableName)
        table = MapRDB.createTable(tableName)
    else
        table = MapRDB.getTable(tableName)
    end

    需要注意的一件事是,您需要调用构造函数的实例将按照您可能期望的方式进行处理,即以下Java代码:

    Test test = new Test("arguments");

    成为以下Ruby代码:

    test = Test.new("arguments")

    另外,Java泛型在JRuby中也不是“物”(因为无论如何都会推断类型),因此在大多数情况下(至少我发现的情况),您可以简单地忽略它们。 在某些情况下,JRuby编译器/解释器无法确定类型-我还没有遇到过这种情况,但是我敢肯定有一种解决方法。

    至于使用MapR-DB,我们可以简单地使用与Java中相同的API:

    http://maprdocs.mapr.com/apidocs/maprdb_json/51/com/mapr/db/MapRDB.html )。 要创建新文档,我们可以采用以下两种方法之一:

    document = MapRDB.newDocument()
          .set("_id", "jdoe")
          .set("first_name", "John")
          .set("last_name", "Doe")
          .set("dob", ODate.parse("1970-06-23"))
    table.insertOrReplace(document)

    或者我们可以使用JSON格式而不是API:

    document = MapRDB.newDocument('{"_id" : "test", "first_name" : "John", "last_name" : "Doe", "dob" : "1970-06-23"}')
    table.insertOrReplace(document)

    对于使用JRuby的MapR-DB的基础知识来说,这差不多了。 请查看源代码文件“ maprdb.rb”以获取完整示例。 值得一提的是,默认情况下,针对当前用户,创建的表存储在MapR-FS的用户目录中。 如果您以不是mapr的用户身份运行,请确保在MapR-FS中为用户创建目录/users/<username/ ,并且您的用户有权读写该目录。

    在JRuby中使用MapR流

    现在,我们已经为将Java代码移植到Ruby奠定了基础,Streams代码与MapR-DB代码一样简单。 唯一的区别是原始Java Streams示例使用“属性”文件存储配置,因此我们将这些文件放到与Ruby脚本相同的目录中,它们就会被代码拾取。

    除了轻微的更改(使用props文件)之外,该代码还是Java示例中非常简单的端口。 在我的Github页面上查看实际代码,以查看生产者和消费者。 确保使用以下MapR命令创建流(并对执行代码的用户具有适当的权限):

    maprcli stream create -path /sample-stream

    并使用以下命令创建主题:

    maprcli stream topic create -path /sample-stream -topic fast-messages

    要允许所有用户与流进行交互,请使用以下命令:

    maprcli stream edit -path /sample-stream -produceperm p -consumeperm p -topicperm p

    就是这样-示例代码应该可以正常运行。 生产者创建100条消息并将其写到流中,而消费者则选择所看到的任何消息。 Stream的其余操作与Java API的文档相同。 我建议在Stream上移动JSON消息,它允许任何使用者/语言使用数据。

    下一步是什么

    现在您知道了如何让Ruby与MapR-DB和MapR Streams交互。 我对在未来的项目中使用融合数据平台的前景感到非常兴奋。 可能性是无限的。 展望未来,我打算将Streams和MapR-DB API包装到一个更具“ Ruby风格”的程序包中,并将其作为一般消费的Gem提供。 我还打算编写一个模仿MongoDB使用的查询语法的MapR-DB查询API(基于JSON的查询,而不是基于API的查询)。 完成后,Gem的来源将发布到我的GitHub。 如果您有任何问题,疑问或投诉,请随时与我联系。

    谢谢阅读!

    翻译自: https://www.javacodegeeks.com/2016/07/integrating-mapr-ruby-getting-started-mapr-db-mapr-streams-jruby.html

    mapr-fs 架构

    展开全文
  • MapR上的Spark入门 从MapR-FS读取数据 1-将数据复制到MapR文件系统 在此示例中,我们将使用包含拍卖列表的CSV文件。 该文件位于此项目中: /data/auctiondata.csv 例如,使用cp / scp命令或hadoop put将文件复制到...
  • MapR Streams入门 MapR Streams是MapR融合数据平台的核心组件。 它是用于存储和访问实时数据流的分布式框架。 本指南将向您展示如何使用以下方法来使用MapR Streams: Kafka API,用于发送和接收原始消息 用于流式...
  • MapR Streams和MapR-DB都是MapR融合数据平台中非常激动人心的开发。 在此博客文章中,我将向您展示如何获取Ruby代码以与MapR-DB和MapR Streams进行本机交互。 我是Ruby开发人员,并且HBase和Kafka的现有Ruby客户端/...

    MapR Streams和MapR-DB都是MapR融合数据平台中非常激动人心的开发。 在此博客文章中,我将向您展示如何获取Ruby代码以与MapR-DB和MapR Streams进行本机交互。 我是Ruby开发人员,并且HBase和Kafka的现有Ruby客户端/库在MapR等效项下无法正常工作。 因此,我着手寻找一种方法来使Ruby代码与这两种MapR技术进行本地对话。 我决定尝试将Java示例移植到JRuby,并且效果很好。 这篇文章中包含几个Java示例,因此我也将引导您逐步了解如何将Java代码移植到JRuby(Ruby的全线程Java实现)。 让我们开始吧!

    这篇文章的源代码可以在https://github.com/rvictory/MapR-JRuby-Demos中找到,并且受https://github.com/mapr-demos/maprdb-ojai-101https的影响很大: //github.com/mapr-demos/mapr-streams-sample-programs

    基础知识–加载MapR客户端库

    JRuby尽最大努力保持Ruby约定,同时允许您与Java代码和库进行接口。 但是,为了使其“查找” Java类,您需要像加载Gem或另一个Ruby源文件一样加载它们的JAR。 为了加载所有内容,我采取了非常笨拙的方法(据我所知,这不会影响性能)。 基本上,我准备了脚本,以能够引用任何MapR JAR,并且在每个Ruby脚本的顶部都包含以下几行:

    包含Java

    Dir["/opt/mapr/lib/\*.jar"].each { |jar| require jar }

    显然,这仅在MapR安装在/ opt / mapr中时才有效。 但是,如果您未在该默认配置下运行,则很容易进行更改。

    在JRuby中使用MapR-DB

    既然我们已经引用了适当的JAR,现在就可以将代码从Java移植到Ruby了。 在大多数情况下,这是一项无缝的任务-只需采用Java中使用的结构并将其制成“ Ruby”即可。 例如,这是MapR-DB演示中的以下代码:

    Table table;
    if (!MapRDB.tableExists(tableName)) { 
        table = MapRDB.createTable(tableName); // Create the table if not already present } else { 
        table = MapRDB.getTable(tableName); // get the table 
    }

    成为:

    table = nil
    if !MapRDB.tableExists(tableName)
        table = MapRDB.createTable(tableName)
    else
        table = MapRDB.getTable(tableName)
    end

    需要注意的一件事是,您需要调用构造函数的实例将按照您期望的方式处理,这是以下Java代码:

    Test test = new Test("arguments");

    成为以下Ruby代码:

    test = Test.new("arguments")

    而且,Java泛型在JRuby中也不是“物”(因为无论如何都会推断类型),因此在大多数情况下(至少我发现的情况),您可以简单地忽略它们。 在某些情况下,JRuby编译器/解释器无法确定类型-我还没有遇到过这种情况,但是我敢肯定有一种解决方法。

    至于使用MapR-DB,我们可以简单地使用与Java中相同的API:

    http://maprdocs.mapr.com/apidocs/maprdb_json/51/com/mapr/db/MapRDB.html )。 要创建新文档,我们可以采用以下两种方法之一:

    document = MapRDB.newDocument()
          .set("_id", "jdoe")
          .set("first_name", "John")
          .set("last_name", "Doe")
          .set("dob", ODate.parse("1970-06-23"))
    table.insertOrReplace(document)

    或者我们可以使用JSON格式而不是API:

    document = MapRDB.newDocument('{"_id" : "test", "first_name" : "John", "last_name" : "Doe", "dob" : "1970-06-23"}')
    table.insertOrReplace(document)

    对于使用JRuby的MapR-DB的基础知识来说,差不多就可以了。 请查看源代码文件“ maprdb.rb”以获取完整示例。 值得一提的是,默认情况下,创建的表将存储在当前用户的MapR-FS的用户目录中。 如果您以不是mapr的用户身份运行,请确保在MapR-FS中为用户创建目录/users/<username/ ,并且您的用户有权读写该目录。

    在JRuby中使用MapR流

    现在,我们已经为将Java代码移植到Ruby奠定了基础,Streams代码与MapR-DB代码一样简单。 唯一的区别是,原始Java Streams示例使用“属性”文件存储配置,因此我们只需将这些文件放入与Ruby脚本相同的目录中,它们就会被代码拾取。

    除了轻微的更改(使用props文件)之外,该代码是Java示例中非常简单的端口。 在我的Github页面上查看实际代码,以查看生产者和消费者。 确保使用以下MapR命令创建流(并对执行代码的用户具有适当的权限):

    maprcli stream create -path /sample-stream

    并使用以下命令创建主题:

    maprcli stream topic create -path /sample-stream -topic fast-messages

    要允许所有用户与流进行交互,请使用以下命令:

    maprcli stream edit -path /sample-stream -produceperm p -consumeperm p -topicperm p

    就是这样-示例代码应该可以正常运行。 生产者创建100条消息并将其写入流中,而消费者则选择所看到的任何消息。 Stream的其余操作与Java API的文档相同。 我建议在Stream上移动JSON消息,它允许任何使用者/语言使用数据。

    下一步是什么

    现在您知道了如何让Ruby与MapR-DB和MapR Streams交互。 我对在未来的项目中使用融合数据平台的前景感到非常兴奋。 可能性是无限的。 展望未来,我打算将Streams和MapR-DB API包装到一个更具“ Ruby风格”的程序包中,并将其作为一般消费的Gem提供。 我还打算编写一个模仿MongoDB使用的查询语法的MapR-DB查询API(基于JSON的查询,而不是基于API的查询)。 完成后,Gem的来源将发布到我的GitHub。 如果您有任何问题,疑问或投诉,请随时与我联系。

    谢谢阅读!

    翻译自: https://www.javacodegeeks.com/2016/07/integrating-mapr-ruby-getting-started-mapr-db-mapr-streams-jruby.html

    展开全文
  • 餐厅营业查看系统Java源码MapR 开发者研讨会 在本次研讨会中,您将学习如何使用 MapR DB、Streams 等进行开发。 本次研讨会使用 MapR GitHub 存储库中提供的各种示例代码:. 您可以在 [MapR 开发者门户](. 设置您的...
  • MapR Streams入门

    2020-04-26 05:08:05
    MapR Streams是一个新的分布式消息传递系统,用于大规模流式传输事件数据,并且已集成到MapR融合平台中。 MapR Streams使用Apache Kafka API,因此,如果您已经熟悉Kafka,就会发现开始使用MapR Streams特别容易。 ...

    MapR Streams是一个新的分布式消息传递系统,用于大规模流式传输事件数据,并且已集成到MapR融合平台中。 MapR Streams使用Apache Kafka API,因此,如果您已经熟悉Kafka,就会发现开始使用MapR Streams特别容易。

    尽管MapR Streams通常使用Apache Kafka编程模型 ,但仍存在一些关键差异。 例如,在MapR文件系统中有一种新对象,称为对象流。 每个流都可以处理大量主题,并且在一个群集中可以有许多流。 可以在流级别设置诸如生存时间或ACE(访问控制表达式)之类的策略,以便一起方便地管理许多主题。 您可以在新的短本《 流传输体系结构:使用Apache Kafka和MapR Streams进行新设计》中找到有关使用Kafka和MapR Streams的流传输体系结构的更多信息,可从MapR网站免费下载。

    如果您已经拥有Kafka应用程序,可以很容易地将它们迁移到MapR Streams。 您可以在http://maprdocs.mapr.com/51/的MapR文档中找到更多信息– MapR_Streams / migrating_kafka_applications_to_mapr_streams.html

    在当前博客中,我们描述了如何使用MapR Streams运行最初为Kafka编写的简单应用程序。

    样例程序

    如上所述,MapR Streams使用Kafka API 0.9.0 ,这意味着可以通过较小的更改重用同一应用程序。 在深入探讨具体示例之前,让我们看一下必须更改的内容:

    1. 主题名称从“ topic-name ”更改为“ /stream-name:topic-name ”,因为出于管理原因(安全性,TTL等),MapR在流中组织了主题。
    2. MapR流未使用的生产者使用者配置参数将被自动忽略,因此此处未做任何更改。
    3. 生产者和消费者应用程序正在使用MapR中的jar,而不是Apache Kafka jar。

    您可以在“ MapR流示例程序”页面上找到完整的应用程序 这是一个简单的副本,其中包括对Kafka 0.9 API项目的示例程序的较小更改。 这卡夫卡项目已经证明这文章

    先决条件

    您将需要基本的Java编程技能以及访问权限:

    运行您的第一个MapR Streams应用程序

    步骤1:建立串流

    是可以通过以下方式共同管理的主题的集合:

    1. 设置适用于该流中所有主题的安全策略
    2. 为流中创建的每个新主题设置默认的分区数
    3. 为流中每个主题中的消息设置生存时间

    您可以在文档中找到有关MapR Streams概念的更多信息。

    在MapR集群上,以mapr用户身份运行以下命令:

    $ maprcli stream create -path /sample-stream

    默认情况下,生产和消费主题权限默认为流的创建者—您用于运行maprcli命令的Unix用户。 可以通过编辑流来配置权限。 例如,要使所有人都能使用所有主题(公共权限),可以运行以下命令:

    $ maprcli stream edit -path /sample-stream -produceperm p -consumeperm p -topicperm p

    步骤2:建立主题

    对于示例程序,我们需要两个主题,可以使用maprcli创建maprcli

    $ maprcli stream topic create -path /sample-stream  -topic fast-messages
    $ maprcli stream topic create -path /sample-stream  -topic summary-markers

    可以使用以下命令列出这些主题:

    $ maprcli stream topic list -path /sample-stream
    topic            partitions  logicalsize  consumers  maxlag  physicalsize
    fast-messages    1           0            0          0       0
    summary-markers  1           0            0          0       0

    请注意,如果该主题尚不存在,该程序将自动创建该主题。 对于您的应用程序,您应该决定让程序仅通过提及主题自动创建主题会更好还是严格控制存在的主题会更好。

    步骤3:编译并打包示例程序

    返回到包含示例程序的目录并构建示例程序。

    $ cd ..
    $ mvn package
    ...

    该项目创建一个具有所有外部依赖项的jar( ./target/mapr-streams-examples-1.0-SNAPSHOT-jar-with-dependencies.jar jar-with-dependencies.jar)

    请注意,只要您在运行和部署Apache Kafka依赖项时不将它们打包到应用程序中,就可以构建该项目。 此示例依赖于MapR Streams客户端,可以在mapr.com maven存储库中找到。

    <repositories>
           <repository>
               <id>mapr-maven</id>
               <url>http://repository.mapr.com/maven</url>
               <releases><enabled>true</enabled></releases>
               <snapshots><enabled>false</enabled></snapshots>
           </repository>
       </repositories>
       ...
           <dependency>
               <groupId>org.apache.kafka</groupId>
               <artifactId>kafka-clients</artifactId>
               <version>0.9.0.0-mapr-1602</version>
               <scope>provided</scope>
           </dependency>
      ...

    步骤4:运行示例生产者

    您可以安装MapR Client并在本地运行该应用程序,也可以将jar文件复制到您的集群(任何节点)上。

    $ scp ./target/mapr-streams-examples-1.0-SNAPSHOT-jar-with-dependencies.jar mapr@<YOUR_MAPR_CLUSTER>:/home/mapr

    生产者将向/sample-stream:fast-messages发送大量消息,并向/sample-stream:summary-markers /sample-stream:fast-messages偶尔的消息。 由于尚未运行任何使用者,因此没有人会收到消息。

    如果将此与用于构建此应用程序的Kafka示例进行比较,则主题名称是对代码的唯一更改。

    任何MapR Streams应用程序都将需要MapR Client库。 一种使用/opt/mapr/bin/mapr classpath命令使这些库可用于将它们添加到应用程序类路径的方法。 例如:

    $ java -cp $(mapr classpath):./mapr-streams-examples-1.0-SNAPSHOT-jar-with-dependencies.jar com.mapr.examples.Run producer
    Sent msg number 0
    Sent msg number 1000
    ...
    Sent msg number 998000
    Sent msg number 999000

    Apache Kafka应用程序和MapR Streams应用程序之间唯一重要的区别是客户端库是不同的。 这将导致MapR生产者连接到MapR集群以发布消息,而不是Kafka代理。

    步骤5:启动示例使用者

    在另一个窗口中,可以使用以下命令运行使用者:

    $ java -cp $(mapr classpath):./mapr-streams-examples-1.0-SNAPSHOT-jar-with-dependencies.jar com.mapr.examples.Run consumer
    1 messages received in period, latency(min, max, avg, 99%) = 20352, 20479, 20416.0, 20479 (ms)
    1 messages received overall, latency(min, max, avg, 99%) = 20352, 20479, 20416.0, 20479 (ms)
    1000 messages received in period, latency(min, max, avg, 99%) = 19840, 20095, 19968.3, 20095 (ms)
    1001 messages received overall, latency(min, max, avg, 99%) = 19840, 20479, 19968.7, 20095 (ms)
    ...
    1000 messages received in period, latency(min, max, avg, 99%) = 12032, 12159, 12119.4, 12159 (ms)
    <998001 messages received overall, latency(min, max, avg, 99%) = 12032, 20479, 15073.9, 19583 (ms)
    1000 messages received in period, latency(min, max, avg, 99%) = 12032, 12095, 12064.0, 12095 (ms)
    999001 messages received overall, latency(min, max, avg, 99%) = 12032, 20479, 15070.9, 19583 (ms)

    请注意,摘要中列出了消息批次的等待时间。 这是因为在将消息发送到MapR Streams时,使用者没有在运行,因此,只有在消息发送很久之后,用户才能获取消息。

    监控主题

    您可以随时使用maprcli工具获取有关该主题的一些信息。 例如:

    $ maprcli stream topic info -path /sample-stream -topic fast-messages -json

    -json选项用于将主题信息作为JSON文档获取。

    打扫干净

    播放完毕后,可以使用以下命令删除流和所有相关主题:

    $ maprcli stream delete -path /sample-stream

    结论

    通过使用从Apache Kafka应用程序构建的示例,您学习了如何编写,部署和运行第一个MapR Streams应用程序。

    如您所见,应用程序代码确实很相似,只需要进行一些更改(例如更改主题名称)。 这意味着可以轻松地在MapR上部署您的Kafka应用程序,并获得MapR Streams所有功能的好处,例如高级安全性,地理位置分散的部署,大量主题等等。 这也意味着您可以立即在MapR部署中使用所有的Apache Kafka技能。

    如果您对运行MapR Streams应用程序有任何疑问,请在下面的评论部分中提问。

    翻译自: https://www.javacodegeeks.com/2016/03/getting-started-mapr-streams.html

    展开全文
  • Telegraf的MapR Spyglass插件 。
  • MapR初探

    2013-02-25 18:41:53
    原文地址:MapR初探作者:EMC中国研究院【MapR初探】 EMC中国研究院 向东   【1. 天上掉下个MapRMapR成立于2009年,但是引起媒体广泛关注是缘由GIGAOM网站2011年3月的一篇报道 《MapR,Cloudera的新对手》...
  • MapR-DB JSON Grafana插件 Grafana与MapR-DB JSON一起使用Grafana插件允许将MapR-DB JSON表中存储的任意数据可视化。 它允许用户: 创建图形和表格面板 可视化原始JSON文档 使用条件语法指定条件 指定投影 使用...
  • Spark and mapr

    2020-11-23 06:14:18
    Our spark installation use a mapr filesystem ( hdfs compatible ). GATK spark tools does not seems to recognize it. When running the following command: <p>/home/axverdier/Tools/GATK4/gatk-4.beta.6/...
  • mapr-fs 架构 介绍 MapR-DB表复制允许将数据复制到可能在同一群集或另一个群集中的另一个表。 这与自动复制和集群内复制不同,后者是将数据复制到不同的物理节点以实现高可用性并防止数据丢失。 本教程重点介绍...
  • MapR浅析

    千次阅读 2012-11-27 09:36:26
    1. 天上掉下个MapR MapR成立于2009年,但是引起媒体广泛关注是缘由GIGAOM网站2011年3月的一篇报道 《MapR,Cloudera的新对手》(http://gigaom.com/cloud/meet-mapr-a-competitor-to-hadoop-leader-cloudera/),...
  • hadoopde mapr 介绍 Apache Flink是用于分布式流和批处理数据处理的开源平台。 Flink是具有多个API的流数据流引擎,用于创建面向数据流的应用程序。 Flink应用程序通常使用Apache Kafka进行数据输入和输出。 ...
  • hadoopde mapr 我们已经在运行Spark 1.5.2的5节点MapR 5.1集群上对CaffeOnSpark进行了试验,并将在此博客文章中分享我们的经验,困难和解决方案。 深度学习和Caffe 深度学习近来受到了广泛关注,AlphaGo在一款被...
  • hadoopde mapr 在本周的“白板演练”中,MapR的解决方案架构师Jorge Geronimo解释了如何使用一行代码就可以在同一群集内或在世界的另一个区域内创建MapR数据流的副本。 Jorge还描述了用于流数据的多主复制,以及...
  • MapR技术分析文档

    2013-11-03 21:37:56
    MapR技术分析文档,用于详细介绍MapR技术的使用、与MapReduce的不同等
  • <div><p>Hello, I am using your wonderful tools to test some aspects of my MapR clusters, but it is failing the license check after applying a new license. <p>Here is my verbose output: <pre><code> /...
  • mapr集群

    2012-03-09 11:22:41
    2011年6月,在Hadoop 2011峰会上,MapR的... Srivas做了名为《Design, Scale and Performance of MapR's Distribution for Hadoop》的演讲,比较详细的介绍了MapR设计原则,部分实现细节以及MapR的性能,外界也
  • hadoopde mapr 编者注:这篇嘉宾帖子由Charu Madan和Thomas Weise撰写。 在当今激烈的竞争和客户流失的世界中,电信提供商正在重塑和转型,以便能够为其客户提供最佳的客户服务和满意度。 主要目标是最大程度地...
  • sdc-mapr-k8s 该项目使用MapR v6.1客户端和Kubernetes部署支持构建StreamSets数据收集器(SDC)的自定义Docker映像。 配置和构建映像 切换到sdc-mapr-docker目录。 编辑build.sh并进行以下更改: 设置图像名称 编辑...
  • mapr-fs 架构 P reviously,我们已经讨论了一些优势和特点伴随MAPR-DB。 但是,这一次,我们将在使用此企业级数据库时动手操作。 使用MapR-DB时,由于MapR-DB数据是使用JSON格式存储的,因此通常始终将JSON中的...
  • <div><ul><li>The new <code>StoragePluginOptimizerRule</code> for reading MapR-DB JSON tables by Drill native reader is added. The rule can allow in planning stage to replace <code>HiveScan</code> ...
  • hadoopde mapr Apache Hadoop社区为我们提供了很多工具,使我们可以与Hadoop分布式文件系统进行交互。 通过向我们展示一个简单易懂的界面,这些工具消除了无数机器在后台的复杂性。 hadoop fs是Hadoop入门的一个...
  • hadoopde mapr 在过去的20年中,对文档图像处理进行了大量研究,但是在并行处理方面没有进行太多研究。 建议用于并行处理的一些解决方案是为每个图像创建执行线程,或者使用GNU Parallel 。 在此博客文章中,您将...
  • hadoopde mapr 在过去的几周中,我们已经看到许多围绕Apache Spark的活动和动量。 在旧金山的Spark峰会上,我们宣布了在MapR平台上运行的企业级Spark发行版 ,并且在此活动中我们引起了很多兴趣。 客户越来越倾向于...
  • mapr-fs 架构 在上一篇文章中,我们讨论了使该分布式数据库特别有趣的MapR-DB的某些功能。 在这篇文章中,我们打算通过提出一个特定的用例来继续这项工作。 问题 要解决的问题可以描述如下。 一连串的消息...
  • mapr 和cdh对比 PySpark是一个Spark API,可让您通过Python Shell与Spark进行交互。 如果您具有Python编程背景,那么这是入门Spark数据类型和并行编程的绝佳方法。 PySpark是探索性大数据分析的一种特别灵活的工具...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,180
精华内容 472
关键字:

MapR