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解压后的目录。
- 机器学习(10)之趣味案例理解朴素贝叶斯
- Spart DataSet数据集
- (八)高性能服务器架构设计总结3——以flamigo服务器代码为例
- (八)高性能服务器架构设计总结4——以flamigo服务器代码为例
- SQL员工部门表综合查询60题
- 如何对Scala中集合(Collections)进行排序
- 小白教程——安装和使用PyCharm
- 如何在 Scala 中科学地操作 collection(一)集合类型与操作
- Redis 一二事(2) - 在spring中使用jedis 连接调试单机redis以及集群redis
- 用 Python 制作微信好友个性签名词云图
- 用 Python 查看微信好友位置信息
- 用 Python 分析微信好友性别比例
- FreeMarker静态模板结合spring展示
- 源码阅读之Vector
- 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 数组属性和方法
- 【DB笔试面试855】在Oracle中,简单说说PSU升级的过程
- HashMap中add()方法的源码学习
- IOC容器实现
- Docker安装mysql
- 【LeeCode 面试题】二叉树的前序遍历,中序遍历,后序遍历递归和迭代的两种实现方式
- MySQL笔记汇总
- 【DB笔试面试856】在Oracle中,如何判定实例是否运行?
- 【DB笔试面试857】在Oracle中,若一个主机上有多个Oracle实例,则如何确定哪些共享内存段属于想要清掉的实例的内存段?
- vue + flask实现邮件密码找回功能
- PicGo + Gitee 构建免费云图床
- python scipy.stats计算单样本假设检验(1 sample test)
- python scipy.stats计算双独立样本假设检验(2 sample independent test)
- 深入理解JS的事件循环
- C语言必背的18个经典程序。
- 打卡群刷题总结0811——从中序与后序遍历序列构造二叉树