播客的第22集是与Patrick Hunt的谈话

我们讨论了Apache Solr(上游)中的新工作,使它可以在Apache Hadoop上工作。 Solr支持将其索引和事务日志文件写入和读取到HDFS分布式文件系统。 这不使用Hadoop Map-Reduce处理Solr数据,而是仅使用HDFS文件系统存储索引和事务日志文件。 https://cwiki.apache.org/confluence/display/solr/Running+Solr+on+HDFS

我们还讨论了Solr Cloud以及分片功能如何使Solr可以通过Hadoop集群进行扩展https://cwiki.apache.org/confluence/display/solr/SolrCloud 。

Apache Solr能够设置结合了容错能力和高可用性的Solr服务器集群。 这些功能称为SolrCloud ,这些功能提供了分布式索引和搜索功能,支持以下功能:

  • 整个集群的集中配置
  • 自动负载平衡和查询故障转移
  • ZooKeeper集成用于集群协调和配置。

SolrCloud是灵活的分布式搜索和索引,无需主节点即可分配节点,分片和副本。 相反,Solr使用ZooKeeper来管理这些位置,具体取决于配置文件和架构。 可以将文档发送到任何服务器,ZooKeeper会找出来。

Patrick向我介绍了Morphlines (适用于Hadoop的Cloudera开发工具包的一部分) http://cloudera.github.io/cdk/docs/current/cdk-morphlines/index.html

Cloudera Morphlines是一个开源框架,可减少构建和更改Hadoop ETL流处理应用程序所需的时间和技能,这些应用程序可将数据提取,转换并加载到Apache Solr,HBase,HDFS,企业数据仓库或分析在线仪表板中。 是否想在不进行编程和不具备大量MapReduce技能的情况下构建或促进ETL作业? 以最少的麻烦和支持费用完成工作? 这是入门方法。

morphline是一个丰富的配置文件,可以轻松定义一个转换链,该转换链可以使用来自任何类型数据源的任何类型的数据,处理数据并将结果加载到Hadoop组件中。 它用简单的配置步骤代替了Java编程,并相应地减少了与开发和维护定制ETL项目相关的成本和集成工作。

Morphlines是一个库,可嵌入任何Java代码库中。 morphline是转换命令的内存容器。 命令是用于执行诸如加载,解析,转换或以其他方式处理单个记录之类的任务的morphline插件。 记录是具有可选blob附件或POJO附件的名称/值对的内存中数据结构。 该框架是可扩展的,并且以直接的方式集成了现有功能和第三方系统。

morphline命令是Cloudera Search的一部分。 Morphlines支持ETL数据从Flume和MapReduce以及HBase流入Apache Solr。 Flume涵盖了实时情况,而MapReduce涵盖了批处理情况。 自从推出Cloudera Search morphline开发以来,毕业于Cloudera Development Kit (CDK)的目的是使除Search之外的更多用户和产品都可以使用该技术。 CDK是一组库,工具,示例和文档,旨在简化在Hadoop生态系统之上构建系统的过程。 CDK托管在GitHub上,并鼓励社区参与。 例如,可以将变形线嵌入Crunch,HBase,Impala,Pig,Hive或Sqoop中。 让我们知道您想去哪里!

Morphlines可以看作是Unix管道的演进,其中数据模型被通用化以与通用记录流(包括任意二进制有效载荷)一起工作。 morphline是一种使用记录(例如Flume事件,HDFS文件,RDBMS表或Avro对象),将它们转换为记录流并通过一系列易于配置的转换将记录流通过管道传递给用户的一种有效方式。目标应用程序(例如Solr),如下图所示:

在此图中,Flume Source接收系统日志事件并将其发送到Flume Morphline Sink,后者将每个Flume事件转换为一条记录,并将其通过管道传递给readLine命令。 readLine命令提取日志行并将其通过管道grokgrok命令。 grok命令使用正则表达式模式匹配来提取该行的某些子字符串。 它将生成的结构化记录通过管道loadSolrloadSolr命令。 最后, loadSolr命令将记录加载到Solr(通常为SolrCloud)中。 在此过程中,原始数据或半结构化数据根据应用程序建模要求转换为结构化数据。

Morphline框架附带了一组常用的高级转换和I / O命令,可以将它们组合为特定于应用程序的方式。 插件系统允许添加新的转换和I / O命令,并以简单的方式集成现有功能和第三方系统。

这种集成可以实现快速的Hadoop ETL应用程序原型制作,实时的复杂流和事件处理,灵活的日志文件分析,多种异构输入模式和文件格式的集成,以及在Hadoop ETL应用程序之间重用ETL逻辑构造块。

CDK附带了一个高效的运行时,该运行时可以动态编译一个吗啉。 运行时在同一线程中执行给定吗啉的所有命令。 将记录从一个命令传递到另一个命令仅意味着廉价的Java方法调用。 特别是,没有队列,没有线程之间的切换,没有上下文切换,也没有命令之间的序列化,这使性能开销最小化。

变形线处理连续或任意大的记录流。 命令将一条记录转换为零个或多个记录。 数据模型可以描述如下:记录是一组命名字段,其中每个字段都有一个或多个值的有序列表。 值可以是任何Java对象。 即,一条记录本质上是一个哈希表,其中每个哈希表条目都包含一个String键和一个Java Objects列表作为值。 请注意,一个字段可以具有多个值,并且任何两个记录都不必使用公共字段名。 这种灵活的数据模型完全符合Solr / Lucene数据模型的特征。

不仅结构化数据,而且二进制数据都可以传递到吗啉并由其处理。 按照约定,一条记录可以包含一个名为_attachment_body的可选字段,该字段可以是Java java.io.InputStream或Java byte []。 可选地,可以通过设置名为_attachment_mimetype(例如“ application / pdf”)和_attachment_charset(例如“ UTF-8”)和_attachment_name(例如“ cars.pdf”)的字段来更详细地表征此类二进制输入数据,这有助于检测和解析数据类型。 这类似于电子邮件的工作方式。

此通用数据模型对于支持广泛的应用程序很有用。 例如, Apache Flume Morphline Solr Sink嵌入了morphline库并执行了morphline,将水槽事件转换为morphline记录并将其加载到Solr中。 该接收器将Flume事件的主体填充到morphline记录的_attachment_body字段中,并将Flume事件的标题复制到同名的记录字段中。 作为另一个示例, MapReduceIndexerTool的Mappers将JavaXML java.io.InputStream引用当前处理的HDFS文件填充到morphline记录的_attachment_body字段中。 MapReduceIndexerTool的Mappers还将有关HDFS文件的元数据填充到记录字段中,例如文件的名称,路径,大小,上次修改时间等。这样,吗啉可以作用于从Flume和HDFS接收的所有数据。 作为另一个示例, Morphline Lily HBase索引器将HBase结果Java POJO填充到morphline记录的_attachment_body字段中。 这样,诸如extractHBaseCells类的extractHBaseCells命令就可以从HBase更新中提取数据并相应地更新Solr索引。

我们还谈到了许多有关Apache Zookeeper的信息,以及有关Zookeeper最初在Yahoo!上的历史。 和帕特里克从那以后的经历。 要听到帕特里克必须说的一切,请订阅播客。

翻译自: https://www.javacodegeeks.com/2014/05/apache-solr-real-time-live-index-updates-at-scale-with-apache-hadoop.html

借助Apache Hadoop大规模扩展Apache Solr实时实时索引相关推荐

  1. apache hadoop_通过Apache Hadoop大规模扩展Apache Solr实时实时索引

    apache hadoop 播客的第22集是与Patrick Hunt的谈话 我们讨论了Apache Solr(上游)中的新工作,使它可以在Apache Hadoop上工作. Solr支持将其索引和事 ...

  2. Apache Hadoop YARN:另一个资源协调者

    文章目录 摘要 1. 引言 2. 历史和基本原理 2.1 专用集群的时代 2.2 Hadoop on Demand的缺点 2.3 共享集群 3. 架构 3.1 概述 3.2 Resource Mana ...

  3. 用Apache Hadoop和Apache Solr处理和索引医学图像

    原文链接:Processing and Indexing Medical Images With Apache Hadoop and Apache Solr 作者:Justin Kestelyn 译者 ...

  4. Uber 大规模运行 Apache Pinot实践

    引言 Uber 有一个复杂的"市场",由乘客.司机.食客.餐厅等组成.在全球范围内运营该市场需要实时的情报和决策.例如,识别延迟的 Uber Eats 订单或放弃的购物车有助于我们 ...

  5. 【大数据】大数据 Hadoop 管理工具 Apache Ambari(HDP)

    文章目录 一.概述 二. Ambari 与 HDP 关系 三.Ambari 与 Cloudera manager 的对比 1)开源性 2)支持的发行版 3)用户界面 4)功能和扩展性 5)社区支持和生 ...

  6. Apache Hadoop

    作者:jiangzz 电话:15652034180 微信:jiangzz_wx 微信公众账号:jiangzz_wy 大数据(Big Data) 随着信息化互联网|物联网发展要求,万物互联趋势势在必行. ...

  7. Hadoop 3.0的新增功能– Apache Hadoop 3的增强功能

    这个" Hadoop 3.0的新功能 "博客着重介绍了Hadoop 3预期中的更改,因为它仍处于Alpha阶段.Apache社区已合并了许多更改,并且仍在进行某些更改.因此,我们将 ...

  8. Apache Hadoop 2.9.2文档中文译文 -------未完!!!!!!

    目录 一. General(概括) 1. Overview 2. Single Node Setup 3. Cluster Setup 4. Commands Reference 5. FileSys ...

  9. Apache Hadoop 基础设施容器化在 Uber 的实践

    大数据厂长备注:以下的我们均代表 Uber 的 Hadoop 运维团队. 介绍 随着 Uber 业务的增长,Uber 公司在 5 年内将 Apache Hadoop(本文简称为"Hadoop ...

最新文章

  1. zookeeper 集群安装
  2. Linux下基于官方源代码RPM包构建自定义MySQL RPM包
  3. .net ticks 转java_《C#并发编程经典实例》—— 转换.NET事件
  4. 基于WINCE6.0+S3C6410的背光驱动
  5. MoeCTF 2021Re部分------PE
  6. java中函数的表达,如何表达“用T作为参数|的函数字符串,它是TypeScript中T“的键...
  7. Git之深入解析凭证存储
  8. 深度学习为图片压缩算法赋能:节省55%带宽
  9. php strpos无效,簡單的PHP strpos功能不起作用,為什么?
  10. echart实例数据 本地加载_JVM 类加载概述
  11. 深入理解卷积层,全连接层的作用意义
  12. 从零开始学习编程_如何开始学习编程
  13. 使用js数组sort比较函数,实现按照对象的某个属性对数组进行排序
  14. DevExpress v17.2新版亮点——XAF篇
  15. 政企用户网络安全常见风险盘点
  16. 精讲贪吃蛇(c语言篇)(代码可直接取)
  17. 华农计算机学院院长,中国计算机学会“CCF走进高校”走进华农
  18. python3的基本数据类型_python3基本数据类型
  19. 你即将拥有HDMI2.1,纯光纤HDMI最高支持72Gbps试用体验
  20. 浏览器控制台 console 保存输出文件

热门文章

  1. 基于ZooKeeper实现HA高可用性以及自动主备切换
  2. java中public private_java中public、private、protected区别
  3. HttpServletRequest中getAttribute()和getParameter()的区别
  4. 水晶报表图形位置_看了我用Excel做的年度报表,老板直夸好
  5. 转:权限管理——用户认证和用户授权
  6. java_basic_review(5)java反射荔枝
  7. java集合——java.util.Properties类
  8. Spring boot(六):如何优雅的使用mybatis
  9. 在Selenium中按TagName定位元素
  10. java8 streams_另一个Java 8 Lamdbas和Streams示例