HDFS基础和java api操作

时间:2014-05-17 18:38:16   收藏:0   阅读:364

1. 概括

 

2. fs

 

3. 端口

4. hdfs安全模式

  在启动hadoop集群的时候,集群的运行首先进入到安全模式下(safeMode),以检查数据完整性

bubuko.com,布布扣
<property>(hdfs-default.xml,302行)
        <name>dfs.safemode.threshold.pct</name>
        <value>0.999f</value>
    </property>

这里定义了一个最小的副本率0.999,如果应该有5个副本存在,却只存在3个副本,3/5=0.6<0.999,则系统会自动地复制副本到其他DataNode,使得副本率不小于0.999,相反,如果此时系统中有8个副本,则会自动删除多余的3个副本
bubuko.com,布布扣

 

  安全模式相关操作:

hadoop fs –safemode get:查看安全模式状态
hadoop fs –safemode enter:进入安全模式状态
hadoop fs –safemode leave:离开安全模式状态

 

5. java api

注意:1)需注释掉org.apache.hadoop.fs.FileUtil类的checkReturnValue方法(688—692),否则可能出现权限问题)

   2)需要修改远程登录客户端的用户名,以避免权限问题

    我的电脑-管理-本地用户和组;

    注册表HKEY_LOCAL_MACHINE\SOFEWARE\Microsoft\Windows NT\CurrentVersion 修改  RegisteredOwner

写文件:

bubuko.com,布布扣
     String uri="hdfs://hadoop:9000/";
        Configuration configuration=new Configuration();
        FileSystem fileSystem=FileSystem.get(URI.create(uri),configuration);
        
        final String pathString="/input";
        final FSDataOutputStream fsDataOutputStream=fileSystem.create(new Path(pathString));
        IOUtils.copyBytes(new ByteArrayInputStream("wish\n".getBytes()),fsDataOutputStream,configuration,false);
        IOUtils.copyBytes(new ByteArrayInputStream("wish you happy \n".getBytes()),fsDataOutputStream,configuration,true);
bubuko.com,布布扣

读文件:

     String uri="hdfs://hadoop:9000/";
        Configuration configuration=new Configuration();
        FileSystem fileSystem=FileSystem.get(URI.create(uri),configuration);
        
        final String pathString="/output";
        final FSDataInputStream fsDataInputStream=fileSystem.open(new Path(pathString));
        IOUtils.copyBytes(fsDataInputStream, System.out, configuration,true);

创建目录:

bubuko.com,布布扣
  String uri="hdfs://hadoop:9000/";
        Configuration configuration=new Configuration();
        FileSystem fileSystem=FileSystem.get(URI.create(uri),configuration);
        
        final String pathString="/d1";
        boolean exists=fileSystem.exists(new Path(pathString));
        if(!exists){
            boolean result=fileSystem.mkdirs(new Path(pathString));
            System.out.println(result);
        }
bubuko.com,布布扣

删除文件

     String uri="hdfs://hadoop:9000/";
        Configuration configuration=new Configuration();
        FileSystem fileSystem=FileSystem.get(URI.create(uri),configuration);
        
        final String pathString="/output";
        fileSystem.delete(new Path("/output"),true);

 

 

 

 

 

 

HDFS基础和java api操作,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!