win7环境Eclipse中运行JAVA项目读取HDFS(hadoop-2.7.2)中的文件实例(2)
2016-10-12 00:00
471 查看
摘要: java读取HDFS中的文件的相应代码
前文点击这里
1、新建java项目,添加相应jar包。可在hadoop的安装目录下找到。(可以只添加hadoop-common-2.7.2.jar,已经包含了需要调用的class,但是在调试过程中会相继报错提示缺少的jar包,逐步完善即可)
引用的包如下图:
JAVA下载HDFS指定目录文件夹实例:
JAVA读取指定HDFS目录中的log文件实例:
前文点击这里
1、新建java项目,添加相应jar包。可在hadoop的安装目录下找到。(可以只添加hadoop-common-2.7.2.jar,已经包含了需要调用的class,但是在调试过程中会相继报错提示缺少的jar包,逐步完善即可)
引用的包如下图:
JAVA操作HDFS中的文件的代码实例:
批量读取HDFS指定目录下的文件并保存为本地log代码实例:/** * @author xinyuan.wei * 2016年8月19日 * 以流的形式读取HDFS指定文件目录下的所有文件,并存为本地log文件 */ public class HDFSReadAllTest { public static void main(String[] args) { System.setProperty("hadoop.home.dir", "C:\\Users\\Administrator\\Desktop\\hadoop-common-2.7.1-bin-master"); // 添加windows环境下需要的运行库。此处直接引用了本地文件 String uri = "hdfs://192.168.0.130:9000/user/hadoop/flume/*"; // 需要遍历的HDFS的文件目录地址 Configuration conf = new Configuration(); try { Path dfs = new Path(uri); FileSystem fs = dfs.getFileSystem(conf); FileStatus[] status = fs.globStatus(dfs);// 获取文件目录下的内容转为filestatus Path[] listedPaths = FileUtil.stat2Paths(status);// 将filestatus转为path for (Path p : listedPaths) { // 遍历path并输出为本地文件 System.out.println(p); Configuration conf2 = new Configuration(); FileSystem fs2 = FileSystem .get(URI.create(p.toString()), conf2); Path path2 = new Path(p.toString()); FSDataInputStream ins = fs2.open(path2); String logFileName=p.toString().substring(p.toString().lastIndexOf("/")).substring(1); FileOutputStream fos = new FileOutputStream(new File( "C:\\Users\\Administrator\\Desktop\\FlumeData\\" + logFileName + ".log")); //拼出本地路径 IOUtils.copyBytes(ins, fos, 4096, true); } } catch (IOException e) { e.printStackTrace(); } } }
JAVA下载HDFS指定目录文件夹实例:
/** * @author xinyuan.wei * 2016年8月19日 * 将HDFS中的文件夹下载到本地,会将后缀为.crc的校验文件也下载下来 */ public class HDFSDownloadTest { public static void main(String[] args) { System.setProperty("hadoop.home.dir", "C:\\Users\\Administrator\\Desktop\\hadoop-common-2.7.1-bin-master"); // 添加windows环境下需要的运行库。 String remote= "hdfs://192.168.0.130:9000/user/hadoop/flume"; String local="C:\\Users\\Administrator\\Desktop\\"; // 需要遍历的HDFS的文件目录地址 Configuration conf = new Configuration(); Path path = new Path(remote); FileSystem fs; try { fs = FileSystem.get(URI.create(remote), conf); fs.copyToLocalFile(path, new Path(local)); //将HDFS中的flume文件夹下载到本地路径 System.out.println("download: from" + remote + " to " + local); fs.close(); } catch (IOException e) { e.printStackTrace(); } } }
JAVA读取指定HDFS目录中的log文件实例:
/** * @author xinyuan.wei * 2016年8月19日 * 读取HDFS目录下指定log文件的内容 */ public class HDFSReadTest { public static void main(String[] args){ System.setProperty("hadoop.home.dir", "C:\\Users\\Administrator\\Desktop\\hadoop-common-2.7.1-bin-master"); // 添加windows环境下需要的运行库。 String uri="hdfs://192.168.0.130:9000/user/hadoop/flume/FlumeData.1471489138770"; Configuration conf = new Configuration(); try { FileSystem fs = FileSystem.get(URI.create(uri),conf); Path path = new Path(uri); FSDataInputStream in = fs.open(path); ByteArrayOutputStream fos = new ByteArrayOutputStream(); //输出流 IOUtils.copyBytes(in, fos, 4096, true); String str = fos.toString();//将输出流转换为字符串。 System.out.println("log文件内容\n:"+str); } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- win7环境Eclipse中运行JAVA项目读取HDFS(hadoop-2.7.2)中的文件实例与问题汇总
- Java GUI项目读取Jar内部外部文件 打包EXE 在没有java环境的电脑上可运行
- hadoop学习之HDFS(2.1):linux下eclipse中配置hadoop-mapreduce开发环境并运行WordCount.java程序
- hadoop2.7.2 win7 eclipse环境搭建测试
- 谈win7下Eclipse环境中向安装在虚拟机中的Hadoop中上传文件为空的解决方法
- Hadoop2.x实战:Eclipse本地开发环境搭建与本地运行wordcount实例
- hadoop2.7.2修改配置文件,配置linux java环境变量
- Hadoop学习笔记——1.java读取Oracle中表的数据,创建新文件写入Hdfs
- java在eclipse项目中读取文件时相对路径的问题
- 谈win7下Eclipse环境中向安装在虚拟机中的Hadoop中上传文件为空的解决方法
- Hadoop java实现读取hdfs文件
- hadoop2.7.3 Windows eclipse开发环境搭建及WordCount实例运行
- java 从hadoop hdfs读取文件 进行groupby并显示为条形图
- maven+hadoop2.2 项目HDFS文件读取程序
- Eclipse下搭建Hadoop开发环境,并运行第一个实例
- Win7下快速搭建hadoopEclipse运行环境--方案
- 【甘道夫】win7环境下eclipse连接hadoop报错简单解决:重编译FileUtil.java
- win7(64位)平台下Cygwin+Eclipse搭建Hadoop单机开发环境 (四) 导入Hadoop源码+wordcount程序+运行
- 没有配置JKD环境变量也能在eclipse正常运行java文件
- Eclipse下搭建Hadoop开发环境,并运行第一个实例