通用大数据存储和分析处理平台_Hadoop.
I / 204
通用大数据存储与分析处理平台
总体建设方案
<Hadoop>
目 录
1Hadoop1
Hadoop能做什么1
Hadoop 中的文件格式1
机op是开源的,项目的软件成本因此会大大降低。
软件设计
Hadoop 中的文件格式
SequenceFile
SequenceFile是Hadoop API 提供的一种二进制文件,它将数据以<key,value>的形式序列化到文件中。这种二进制文件内部使用Hadoop 的标准的Writable 接口实现序列化和反序列化。它与Hadoop API中的MapFile 是互相兼容的。Hive 中的SequenceFile 继承自Hadoop API 的SequenceFile,不过它的key为空,使用value 存放实际的值, 这样是为了避免MR 在运行map 阶段的排序过程。如果你用Java API 编写SequenceFile,并让Hive 读取的话,请确保使用value字段存放数据,否则你需要自定义读取这种SequenceFile 的InputFormat class 和OutputFormat class。
2 / 204
.
图1:Sequencefile 文件结构
SequenceFile读写实例
privatestaticfinal String [] DATA =
{
"One,Two,buckle my shoe",
"Three,four,shut the door",
"File,six,pick up sticks",
"Seven,eight,lay them straight",
"Nie,ten,a big fat hen"
};
publicstaticvoid writeToHDFS<String[] args> throws IOException {
for<int j=1;j<=5;j++>
{
String uri ="hdfs://mylinux:9000/data/exam/seqfiles/seq_"+<>;
Configuration conf =new Configuration<>;
FileSystem fs = <<uri>,conf>;
Path path =new Path<uri>;
IntWritable key = new IntWritable<>;
Text value =new Text<>;
writer= null;
writer =<fs, conf, path, <>, <>>;
for<int i=0;i<100;i++>
{
<<100-i>*j>;
<DATA[i%]>;
<key, value>;
}
}
}
publicstaticvoid readFromHDFS<String[] args> throws IOException
{
String uri =;
Configuration conf =new Configuration<>;
FileSystem fs = <<uri>,conf>;
Path path =new Path<uri>;
reader =new <fs, path, conf>;
Writable key =<Writable><<>,conf>;
Writable value =<Writable><<>,conf>;
2 / 204
.
long pos =<>;
while<<key, value>>
{
通用大数据存储和分析处理平台 Hadoop 来自淘豆网www.taodocs.com转载请标明出处.