MapReduce工作笔记——Hadoop Streaming多目录/多路输入
时间:2022-07-24
本文章向大家介绍MapReduce工作笔记——Hadoop Streaming多目录/多路输入,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
0. 前言
在工作中时常会遇到一个job需要多路径的输入,比如计算CTR,需要PV、Click的输入路径,或者是想对一周的数据做Merge等, 下面将提供三种方法来完成多目录/多路输入。
比如,我路径下有如下共12个文件:
$ hls /home/wangcongying/test/
/home/wangcongying/test/20181101
/home/wangcongying/test/20181102
/home/wangcongying/test/20181103
/home/wangcongying/test/20181104
/home/wangcongying/test/20181105
/home/wangcongying/test/20181106
/home/wangcongying/test/20181107
/home/wangcongying/test/20181108
/home/wangcongying/test/20181109
/home/wangcongying/test/20181110
/home/wangcongying/test/20181111
/home/wangcongying/test/otherFile
每一个路径下有10个part,如下:
$ hls /home/wangcongying/test/20181101
/home/wangcongying/test/20181101/part-00000
/home/wangcongying/test/20181101/part-00001
/home/wangcongying/test/20181101/part-00002
/home/wangcongying/test/20181101/part-00003
/home/wangcongying/test/20181101/part-00004
/home/wangcongying/test/20181101/part-00005
/home/wangcongying/test/20181101/part-00006
/home/wangcongying/test/20181101/part-00007
/home/wangcongying/test/20181101/part-00008
/home/wangcongying/test/20181101/part-00009
设置一下几个多路输入问题:
- 输入
20181101
-20181109
所有目录下的文件 - 输入
20181101
以及otherFile
目录下的所有文件 - 输入
20181101
以及otherFile
目录下的前五个part
1. 使用通配符*
使用通配符*
是最简单的方法,下面将给出几个简单常用的示例:
解决方案:
- 输入
20181101
-20181109
所有目录下的文件
-input /home/wangcongying/test/2018110[1-9]
- 输入
20181101
以及otherFile
目录下的所有文件
-input /home/wangcongying/test/{20181101,otherFile}
- 输入
20181101
以及otherFile
目录下的前五个part
-input /home/wangcongying/test/{20181101,otherFile}/part-0000[0-4]
2. 逗号分割
- 输入
20181101
-20181109
所有目录下的文件
-input /home/wangcongying/test/20181101,/home/wangcongying/test/20181102,/home/wangcongying/test/20181103,/home/wangcongying/test/20181104,/home/wangcongying/test/20181105,/home/wangcongying/test/20181106,/home/wangcongying/test/20181107,/home/wangcongying/test/20181108,/home/wangcongying/test/20181109
- 输入
20181101
以及otherFile
目录下的所有文件
-input /home/wangcongying/test/20181101,/home/wangcongying/test/otherFile
- 输入
20181101
以及otherFile
目录下的前五个part
-input /home/wangcongying/test/20181101/part-0000[0-4],/home/wangcongying/test/otherFile/part-0000[0-4]
3. 输入数组形式
- 输入
20181101
-20181109
所有目录下的文件
input_file=("/home/wangcongying/test/2018110[1-9]")
...
...
Hadoop streaming ...
...
-input ${input_file[@]}
...
- 输入
20181101
以及otherFile
目录下的所有文件
input_file=("/home/wangcongying/test/20181101"
"/home/wangcongying/test/otherFile")
...
...
Hadoop streaming ...
...
-input ${input_file[@]}
...
- 输入
20181101
以及otherFile
目录下的前五个part
input_file=("/home/wangcongying/test/20181101/part-0000[0-4]"
"/home/wangcongying/test/otherFile/part-0000[0-4]")
...
...
Hadoop streaming ...
...
-input ${input_file[@]}
...
4. 总结
在使用的时候可以两两或者三个混合使用,具体根据需求来实现即可。
- spark2.2 SparkSession思考与总结1
- 【译】Spring 官方教程:Spring Security 架构
- hdu----(4301)Divide Chocolate(状态打表)
- hdu------(4300)Clairewd’s message(kmp)
- TensorFlow ML cookbook 第一章7、8节 实现激活功能和使用数据源
- Go语言struct类型详解
- spark1.x升级spark2如何升级及需要考虑的问题
- 使用 kubeadm 创建一个 kubernetes 集群
- Oracle 12c 多租户专题|CDB元数据内幕
- 深入分析golang多值返回以及闭包的实现
- Hadoop3.0扩展Yarn资源模型详解2:资源Profiles说明
- hdu------(1525)Euclid's Game(博弈决策树)
- Go语言指针访问结构体的方法
- Spring Boot & Spring Cloud 应用内存管理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 深度学习-IMBD二分类问题
- 开源、强大的Linux服务器集群管理工具,比宝塔好用!
- 组合数学-抽屉原理
- 利用 Harbor 搭建企业级私有镜像仓库
- Redis-Java项目应用(Jedis、SpringBoot整合、工具类模板)
- 微软被指剽窃他人开源作品!作者被迫终止该项目
- 秋招系列 | 推荐岗史上最强面经来袭(上)
- 一个Tomcat 如何部署多个项目?附多种解决方案及详细步骤!
- 初识SpringCloud
- .NET程序设计复习总结
- Ribbon讲解与应用
- break, continue 和 return 的用法及区别
- JavaWeb 图书管理系统
- 深度学习-多分类问题
- umi项目中dva effects异常处理