大数据的Hadoop是做啥的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据的Hadoop是做啥的?相关的知识,希望对你有一定的参考价值。
Hadoop中有很多方法可以加入多个数据集。MapReduce提供了Map端和Reduce端的数据连接。这些连接是非平凡的连接,并且可能会是非常昂贵的操作。Pig和Hive也具有同等的能力来申请连接到多个数据集。Pig提供了复制连接,合并连接和倾斜连接(skewed join),并且Hive提供了map端的连接和完整外部连接来分析数据。一个重要的事实是,通过使用各种工具,比如MapReduce、Pig和Hive等,数据可以基于它们的内置功能和实际需求来使用它们。至于在Hadoop分析大量数据,Anoop指出,通常,在大数据/Hadoop的世界,一些问题可能并不复杂,并且解决方案也是直截了当的,但面临的挑战是数据量。在这种情况下需要不同的解决办法来解决问题。
一些分析任务是从日志文件中统计明确的ID的数目、在特定的日期范围内改造存储的数据、以及网友排名等。所有这些任务都可以通过Hadoop中的多种工具和技术如MapReduce、Hive、Pig、Giraph和Mahout等来解决。这些工具在自定义例程的帮助下可以灵活地扩展它们的能力。 参考技术A Hadoop是一个由Apache基金会所开发的分布式系统基础架构,是用Java语言开发的一个开源分布式计算平台,适合大数据的分布式存储和计算平台。
Hadoop是目前被广泛使用的大数据平台,本身就是大数据平台研发人员的工作成果,Hadoop是目前比较常见的大数据支撑性平台。 参考技术B 找我要教程啊!!!!!! 参考技术C 提供海量数据存储和计算的。需要java语言基础。
Hadoop实现了一个分布zd式文件系统(Hadoop Distributed File System),简称HDFS。有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算回。
不明白,getSingularObjectFromString 方法是做啥的?
【中文标题】不明白,getSingularObjectFromString 方法是做啥的?【英文标题】:Can't understand, what does method getSingularObjectFromString do?不明白,getSingularObjectFromString 方法是做什么的? 【发布时间】:2013-07-29 07:43:51 【问题描述】:我正在 JIRA 中开发自己的自定义字段类型。 我的类很简单,它扩展了 GenericTextCFType。 我的目标是在数据库中存储一些字段值的标识符 (ID),但在问题表单上显示字段值的人类可读标题。
我搜索了 GenericTextCFType 类的方法,找到了 getSingularObjectFromString 方法,但我不明白它的作用。 JIRA javadoc 说:“返回一个奇异对象,给定表示层传递的字符串值” 但是什么是奇异对象,它需要什么?
【问题讨论】:
【参考方案1】:是的,这不是一个好名字。我在“Practical JIRA Plugins”中详细写过 (奥莱利)。这是那里的摘录,详细描述了许多方法(对格式感到抱歉)。本书还提供了工作示例,地址为https://bitbucket.org/mdoar/practical-jira-plugins
CustomFieldType 方法 该示例的自定义字段类型类将照常实现 CustomFieldType 接口,但将在继承层次结构中扩展一个比 NumberCFType 更高的类。我们将扩展的类是 AbstractCustomFieldType,它是大多数实现 CustomFieldType 的类的根。
CustomFieldType 接口中名称中带有“SingularObject”的方法指的是单数对象,在本例中为 Carrier 对象。 JIRA 4 自定义字段中引用 Object 的所有其他方法都引用传输对象,例如 Carrier 对象的集合。 JIRA 5 在大多数自定义字段方法中删除了 Object 的使用。 有关自定义字段在 JIRA 5.0 中发生的变化的更多信息,请参阅https://developer.atlassian.com/display/JIRADEV/Java+API+Changes+in+JIRA+5.0#JavaAPIChangesinJIRA5.0-CustomFieldTypes。类层次结构发生了一些重大变化,现在大多数类都使用 Java 泛型作为参数,而不是像以前那样仅使用 Object。
有两个对象通常被注入到自定义字段类型类的构造函数中。第一个是 CustomFieldValuePersister 持久对象,它将与数据库进行实际交互。第二个是 GenericConfigManager 对象,用于存储和检索自定义字段的默认值。其他对象根据需要注入到构造函数中——例如,示例 2-2 中的 DoubleConverter。 要考虑的第一组方法是自定义字段类型用于以某种方式与数据库交互的方法。
getSingularObjectFromString()
此方法将从数据库中获取的字符串(例如“42.0###The answer”)转换为 Carrier 对象。空值意味着没有定义这样的对象。
具有多个值的字段
Collection<Carrier> getValueFromIssue(CustomField field, Issue issue)
这是提取给定问题的字段包含内容的主要方法。它使用持久化器从数据库中检索问题的值,将每个值转换为 Carrier 对象,然后将所有 Carrier 对象放入传输对象集合中。空值表示该字段没有为给定问题存储的值。这是在 JIRA 5.0 之前用于返回 Object 的方法之一
createValue(CustomField field, Issue issue, Collection<Carrier> value)
updateValue(CustomField field, Issue issue, Collection<Carrier> value)
这些方法为给定问题中的字段创建新值或更新现有值。执行此操作的持久化器期望存储一个字符串集合,因此这两个方法都调用方法 getDbValueFromCollection 来帮助解决这个问题。
getDbValueFromCollection()
在许多自定义字段类型类中发现的私有便捷方法,有时使用不同的名称。它用于将传输对象(例如,Carrier 对象集合)转换为字符串集合以存储在数据库中。
setDefaultValue(FieldConfig fieldConfig, Collection<Carrier> value)
将传输对象(Carrier 对象的集合)转换为其数据库表示形式,并将其存储在数据库中的通用配置表中。
Collection<Carrier> getDefaultValue(FieldConfig fieldConfig)
从数据库中检索默认值(如果有)并将其转换为传输对象(Carrier 对象的集合)。 FieldConfig 对象代表自定义字段中每个默认值的上下文。
要考虑的下一组方法是以某种方式与网页交互的方法。来自网页的所有值都作为自定义 FieldParams 对象的一部分到达自定义字段类型对象,该对象是 HTML 输入元素值的 Map 的持有者。
validateFromParams(CustomFieldParams params, ErrorCollection errors, FieldConfig config)
这是用户编辑自定义字段值后调用的第一个方法。此处记录的任何错误都会很好地显示在编辑页面中的字段旁边。
getValueFromCustomFieldParams(CustomFieldParams customFieldParams)
此方法用于清除已被 validate FromParams 接受的字段的新值并将其转换为传输对象。自定义 FieldParams 对象将仅包含带有 name 属性的 HTML 元素的字符串,该属性是自定义字段 ID,例如 customfield_10010。空值表示该字段没有值。
getStringValueFromCustomFieldParams(CustomFieldParams parameters)
此方法返回一个对象,该对象可能是字符串、字符串集合甚至是 CustomFieldParams 对象。它用于填充第 3 章中使用的 value 变量:高级自定义字段类型 Velocity 模板。它还用于自定义字段搜索器使用的 Provider 类中。
String getStringFromSingularObject(Carrier singularObject)
此方法与您可能期望的 getSingularObjectFromString 不同。相反,它用于将单个对象(Carrier)转换为网页中使用的字符串,而不是数据库值。返回的字符串有时也是存储在 Lucene 索引中用于搜索的内容(第 57 页的“更复杂的搜索器”)。在 JIRA 5.0 之前,单数对象作为 Object 传递到此方法中。
要考虑的最后一组 CustomFieldType 方法是:
Set<Long> remove(CustomField field)
当自定义字段从 JIRA 实例中完全删除时调用此方法,并返回受删除影响的问题 ID。从字段中删除值的正确方法是 updateValue。
String getChangelogValue(CustomField field, Object value)
String getChangelogString(CustomField field, Object value)
这些方法是生成问题历史选项卡中的文本的方式。当此类型的自定义字段发生更改时,这些方法将使用该字段的前后值调用。这两种方法的区别在于,如果后面的值无效,则会显示字符串(https://developer.atlassian.com/display/JIRADEV/Database+Schema#DatabaseSchema-ChangeHistory)。
extractTransferObjectFromString()
extractStringFromTransferObject()
这些方法并非来自 CustomFieldType 接口,但它们存在于标准的 Multi 字段中,以便在项目导入期间使用。
其他接口
还有一些其他接口通常由自定义字段类型实现。
ProjectImportableCustomField
此接口中的 getProjectImporter 方法用于实现在从 XML 备份导入项目期间如何填充自定义字段。如果您不实现此接口,则项目导入将不会为您的自定义字段导入值。
MultipleCustomFieldType
MultipleSettableCustomFieldType
这两个接口由带有选项的自定义字段使用,而且可以有多个选项。对于这些类,可以使用 Options 类来访问这些值,该类是 Java List 的一个简单子类。这些接口并非真正旨在供通用多值自定义字段类型使用。
具有多个值的字段 | 41
SortableCustomField
这个接口包含一个比较两个奇异对象的比较方法。当您单击列标题对一页问题进行排序时,问题导航器会使用此选项。对于没有关联搜索器的自定义字段,这实际上是一个较慢的回退(参见第 4 章)。
RestAwareCustomFieldType
RestCustomFieldTypeOperations
这两个接口是 JIRA REST API 知道哪些字段可以被检索或更新的方式。 JIRA 5.0 中的新功能。
【讨论】:
请阅读这个问题,因为它是相关的,我仍然很困惑。 ***.com/questions/39703254/…以上是关于大数据的Hadoop是做啥的?的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop的组件MapReduce和HDFS分别是做啥的?