SequenceFile实例操作
HDFS API提供了一种二进制文件支持,直接将<key,value>对序列化到文件中,该文件格式是不能直接查看的,可以通过hadoop dfs -text命令查看,后面跟上SequenceFile的HDFS路径
通过写入SequenceFile和读入SequenceFile文件,打成jar包在Hadoop环境中运行。
1.写入SequenceFile代码:
- package Hdfs;
- import java.io.IOException;
- import java.net.URI;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.fs.FileSystem;
- import org.apache.hadoop.fs.Path;
- import org.apache.hadoop.io.IOUtils;
- import org.apache.hadoop.io.IntWritable;
- import org.apache.hadoop.io.SequenceFile;
- import org.apache.hadoop.io.Text;
- public class SequenceFileWriter {
- private static final String[] text={
- "床前明月光",
- "疑似地上霜",
- "举头望明月",
- "低头思故乡"
- };
- public static void main(String[] args) {
- String uri="hdfs://neusoft-master:9000/user/root/test/demo1";
- Configuration conf=new Configuration();
- SequenceFile.Writer writer=null;
- try {
- FileSystem fs= FileSystem.get(URI.create(uri), conf);
- Path path = new Path(uri);
- IntWritable key = new IntWritable();
- Text value = new Text();
- writer = SequenceFile.createWriter(fs, conf, path, key.getClass(), value.getClass());
- for (int i = 0; i < 100; i++) {
- key.set(100-i);
- value.set(text[i%text.length]);
- writer.append(key, value);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }finally{
- IOUtils.closeStream(writer);
- }
- }
- }
SequenceFileWriter
windows上打包成testseq.jar包,通过SecureFx上传到Linux对应目录中。
以下是linux操作步骤:
问题:如果CRT显示乱码如何解决?
在会话选项修改字符编码即可。
2.读入SequenceFile代码:
- package Hdfs;
- import java.io.IOException;
- import java.net.URI;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.fs.FileSystem;
- import org.apache.hadoop.fs.Path;
- import org.apache.hadoop.io.IOUtils;
- import org.apache.hadoop.io.SequenceFile;
- import org.apache.hadoop.io.Writable;
- import org.apache.hadoop.util.ReflectionUtils;
- public class SequenceFileReader {
- public static void main(String[] args) {
- String uri="hdfs://neusoft-master:9000/user/root/test/demo1";
- Configuration conf = new Configuration();
- SequenceFile.Reader reader =null;
- try {
- FileSystem fs = FileSystem.get(URI.create(uri),conf);
- Path path = new Path(uri);
- reader=new SequenceFile.Reader(fs, path,conf);
- Writable key = (Writable)ReflectionUtils.newInstance(reader.getKeyClass(), conf);
- Writable value =(Writable)ReflectionUtils.newInstance(reader.getValueClass(), conf);
- long position = reader.getPosition();
- while (reader.next(key,value)) {
- System.out.printf("[%s]\t%s\n",key,value);
- position=reader.getPosition();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }finally{
- IOUtils.closeStream(reader);
- }
- }
- }
SequenceFileReader
windows上打包成testseq.jar包,在程序中指定主類,提交jar包時無需指定,通过SecureFx上传到Linux对应目录中。
以下是linux操作步骤:
END::SequenceFile
可通過IP:50070訪問
SequenceFile实例操作的更多相关文章
- [转]使用Xcode 4发布App 实例操作
使用xcode 4发布app 实例操作是本文介绍的内容,不多说,我们直接进入话题. 1.iOS Provisioning Portal 和iTunes Connect 没有变,下载与安装.mobile ...
- Flashback Drop实例操作
1.Flashback DropFlashback Drop 是从Oracle 10g 开始出现的,用于恢复用户误删除的对象(包括表,索引等), 这个技术依赖于Tablespace Recycle B ...
- 058——VUE中vue-router之实例操作新闻列表单页面应用与路由别名的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 040——VUE中组件之组件间的数据参props的使用实例操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 034——VUE中表单控件处理之使用vue控制radio表单的实例操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- php5.4以上 mysqli 实例操作mysql 增,删,改,查
<?php //php5.4以上 mysqli 实例操作mysql header("Content-type:text/html;charset=utf8"); $conn ...
- [Sqlite]-->嵌入式数据库事务理解以及实例操作
引子: 1. Sqlite在Windows.Linux 和 Mac OS X 上的安装过程 2,嵌入式数据库的安装.建库.建表.更新表结构以及数据导入导出等等具体过程记录 SQLite 事务(Tran ...
- 每天一个JavaScript实例-操作元素定位元素
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- Qt数据库 QSqlTableModel实例操作(转)
本文介绍的是Qt数据库 QSqlTableModel实例操作,详细操作请先来看内容.与上篇内容衔接着,不顾本文也有关于上篇内容的链接. Qt数据库 QSqlTableModel实例操作是本文所介绍的内 ...
随机推荐
- Dubbo -- 系统学习 笔记 -- 示例 -- 服务分组
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 服务分组 当一个接口有多种实现时,可以用group区分. <dubbo:se ...
- 8 -- 深入使用Spring -- 7...3 让Spring管理控制器
8.7.3 让Spring管理控制器 让Spring容器来管理应用中的控制器,可以充分利用Spring的IoC特性,但需要将配置Struts 2 的控制器部署在Spring容器中,因此导致配置文件冗余 ...
- 有人在贴吧问phpmyadmin如何设置插入的时候默认插入1条记录
在新版phpmyadmin中(我的版本是3.5.1) 插入的时候会提示插入两条,能够方便操作,让你多录入几条数据,如图 然而有人不想要这个界面默认插入两条,如何改为1条或者其他呢? 我审查了这个元素标 ...
- 删除腾讯游戏助手自动生成的文件aow_drv.log
解决办法: 管理员身份运行cmd,依次执行如下指令: net stop aow_drvdel C:\aow_drv.logmkdir C:\aow_drv.logattrib +s +h C:\aow ...
- iOS protocbuf安装使用
protobuf文件地址:https://github.com/google/protobuf 1.问题/usr/local.bak/lib /usr/local.bak/man /usr/local ...
- 【代码审计】CLTPHP_v5.5.3 前台任意文件上传漏洞
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chichu/ ...
- Bypass 护卫神SQL注入防御(多姿势)
0x00 前言 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...
- WAF Bypass数据库特性(Access探索篇)
0x01 背景 无聊,测试了一下access特性 0x02 测试 常见有5个位置即:select * from admin where id=1[位置一]union[位置二]select[位置三]1, ...
- codeforces水题100道 第一题 Codeforces Beta Round #1 A. Theatre Square (math)
题目链接:http://www.codeforces.com/problemset/problem/1/A题意:至少用多少块边长为a的方块铺满NxM的矩形区域.C++代码: #include < ...
- JavaScript的格式--从格式做起,做最严谨的工程师
1.JavaScript的格式: JavaScript区分大小写: JavaScript脚本程序须嵌入在HTML文件中: JavaScript脚本程序中不能包含HTML标记代码:(双引号) 每行写一条 ...