hdfs回顾总结(1)
来源:互联网 发布:linux系统jdk1.6 下载 编辑:程序博客网 时间:2024/05/18 00:52
由于笔者是在windows下idea的IDE开发,虽然每次都可以把程序提交到linux集群运行,但是对于查看业务,以及深入学习框架原理基本上不好使,所以想办法能让hadoop在windows上运行是最佳的。
沿着这个思路,可以到官网下载源码进行windows版的编译,这个这里就不再累述。(可以直接到网上找个windows版的)
之后就是在windows的环境中制定HADOOP_HOME环境变量和path路径。
1、hdfs主要java格式API接口的案例
package hdfs;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.*;import org.junit.Before;import org.junit.Test;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException;import java.util.Iterator;import java.util.Map;/** * 本地hdfs api测试 * Created by tianjun on 2017/3/14. */public class HdfsClient { FileSystem fs = null; Configuration conf = null; @Before public void init() throws IOException, URISyntaxException, InterruptedException { conf = new Configuration(); /** * 方法1:vm参数 -DHADOOP_USER_NAME=root * 或者是 System.setProperty("HADOOP_USER_NAME","root"); */// conf.set("fs.defaultFS","hdfs://mini01:9000");// fs = FileSystem.get(conf); /** * 方法2 */ fs = FileSystem.get(new URI("hdfs://mini01:9000"), conf, "root"); } //上传 @Test public void testUpload() throws IOException { fs.copyFromLocalFile(new Path("c:/dos.txt"), new Path("/wc/dos.txt.copy2")); fs.close(); } //下载 @Test public void testDownload() throws IOException { fs.copyToLocalFile(new Path("/wc/dos.txt.copy"), new Path("e:/")); fs.close(); } //查询配置信息 @Test public void testConf() { Iterator<Map.Entry<String, String>> iterator = conf.iterator(); while (iterator.hasNext()){ Map.Entry<String,String> entry = iterator.next(); System.out.println(entry.getKey() + " ---> "+entry.getValue()); } } //创建目录 @Test public void makedirTest() throws IOException { boolean mkdir = fs.mkdirs(new Path("/aa/bb")); System.out.printf(Boolean.toString(mkdir)); } //删除 @Test public void deleteTest() throws IOException { boolean delete = fs.delete(new Path("/wc/output1"),true); System.out.printf(String.valueOf(delete)); } //列出当前文件下的子文件 @Test public void listTest() throws IOException { FileStatus[] listStatus = fs.listStatus(new Path("/")); for(FileStatus fileStatus : listStatus){ System.out.println(fileStatus.getPath()+" ============> "+fileStatus.toString()); } System.out.println("+++++++++++++++++++++++++++++++++++++++++"); //递归查找所有的文件 RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"),true); while (listFiles.hasNext()){ LocatedFileStatus next = listFiles.next(); String name = next.getPath().getName(); Path path = next.getPath(); System.out.println(name + " ====> " + path); } }}
注意:
应为上面个不是HA版本呢的hadoop,如果是在HA环境下,请把namenode下的core-site.xml和hdfs-site.xml拷贝到工程的classpath路径下。(前提是在windows的hosts上配置好映射关系)
注意fs = FileSystem.get(new URI("hdfs://mini01:9000"), conf, "root");
改为core-site.xml中的fs.defaultFS
的值fs = FileSystem.get(new URI("hdfs://cmcc"), conf, "dev");
0 0
- hdfs回顾总结(1)
- hdfs回顾总结(2)
- 面试回顾与总结1
- hdfs回顾总结(3)---使用hadoopRpc模拟namenode元数据的查询
- Hadoop回顾--HDFS工作流程
- 回顾——HDFS文件系统
- 2013年自我回顾与总结(1)
- 软工视频总结(1)-----前五讲回顾
- 回顾总结
- IOCP模型总结(总结回顾)
- HDFS总结
- HDFS总结
- HDFS总结
- HDFS源码分析(1)----HDFS概述
- HDFS源码解析(1)---初识HDFS
- HDFS学习笔记(1)初探HDFS
- HDFS学习笔记(1)认识HDFS
- 数据结构回顾与总结 图(1)
- HttpClient使用总结
- iOS内存分配
- java序列化(三)之FastJson实现复杂对象序列化与反序列化
- 布局改变监听事件
- Android|图形图像之Matrix
- hdfs回顾总结(1)
- 比勤奋更重要的,是深度思考的能力
- 三天打鱼两天晒网(C语言)
- 界面间传值的各种方式
- JavaScript清空数组
- 字数统计
- Incompatible conditional operand types int and Double
- 淘宝海量数据库之三:事务的ACID
- Android什么时候只会调用onPause()而不会调用onStop()完全解析?