SequenceFile实例操作详解大数据
2023-06-13 09:20:25 时间
HDFS API提供了一种二进制文件支持,直接将 key,value 对序列化到文件中,该文件格式是不能直接查看的,可以通过hadoop dfs -text命令查看,后面跟上SequenceFile的HDFS路径
通过写入SequenceFile和读入SequenceFile文件,打成jar包在Hadoop环境中运行。
1.写入SequenceFile代码:
1 package Hdfs; 3 import java.io.IOException; 4 import java.net.URI; 6 import org.apache.hadoop.conf.Configuration; 7 import org.apache.hadoop.fs.FileSystem; 8 import org.apache.hadoop.fs.Path; 9 import org.apache.hadoop.io.IOUtils; 10 import org.apache.hadoop.io.IntWritable; 11 import org.apache.hadoop.io.SequenceFile; 12 import org.apache.hadoop.io.Text; 14 public class SequenceFileWriter { 15 private static final String[] text={ 16 "床前明月光", 17 "疑似地上霜", 18 "举头望明月", 19 "低头思故乡" 20 }; 21 public static void main(String[] args) { 22 String uri="hdfs://neusoft-master:9000/user/root/test/demo1"; 23 Configuration conf=new Configuration(); 24 SequenceFile.Writer writer=null; 26 try { 27 FileSystem fs= FileSystem.get(URI.create(uri), conf); 28 Path path = new Path(uri); 29 IntWritable key = new IntWritable(); 30 Text value = new Text(); 31 writer = SequenceFile.createWriter(fs, conf, path, key.getClass(), value.getClass()); 32 for (int i = 0; i 100; i++) { 33 key.set(100-i); 34 value.set(text[i%text.length]); 35 writer.append(key, value); 36 } 37 } catch (IOException e) { 38 e.printStackTrace(); 39 }finally{ 40 IOUtils.closeStream(writer); 41 } 42 } 43 }
SequenceFileWriter
windows上打包成testseq.jar包,通过SecureFx上传到Linux对应目录中。
以下是linux操作步骤:
问题:如果CRT显示乱码如何解决?
在会话选项修改字符编码即可。
2.读入SequenceFile代码:
1 package Hdfs; 3 import java.io.IOException; 4 import java.net.URI; 6 import org.apache.hadoop.conf.Configuration; 7 import org.apache.hadoop.fs.FileSystem; 8 import org.apache.hadoop.fs.Path; 9 import org.apache.hadoop.io.IOUtils; 10 import org.apache.hadoop.io.SequenceFile; 11 import org.apache.hadoop.io.Writable; 12 import org.apache.hadoop.util.ReflectionUtils; 14 public class SequenceFileReader { 16 public static void main(String[] args) { 17 String uri="hdfs://neusoft-master:9000/user/root/test/demo1"; 18 Configuration conf = new Configuration(); 19 SequenceFile.Reader reader =null; 20 try { 21 FileSystem fs = FileSystem.get(URI.create(uri),conf); 22 Path path = new Path(uri); 23 reader=new SequenceFile.Reader(fs, path,conf); 24 Writable key = (Writable)ReflectionUtils.newInstance(reader.getKeyClass(), conf); 25 Writable value =(Writable)ReflectionUtils.newInstance(reader.getValueClass(), conf); 26 long position = reader.getPosition(); 27 while (reader.next(key,value)) { 28 System.out.printf("[%s]/t%s/n",key,value); 29 position=reader.getPosition(); 30 } 31 } catch (IOException e) { 32 e.printStackTrace(); 33 }finally{ 34 IOUtils.closeStream(reader); 35 } 37 } 38 }
SequenceFileReader
windows上打包成testseq.jar包,在程序中指定主類,提交jar包時無需指定,通过SecureFx上传到Linux对应目录中。
以下是linux操作步骤:
END::SequenceFile
可通過IP:50070訪問
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/9083.html
分布式文件系统,分布式数据库区块链并行处理(MPP)数据库,数据挖掘开源大数据平台数据中台数据分析数据开发数据治理数据湖数据采集相关文章
- ASP.NET编程入门与应用_aspnet网站开发实例
- 【说站】WordPress程序robots.txt的正确写法实例
- DFP 数据转发协议应用实例 7.使用 DLS1x 与 VSxxx 设备的 LoRA 匹配
- Java事件处理基础实例:处理按钮点击+捕获窗口事件+改变观感
- 【Flask】大型项目中对于url_for() 的使用以及请求数据上传文件的开发实例
- 【Android 逆向】函数拦截实例 ( ② 插桩操作 | 保存实际函数入口 6 字节数据 | 在插桩的函数入口写入跳转指令 | 构造拼接桩函数 )
- R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例|附代码数据
- Hadoop(十五)MapReduce程序实例详解大数据
- Spark入门实战系列–9.Spark图计算GraphX介绍及实例详解大数据
- Hive学习之路 (二十)Hive 执行过程实例分析详解大数据
- Kafka性能测试实例详解大数据
- MySQL左右连接:结合表数据实例研究(mysql的左右连接)
- Oracle实例的构成和功能实现(oracle实例组成部分)
- Redis应用实例——让您快速提升数据存储和查询效率(redis应用实例)
- Oracle实例:彻底删除指南(oracle彻底删除实例)
- java序列化对象serializable读写数据的实例
- js事件冒泡实例分享(已测试)
- Ajax异步提交表单数据的说明及方法实例
- JQuery获取json数据$.getJSON方法的实例代码
- jQuery处理xml格式的返回数据(实例解析)
- c#远程html数据抓取实例分享
- c#处理3种json数据的实例
- PHP基于CURL进行POST数据上传实例
- thinkphp数据查询和遍历数组实例
- 修改或扩展jQuery原生方法的代码实例
- 使用Nodejs开发微信公众号后台服务实例