0x03 校验结果
1. 启动集群
a. 启动HDFS集群,
start-dfs.sh
2. 执行写SequenceFile文件格式代码
a. 直接在Win上执行,控制台会显示结果:
然后去集群也可以查看到结果:
hadoop fs -ls hdfs://master:9999/user/hadoop-sny/mr/filetype/ hadoop fs -cat hdfs://master:9999/user/hadoop-sny/mr/filetype/sequence.seq
b. 其实,还可以通过如下命令以Text格式查看二进制文件
hadoop fs -text hdfs://master:9999/user/hadoop-sny/mr/filetype/sequence.seq
注意,此处控制台打印的日志与写进文件的内容不一样,所以看到控制台其实是多打印了writer.getLength():
System.out.printf("[%s]\t%s\t%s\n", writer.getLength(), key, value);
PS:如果报权限错误:
Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=WRITE, inode="/user/hadoop-sny":hadoop-sny:supergroup:drwxr-xr-x
解决方案:需要去集群里修改权限
hadoop fs -mkdir -p hdfs://master:9999/user/hadoop-sny/mr/filetype
hadoop fs -chmod 757 hdfs://master:9999/user/hadoop-sny/mr/filetype
3. 执行读SequenceFile文件格式代码
a. 也可以得到相应的结果
4. 执行写SequenceFile文件格式代码(HDFS)
hadoop fs -ls hdfs://master:9999/user/hadoop-sny/mr/filetype/
5. 执行读SequenceFile文件格式代码(HDFS)
a. 可以看到代码里写进去的结果
对应的打印代码为:
String value = "shao"; writer.write(new LongWritable(System.currentTimeMillis()), new Text(value));
0xFF 总结
Hadoop支持的文件格式系列:
Hadoop支持的文件格式之Text
Hadoop支持的文件格式之Avro
Hadoop支持的文件格式之Parquet
Hadoop支持的文件格式之SequenceFile
项目实战中,文章:网站用户行为分析项目之会话切割(二)中使用的存储格式是Parquet。