草庐IT

number_sorted

全部标签

hadoop - pig : Count number of keys in a map

我想计算Pigmap中键的数量。我可以编写UDF来执行此操作,但我希望有更简单的方法。data=LOAD'hbase://MARS1'USINGorg.apache.pig.backend.hadoop.hbase.HBaseStorage('A:*','-loadKeytrue-caching=100000')AS(id:bytearray,A_map:map[]);在上面的代码中,我想基本上构建id的直方图以及该键在列族A中有多少项。怀着希望,我尝试了c=FOREACHdataGENERATEid,COUNT(A_map);但不出所料,这没有奏效。或者,也许有人可以建议一个更好的方

Stage-1 : number of reducers always shows 1. 的 Hadoop 作业信息 我无法更改它。我该如何改变它?

我在hadoop集群上使用Hive。每当我尝试运行配置单元查询时,它总是显示为HadoopjobinformationforStage-1:numberofreducers:1我使用了以下Hive配置:hive.exec.reducers.bytes.per.reducer=1000000000hive.exec.reducers.max=999请告诉我如何增加reducer的数量。谢谢。 最佳答案 确保您已完成以下几点:您的mapred.reduce.tasks默认为-1。通过将此属性设置为-1,Hive将自动计算出reducer

hadoop - Spark :What is the ideal number of reducers

我的数据大约是300G。如果我使用Hadoop对其执行reduce作业,180个reduce插槽就可以了,队列中没有任务等待。如果我使用具有相同数量的reduce槽的Spark执行此操作,它会在洗牌阶段卡住,而如果我使用更多的槽(比如4000)就不会发生这种情况,但这将以低效率结束。有什么我可以做的,比如调整参数,以便我可以使用与hadoop相同的插槽?顺便说一句,我的集群有15个节点,每个节点有12个核心 最佳答案 ShuffleOperationinHadoopandSpark是关于该主题的好读物。一些引述:Eachmaptas

hadoop - 如何检查 sort merge bucket join 是否在 HIVE 中工作?

我想验证我的SMB连接是否有效。我可以通过日志验证映射连接,但不能通过SMB。我也通过了解释计划,但没有得到任何提示。请帮助我。 最佳答案 您可以对查询使用EXPLAINEXTENDED。到目前为止,我只能生成一个带有map-reduce的SMB映射连接。当hive正在执行SMBmapjoin时,您可以在explain的输出中的阶段计划下看到“SortedMergeBucketMapJoinOperator”。这是在我的设置中使用map-reduce生成SMB映射连接的代码片段:sethive.execution.engine=mr

hadoop - 请帮助Hadoop中的Shuffle和Sorting的必要性是什么?

在一个普通的mapreducewordcount程序中,我们是否需要设置shuffle和sort的方法,或者框架会处理这个? 最佳答案 框架会处理这个。洗牌是将数据从映射器传输到缩减器的过程,缩减器按中间键(词)的升序(字典顺序)缩减数据。您可以更改默认设置,但没有必要在wordcount程序中这样做。您只需要设置一个映射器和一个缩减器以及可选的(但确实有助于提高速度)一个组合器。甚至不需要自己实现映射器和缩减器,因为hadoop自带了这样的字数映射器(TokenCounterMapper)和缩减器(IntSumReducer,也可

sorting - sort_array 按不同列排序,Hive

我有两列,一列是产品,一列是购买日期。我可以通过应用sort_array(dates)函数对日期进行排序,但我希望能够在购买日期之前对sort_array(products)进行排序。有没有办法在Hive中做到这一点?表名是ClientIDProductDate100Shampoo2016-01-02101Book2016-02-04100Conditioner2015-12-31101Bookmark2016-07-10100Cream2016-02-12101Book22016-01-03然后,为每个客户获取一行:selectclientID,COLLECT_LIST(Produc

sorting - 在 MapReduce 中使用分区器进行二次排序有什么意义?

如果您需要在传递给reduce阶段时对给定键的值进行排序,例如移动平均线,或者模仿SQL中的LAG/LEAD分析函数,您需要在MapReduce中实现二次排序.在Google上搜索之后,常见的建议是:A)在映射阶段发出复合键,其中包括,B)创建一个“复合键比较器”类,其目的是为了二次排序,比较键后比较要排序的值,从而使传递给reducer的Iterable被排序。C)创建一个“自然键分组比较器”类,其目的是用于主要排序,仅比较要排序的键,以便传递给缩减器的Iterable包含属于给定键的所有值。D)创建一个“自然键分区器类”,我不知道它的目的,也是我的问题的目的。来自here:Then

hadoop - 为什么要对 map reduce 中生成的中间键进行 SORT?

我理解为什么中间键值按键分组但为什么要对它们进行排序? 最佳答案 分组就是这样实现的。当您按键排序时,它们会组合在一起。它是否已排序并不重要……重要的是相同的键彼此相邻。排序可能不是最好的方法。也许某种哈希算法会更快:O(N)而不是O(NlogN)。它被实现为排序只是因为有一些应用程序需要排序的键(例如HBase/BigTable)。最近开发了一种可插入排序,并且在测试版中可用。我还没有机会尝试一下。http://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop

hadoop - Sort 在 MapReduce 阶段用在什么地方,为什么?

我是hadoop的新手。不清楚为什么我们需要在使用hadoopmapreduce时能够按键排序?在map阶段之后,我们需要将每个唯一键对应的数据分发给一定数量的reducer。这可以在不需要排序的情况下完成,对吗? 最佳答案 它就在那里,因为排序是对键进行分组的巧妙技巧。当然,如果您的工作或算法不需要您的key的任何顺序,那么您可以更快地通过一些哈希技巧进行分组。在Hadoop本身中,多年来已经有一个JIRA归档(source)。位于Hadoop之上的其他几个发行版已经具有这些功能,例如Hanborq(他们称之为避免排序)。(sou

sorting - 如何在 hadoop 的洗牌/排序阶段进行数字排序?

数据看起来像这样,第一个字段是一个数字,3...1...2...11...我想根据第一个字段按数字而不是按字母顺序对这些行进行排序,这意味着排序后它应该如下所示,1...2...3...11...但是hadoop一直给我这个,1...11...2...3...如何改正? 最佳答案 假设您正在使用HadoopStreaming,您需要使用KeyFieldBasedComparator类。-Dmapred.output.key.comparator.class=org.apache.hadoop.mapred.lib.KeyFieldB