知识点
相关文章
更多最近更新
更多Hadoop数据输入输出格式
2019-03-28 13:48|来源: 网络
MapReduce处理的基本原则之一是将输入数据分割成块,这些快可以在多台计算机上并行处理。
FSDataInputStream类扩展了java中的DataInputStream类,以达到随机读的特性,避免了从同开始读到分片的位置,从而提高了效率。
输入格式:InputFormat类定义了如何分割和读取输入文件,其中一个子类是FileInputFormat抽象类。
当开启Hadoop作业时,FileInputFormat会得到一个路径参数,这个路径内包含了所需要处理的文件,FileInputFormat会读取这个文件夹内的所有文件(译注:默认不包括子文件夹内的),然后它会把这些文件拆分成一个或多个的InputSplit。你可以通过JobConf对象的setInputFormat()方法来设定应用到你的作业输入文件上的输入格式。下表给出了一些标准的输入格式:
输入格式 |
描述 |
键类型 |
值类型 |
TextInputFormat |
默认格式,读取文件的行 |
行的字节偏移量 (LongWriable) |
行的内容(Text) |
KeyValueInputFormat |
把行解析为键值对 |
第一个tab字符前的所有字符(Text) |
行剩下的内容(Text) |
SequenceFileInputFormat |
Hadoop定义的高性能二进制格式 |
用户自定义 |
用户自定义 |
数据格式类的继承关系如图:
输入块(InputSplit):一个输入块描述了构成MapReduce程序中单个map任务的一个单元。默认的大小为64M
记录读取器(RecordReader):InputSplit定义了如何切分工作,但是没有描述如何去访问它。 RecordReader类则是实际的用来加载数据并把数据转换为适合mapper读取的键值对。
相关问答
更多-
JAVA输入输出流操作[2022-11-02]
这个easy 您是要在控制台输入的吧? 代码: import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; public class Write { public static void main(String[] args) throws Exception { String path = "C:\\my.txt"; InputStreamR ... -
JAVA的输入输出的简单问题[2023-07-13]
st=(类型)System.in.read();只读了一个字节。可以和CHAR转换。但不能转成string 所以第1个能运行,第3个不行,第2个是转换成int形。是把输入的字节转换成ASC码了。输出不一样 Scanner in=new Scanner(System.in) String str= in.nextLine(); 读一行以字符串保存的, int temp=Integer.parseInt(str);就把字符串转成int了 public class hello { public static vo ... -
java输入输出程序代码[2023-10-16]
概述 java程序输入需要用到Scanner工具类,输出则使用println 解析 1、输入: 从键盘输入需要用到java的Scanner这个util包下的工具类 Scanner中输入是需要对输入的字符进行分类,int类型为nextint()方法,double类型为nextDouble()方法,字符串类型为next()方法。 #code: #out: 2、输出: java常用的输出为println #code: #out: 除了println()方法之外,java还有print()和printf()两种输出 ... -
java最简单的输入输出[2022-02-22]
public class Test{ public static void main(String [] args){ Scanner in = new Scanner(System.in); int number = in.nextInt(); System.out.println("输入的数为:" + number); } } -
JAVA 输入输出[2021-09-21]
这个是我随便写的,功能都实现了 不过你可以拿去简化一下,比如用switch case 之类 的 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class HttpClientTutorial{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); S ... -
java文件输入输出[2023-03-20]
import java.util.*; import java.io.*; class Student { private String name; private int age; private int javaScore; private int cScore; public Student(String name,int age) { this.name = name; this.age = age; } public void setJavaScore(int java) { if(java < ... -
linux 的输入输出重定向是什么意思?[2022-05-11]
LINUX默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了。输出也是一样,你可以把屏幕输出重定向到一个文件里,再到文件里去看结果。 -
linux 的输入输出重定向要怎么用?[2022-06-08]
“<”和“>” -
C++中的输入输出重定向[2021-12-05]
你写一个程序, 在命令行上 EXE>out.txt 只要EXE里面的任何输出都在out.txt里面 EXE 评论0 11 0 加载更多 -
我已经弄清楚了这个问题,我知道我正在回答我自己的问题,但这只是因为我想让其他人知道他们是否有同样的问题。 这个问题即将到来,因为我已经提到我的组合器类与reducer类相同,但是根据这个问题,mapper的输入/输出与reducer的输入/输出不同,而组合器应该具有与mapper相同的输入/输出。 所以我删除了我设置组合器的行,它工作正常。 I have figure out this question, I know I am replying to my own question but this is ...