MapReduce工作笔记——Job上传普通文件和大文件
时间:2022-07-24
本文章向大家介绍MapReduce工作笔记——Job上传普通文件和大文件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
0. 前言
我们在配置MR Streaming任务的时候,通常会上传mapper、reducer以及其他会用到的一些文件,在MapReduce工作笔记——Hadoop shell 常用文件操作命令中提到过使用put
数据上传HDFS。在执行MR Job 的时候,Hadoop会将其配置的文件数据打包成jar,两种上传的目标是不一样的,前者是数据,后者是配置,本文章将主要介绍普通脚本文件的上传以及大文件的上传。
1. 上传普通文件
上传本地文件可以使用-file
运用示例:
Code.1.1 file 上传示例
hadoop streaming
-mapper "./mapper.py"
-reducer "./reducer.py"
-file "$MY_PATH/reducer.py"
-file "$MY_PATH/mapper.py"
-file "test.txt"
使用-file
上传后的目录存在相对路径之下,在配置-mapper
以及-reducer
时候,直接使用相对路径以及文件名即可。
2. 上传大文件
上文中提到过这些上传的文件会打包到job 的jar 包中,但是如果遇到有jar包大小时,文件大小总和超过设置的大小会报错,这时候就需要使用-cacheFile
大文件上传, 使用 -cacheArchive
上传压缩文件
2.1 cacheFile上传至Hdfs
Code.2.1 cacheFile示例
-cacheFile /home/cache-test/testfile.txt#test
#如果有多个文件,选项可以写成:
-cacheFile /home/cache-test/testfile1.txt#test1
-cacheFile /home/cache-test/testfile2.txt#test2
这里的任务的当前工作目录下有一个“test”符号链接,它指向testfile.txt文件在本地的拷贝。
2.2 cacheArchive上传压缩文件
cacheArchive
支持zip、tar、tgz、tar.gz和jar等压缩文件解压上传。
Code.2.2 cacheArchive示例
-cacheArchive /home/cache-test/testfile2.tar.gz#test
在上面的例子里,url中#后的部分是建立在任务当前工作目录下的符号链接的名字,此处为test,test指向data解压后的目录。
- 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 数组属性和方法
- MySQL是如何实现事务的ACID
- 白话K8S核心组件概念
- k8s 架构、基本概念及命令
- Java API 连接 Hbase示例
- 点线图和阶梯图的画法
- 添加直线的两种方式
- nginx fastcgi模块ngx_http_fastcgi_module详细解析、使用手册、完整翻译
- Chrome代码调试指南
- Maven安装与配置
- CentOS7安装elk,并监控Nginx的access.log日志
- Aria2 + Rclone 实现离线下载 | 完美脚本配置 | 解决无法上传问题
- alpine使用的避坑指南
- elasticSearch学习(八)
- Python自学成才之路 魔术方法之比较运算符,赋值运算符
- Go语言(golang)新发布的1.13中的Error Wrapping深度分析