Mav*_*ick 21 hadoop hive mapreduce apache-pig
我对Pig,Hive抽象是什么有基本的了解.但我对需要Hive,Pig或原生地图缩减的场景没有明确的想法.
我经历了一些文章,其中基本上指出Hive用于结构化处理而Pig用于非结构化处理.我们什么时候需要原生地图减少?你能指出一些使用Pig或Hive无法解决但却在原生地图中减少的场景吗?
ale*_*pab 19
复杂的分支逻辑有很多嵌套的if .. else ..结构,在Standard MapReduce中更容易,更快速地实现,为了处理你可以使用Pangool的结构化数据,它也简化了JOIN这样的事情.此外,标准MapReduce可让您完全控制,以最大限度地减少数据处理流程所需的MapReduce作业数量,从而转化为性能.但它需要更多时间来编码和引入变化.
Apache Pig也适用于结构化数据,但它的优势在于能够处理数据的BAG(所有在密钥上分组的行),实现以下内容更简单:
Hive更适合于即席查询,但其主要优点是它具有存储和分区数据的引擎.但它的表可以从Pig或Standard MapReduce中读取.
还有一件事,Hive和Pig不适合使用分层数据.
Tar*_*riq 14
简短回答 - 当我们需要对我们想要处理数据的方式进行非常深层次和细粒度控制时,我们需要MapReduce.有时,根据Pig和Hive查询来表达我们需要的内容并不是很方便.
这不应该是完全不可能的,你可以使用MapReduce,通过Pig或Hive.凭借Pig和Hive提供的灵活性,您可以以某种方式实现目标,但可能并不那么顺利.您可以编写UDF或执行某些操作并实现此目的.
在这些工具的使用中没有明显的区别.这完全取决于您的特定用例.根据您的数据和处理类型,您需要更好地确定哪种工具符合您的要求.
编辑:
前段时间我有一个用例,我必须收集地震数据并对其进行一些分析.保存这些数据的文件的格式有点奇怪.部分数据是EBCDIC编码的,而其余数据是二进制格式.它基本上是一个平面二进制文件,没有像\n或其他东西的分隔符.我很难找到使用Pig或Hive处理这些文件的方法.结果我不得不与MR安定下来.最初它需要时间,但逐渐变得更加平滑,因为一旦你准备好基本模板,MR非常迅速.
所以,就像我之前说的那样,它基本上取决于你的用例.例如,迭代数据集的每个记录在Pig(只是一个foreach)中非常容易,但是如果你需要foreach n ?? 因此,当您需要对您处理数据的方式进行"那种"控制时,MR更适合.
另一种情况可能是您的数据是分层的而不是基于行的,或者您的数据是高度非结构化的.
涉及作业链和作业合并的Metapatterns问题更容易使用MR而不是使用Pig/Hive来解决.
有时使用一些xyz工具完成特定任务与使用Pig/hive相比非常方便.恕我直言,MR在这种情况下也变得更好.例如,如果您需要对BigData进行一些统计分析,那么与Hadoop一起使用的R可能是最好的选择.
HTH
Bal*_*man 10
MapReduce的:
Strengths:
works both on structured and unstructured data.
good for writing complex business logic.
Weakness:
long development type
hard to achieve join functionality
Run Code Online (Sandbox Code Playgroud)
蜂巢:
Strengths:
less development time.
suitable for adhoc analysis.
easy for joins
Weakness :
not easy for complex business logic.
deals only structured data.
Run Code Online (Sandbox Code Playgroud)
猪
Strengths :
Structured and unstructured data.
joins are easily written.
Weakness:
new language to learn.
converted into mapreduce.
Run Code Online (Sandbox Code Playgroud)
蜂巢
优点:
像数据库这样的Sql喜欢这样.对结构化数据的良好支持.目前支持数据库架构和视图结构支持并发多用户,多会话场景.更大的社区支持.Hive,Hiver服务器,Hiver Server2,Impala,Centry已经
缺点:随着数据变得越来越大,性能下降,内存超流问题.不能做很多事.分层数据是一项挑战.非结构化数据需要类似udf组件多种技术的组合可能是大数据等情况下UTDF的噩梦动态部分
Pig:优点:基于脚本的数据流语言.
缺点:
非结构化数据需要udf like component不是一个很大的社区支持
MapReudce:优点:不同意"难以实现连接功能",如果您了解要实现的连接类型,可以使用几行代码实现.大多数时候MR产生更好的性能.MR对分层数据的支持非常好,特别是实现树状结构.更好地控制分区/索引数据.工作链.
缺点:需要很好地了解api以获得更好的性能等代码/调试/维护
| 归档时间: |
|
| 查看次数: |
23756 次 |
| 最近记录: |