标签: mapreduce

如何写'仅限地图'hadoop工作?

我是hadoop的新手,我对map-reduce编程的风格越来越熟悉,但现在我遇到了一个问题:有时候我只需要映射一个工作而我只需要将地图结果直接作为输出,这意味着减少这里不需要阶段,我该如何实现?

hadoop mapreduce

41
推荐指数
3
解决办法
3万
查看次数

在Hive中分解Struct数组

这是下面的Hive表

CREATE EXTERNAL TABLE IF NOT EXISTS SampleTable
(
USER_ID BIGINT,
NEW_ITEM ARRAY<STRUCT<PRODUCT_ID: BIGINT,TIMESTAMPS:STRING>>
)
Run Code Online (Sandbox Code Playgroud)

这是上表中的数据 -

1015826235     [{"product_id":220003038067,"timestamps":"1340321132000"},{"product_id":300003861266,"timestamps":"1340271857000"}]
Run Code Online (Sandbox Code Playgroud)

有什么办法可以在爆炸阵列后从HiveQL获得以下输出吗?

**USER_ID**  |  **PRODUCT_ID**  |   **TIMESTAMPS**
 ------------+------------------+----------------
1015826235      220003038067       1340321132000
1015826235      300003861266       1340271857000
Run Code Online (Sandbox Code Playgroud)

更新

我写了这个查询以获得上述格式的输出,但它并没有按照我想要的方式给出结果.

SELECT myTable1.myCol1,myTable2.myCol2 FROM sampletable st LATERAL VIEW 
explode(st.purchased_item.product_id) myTable1 AS myCol1 LATERAL VIEW 
explode(st.purchased_item.timestamps) myTable2 AS myCol2;
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决我的错误吗?任何建议将不胜感激.

hadoop hive mapreduce hiveql

41
推荐指数
2
解决办法
8万
查看次数

如何在Hadoop程序中的映射器中获取输入文件名?

如何在映射器中获取输入文件的名称?我有多个输入文件存储在输入目录中,每个映射器可能会读取不同的文件,我需要知道映射器已读取的文件.

hadoop mapreduce

41
推荐指数
4
解决办法
4万
查看次数

MongoDB聚合比较:group(),$ group和MapReduce

关于何时使用group(),与$ group或mapreduce聚合,我有点困惑.我在http://www.mongodb.org/display/DOCS/Aggregation上阅读了针对group()的文档,http://docs.mongodb.org/manual/reference/aggregation/group/#_S_group for $ group ..分片是否group()不起作用的唯一情况?另外,我觉得$ group比group()更强大,因为它可以与聚合框架中的其他管道运算符一起使用.$ group如何与mapreduce进行比较?我在某处读到它不生成任何临时集合,而mapreduce则生成.是这样吗?
有人可以提供插图或指导我一起解释这三个概念的链接,采用相同的样本数据,以便我可以轻松地比较它们吗?

编辑:
此外,如果您可以在这些命令中指出任何新的东西,那将是很好的,因为新的2.2版本出来了..

mapreduce mongodb mongodb-query aggregation-framework

39
推荐指数
1
解决办法
1万
查看次数

38
推荐指数
1
解决办法
2万
查看次数

设置地图任务的数量并减少任务

我目前正在运行一项工作,我将地图任务的数量修改为20,但获得更高的数字.我还将reduce任务设置为零,但我仍然得到一个非零的数字.MapReduce作业完成的总时间也不会显示.有人能告诉我我做错了什么.我正在使用此命令

hadoop jar Test_Parallel_for.jar Test_Parallel_for Matrix/test4.txt Result 3 \ -D mapred.map.tasks = 20 \ -D mapred.reduce.tasks =0
Run Code Online (Sandbox Code Playgroud)

输出:

11/07/30 19:48:56 INFO mapred.JobClient: Job complete: job_201107291018_0164
11/07/30 19:48:56 INFO mapred.JobClient: Counters: 18
11/07/30 19:48:56 INFO mapred.JobClient:   Job Counters 
11/07/30 19:48:56 INFO mapred.JobClient:     Launched reduce tasks=13
11/07/30 19:48:56 INFO mapred.JobClient:     Rack-local map tasks=12
11/07/30 19:48:56 INFO mapred.JobClient:     Launched map tasks=24
11/07/30 19:48:56 INFO mapred.JobClient:     Data-local map tasks=12
11/07/30 19:48:56 INFO mapred.JobClient:   FileSystemCounters
11/07/30 19:48:56 INFO mapred.JobClient:     FILE_BYTES_READ=4020792636
11/07/30 19:48:56 INFO mapred.JobClient:     HDFS_BYTES_READ=1556534680 …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce

37
推荐指数
4
解决办法
15万
查看次数

hadoop中的SUCCESS和part-r-00000文件是什么?

虽然我经常在我的Ubuntu机器上使用Hadoop,但我从未想过SUCCESSpart-r-00000文件.输出总是驻留在part-r-00000文件中,但文件的用途是SUCCESS什么?为什么输出文件有名字part-r-0000?是否有任何意义/任何命名法或者这只是随机定义的?

hadoop mapreduce

37
推荐指数
1
解决办法
2万
查看次数

YARN的容器是什么?

YARN的容器是什么?它是与nodemanager上运行的任务运行的子JVM相同还是不同?

hadoop mapreduce hadoop-yarn

37
推荐指数
4
解决办法
5万
查看次数

Hadoop一个Map和多个Reduce

我们有一个大型数据集来分析多个reduce函数.

所有reduce算法都在同一个map函数生成的同一数据集工作.读取大型数据集每次都要花费太多,最好只读取一次并将映射数据传递给多个reduce函数.

我可以用Hadoop做到这一点吗?我搜索过这些例子和intarweb,但我找不到任何解决方案.

hadoop mapreduce

36
推荐指数
2
解决办法
3万
查看次数

不推荐使用Hadoop DistributedCache - 首选API是什么?

我的地图任务需要一些配置数据,我想通过分布式缓存分发.

Hadoop MapReduce教程显示了DistributedCache类的用法,大致如下:

// In the driver
JobConf conf = new JobConf(getConf(), WordCount.class);
...
DistributedCache.addCacheFile(new Path(filename).toUri(), conf); 

// In the mapper
Path[] myCacheFiles = DistributedCache.getLocalCacheFiles(job);
...
Run Code Online (Sandbox Code Playgroud)

然而,DistributedCache为过时标记中的Hadoop 2.2.0.

实现这一目标的新方法是什么?是否有涵盖此API的最新示例或教程?

java hadoop mapreduce

35
推荐指数
3
解决办法
3万
查看次数