Hadoop是啥,具体有啥用呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop是啥,具体有啥用呢?相关的知识,希望对你有一定的参考价值。

Hadoop是什么,具体有什么用呢?

首先Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop 的最常见用法之一是 Web 搜索。虽然它不是唯一的软件框架应用程序,但作为一个并行数据处理引擎,它的表现非常突出。Hadoop 最有趣的方面之一是 Map and Reduce 流程,它受到Google开发的启发。这个流程称为创建索引,它将 Web爬行器检索到的文本 Web 页面作为输入,并且将这些页面上的单词的频率报告作为结果。
结果是对输入域中的单词进行计数,这无疑对处理索引十分有用。但是,假设有两个输入域,第一个是 one small step for man,第二个是 one giant leap for mankind。您可以在每个域上执行 Map 函数和 Reduce 函数,然后将这两个键/值对列表应用到另一个 Reduce 函数,这时得到与前面一样的结果。换句话说,可以在输入域并行使用相同的操作,得到的结果是一样的,但速度更快。这便是 MapReduce 的威力;它的并行功能可在任意数量的系统上使用
回到 Hadoop 上,它实现这个功能的方法是:一个代表客户机在单个主系统上启动的 MapReduce应用程序称为 JobTracker。类似于 NameNode,它是 Hadoop 集群中唯一负责控制 MapReduce应用程序的系统。在应用程序提交之后,将提供包含在 HDFS 中的输入和输出目录。JobTracker 使用文件块信息(物理量和位置)确定如何创建其他 TaskTracker 从属任务。MapReduce应用程序被复制到每个出现输入文件块的节点。将为特定节点上的每个文件块创建一个唯一的从属任务。每个 TaskTracker 将状态和完成信息报告给 JobTracker
通过Hadoop安全部署经验总结,开发出以下十大建议,以确保大型和复杂多样环境下的数据信息安全 [9] 。
1、先下手为强!在规划部署阶段就确定数据的隐私保护策略,最好是在将数据放入到Hadoop之前就确定好保护策略 [9] 。
2、确定哪些数据属于企业的敏感数据。根据公司的隐私保护政策,以及相关的行业法规和政府规章来综合确定 [9] 。
3、及时发现敏感数据是否暴露在外,或者是否导入到Hadoop中 [9] 。
4、搜集信息并决定是否暴露出安全风险 [9] 。
5、确定商业分析是否需要访问真实数据,或者确定是否可以使用这些敏感数据。然后,选择合适的加密技术。如果有任何疑问,对其进行加密隐藏处理,同时提供最安全的加密技术和灵活的应对策略,以适应未来需求的发展 [9] 。
6、确保数据保护方案同时采用了隐藏和加密技术,尤其是如果我们需要将敏感数据在Hadoop中保持独立的话 [9] 。
7、确保数据保护方案适用于所有的数据文件,以保存在数据汇总中实现数据分析的准确性 [9] 。
8、确定是否需要为特定的数据集量身定制保护方案,并考虑将Hadoop的目录分成较小的更为安全的组 [9] 。
9、确保选择的加密解决方案可与公司的访问控制技术互操作,允许不同用户可以有选择性地访问Hadoop集群中的数据 [9] 。
10、确保需要加密的时候有合适的技术(比如Java、Pig等)可被部署并支持无缝解密和快速访问数据
参考技术A Hadoop是一个编程模型,是专为离线和大规模数据分析而设计,用于处理实际问题。具体的用途一般分为分布式存储数据、日志处理、ETL、机器学习、搜索引擎、数据挖掘等。

python 和 ruby​​ - 有啥用呢? [关闭]

【中文标题】python 和 ruby​​ - 有啥用呢? [关闭]【英文标题】:python and ruby - for what to use it? [closed]python 和 ruby​​ - 有什么用呢? [关闭] 【发布时间】:2010-11-12 02:01:11 【问题描述】:

我正在考虑学习一点 ruby​​ 和 python,我突然想到,ruby/python 有什么好处?何时使用 ruby​​,何时使用 python,或者 ruby​​/python 不适合什么? :)

我应该用这些语言做什么?

谢谢

【问题讨论】:

这个问题应该被标记为主观的。而且,无论如何,我们还没有足够的 python vs ruby​​ Holywars 吗? p.s. python > ruby​​ (nudge-nudge) 重复:***.com/questions/551465/…、***.com/questions/234721/…、***.com/questions/673964/…、***.com/questions/405165/… 请搜索“[python] [ruby]”并阅读所有这些问题。之后,找到一种方法让你的问题与众不同。 ***.com/questions/tagged/ruby+python @S.Lott Cool,只需要在文本前面加上一个随机的 a8s8df8as8df8as89fa89d 值,然后现在是唯一的。你会不会让一个发帖的人会读到任何东西?读书的人问得少,因为他们忙于阅读:D而且问题的重点也不好。我为什么要学python??首先考虑要编程什么,你将获得的公众,目标操作系统/环境,然后学习需要的东西。要学习随机的东西,它必须尝试学习中文或如何捕捉独角兽越好。 【参考方案1】:

它们主要适用于快速原型设计、快速开发、动态程序、Web 应用程序和脚本。它们是通用语言,因此您几乎可以将它们用于您想要的所有内容。您将拥有更短的开发时间(与 Java 或 C++ 相比),但性能更差,静态错误检查更少。

您也可以在它们上开发桌面应用程序,但在运送时可能会有一些小麻烦(因为您通常也必须运送解释器)。

您不应该对它们执行关键代码或大量计算 - 如果您需要这些东西,请使用更快的语言(如 C)制作它们并为代码进行绑定。我相信 Python 在这方面比 Ruby 更好,但我可能错了。 (OTOH,Ruby 的元编程更强大)

【讨论】:

嗯,将 C 绑定到 ruby​​ 非常容易(或者,至少对我来说是这样)。除此之外,我同意你的看法。 Ruby 在元编程方面的优势在哪里? 您可以轻松地将解释器打包到您的应用程序中,并使用 py2exe 等各种工具将其作为二进制文件分发。 如果您没有为 Ruby 编写 C 扩展的经验,请不要说“我相信 Python 在这方面比 Ruby 更好”。 :) 我会向新人推荐 vb 语法,因为会获得很多使用脚本或那些新语言时不具备的基础知识。所以,我学习 PHP 是因为我喜欢网站。后来我尝试将它用作带有许多棘手应用程序的桌面应用程序,例如 bambalam 编译器(喜欢它们,缺点是 php5.2 !!)但它允许我构建 ~512Kb Windows APP,包括 GUI(gtk/winbuilder) exe中的框。无论如何 PHP 不适合桌面 GUI,所以我学习了一些 vb 语法风格的语言来开发简单的应用程序。 (如拖放ftp)。想想你想要/需要开发什么,然后选择【参考方案2】:

如果您想知道人们实际使用它们的目的,请查看 Python Package Index、RubyForge,并搜索 SourceForge 甚至 ***。

正如 shylent 所说,你很容易就他们应该用于什么而陷入圣战。 Ruby 和 Python 都特别适用于原型设计,但您也可以构建生产软件,如 Ruby on Rails、Zope 和 Mercurial。

人们不会将它们用于性能关键(大多数不是)或接近金属的代码。

【讨论】:

【参考方案3】:

它们对一切都有好处。

Ruby 在处理文本文件 awk/perl 风格方面具有优势。这在 Ruby 中稍微容易一些。 其余的,我认为 Python 有一个字符串优势,而且它完全是主观的。请参阅What does Ruby have that Python doesn't, and vice versa? 和后续博文http://regebro.wordpress.com/2009/07/12/python-vs-ruby/。

我将 Python 用于我需要做的每件与编程相关的事情,并且会一直这样做,直到编程范式发生彻底转变,将 OO 开发推入石器时代。

【讨论】:

【参考方案4】:

为了避免圣战并可能给出另一个观点,我说(没有要求提供更多关于编程的有趣部分的更多信息,即问题-ere 认为这样做很酷):

先学python!

如果您还没有使用任何脚本语言,我会推荐 python。 python 的核心比 ruby​​ 的核心要干净一些,如果你先用 python 学习脚本的基本核心,你或多或少会学习 ruby​​。

您将(因为您使用 python)编写看起来非常干净且缩进良好的代码 从一开始。

关于学习什么的困难是你实际上会尝试解决的问题!

如果您正在寻找一种新的生产语言来解决 X,那么答案会变得更加复杂。 X 是语言核心的一部分吗?这种语言实际上是为了解决 X 而发明的吗?

如果问题是:我应该掌握哪种单一编程语言并最终达到 Nirva?我的回答是,我不知道! (虽然 CLisp、Scheme48、Erlang 或 Haskell 可能应该在我的最终名单上)

PS。 我知道这不是帖子中非常简化的问题的答案。 ruby 能做什么而 python 不能或 python 能做什么 ruby​​ 不能。

关键是,当你开始学习某件事时,通常会有一个隐藏的议程,所以你会一次又一次地尝试用任何语言解决你最喜欢的问题。

如果你真的想在没有议程的情况下学习,我认为 Python 最基本的形式是一种干净明快的方式,你应该能够在使用 ruby​​ 时使用相同的风格。

免责声明:我更喜欢生产(商业设置)中的 ruby​​,而不是 python。我更喜欢 ruby​​ 在 windows 上的 python。在我在家做的事情上,我更喜欢 ruby​​ 而不是 python。我这样做是因为我真正喜欢解决的问题在 ruby​​ 中比在 python 中解决更有趣。我的编程风格/习惯往往更适合 ruby​​。

【讨论】:

【参考方案5】:

Ruby 和 Python 是旨在通过其简单性和表现力来促进开发人员生活的语言 - 您可以阅读文章 Ruby vs Python

了解更多信息

在过去几年中,Ruby 的受欢迎程度略有下降,而 Python 正在获得大量新用户,尤其是来自 Web 开发之外的用户。这是因为 Python 在数据处理和 ML/AI 中的广泛使用。

您也可以从会议议程中看到它。虽然 Ruby 会议侧重于 Web 开发和 Ruby 性能,但 Python 会议更侧重于数据科学和机器学习 - 查看我最近参加的 Python 会议的收获Python in 2019 - Takeaways from PyCon CZ

【讨论】:

以上是关于Hadoop是啥,具体有啥用呢?的主要内容,如果未能解决你的问题,请参考以下文章

hadoop map reduce中分组比较器有啥用

hadoop是啥意思?与大数据有啥关系?

SSL证书有啥用呢

python 和 ruby​​ - 有啥用呢? [关闭]

hadoop中命令经常含有-fs,-dfs,fs和dfs有啥区别?作用是啥?

UrlEncode()方法有啥用呢?