不多说,直接上代码。

代码

package zhouls.bigdata.myWholeHadoop.HDFS.hdfs4;

import java.io.IOException;

import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;

import java.net.URI;

public class HDFStest1
{

/**
* @param args
* @throws IOException
* @throws URISyntaxException
*/
public static void main(String[] args) throws IOException, URISyntaxException
{
// TODO Auto-generated method stub
//mkdir();
//copyToHDFS();
//getFile();
//ListAllFile();
//getFileLocal();
//rmdir();
getHDFSNodes();
}
//获取HDFS文件系统
public static FileSystem getFileSystem() throws IOException,URISyntaxException
{
Configuration conf = new Configuration();//读取配置文件,比如core-site.xml
//FileSystem fs =FileSystem.get(conf);

URI uri = new URI("hdfs://HadoopMaster:9000");

FileSystem fs = FileSystem.get(uri,conf);
return fs;
}

public static void mkdir() throws IOException,URISyntaxException
{
//第一步,获取文件系统
FileSystem fs =getFileSystem();
//第二步,创建文件目录
fs.mkdirs(new Path("/zhouls/data"));
//第三步,释放资源
fs.close();
}

public static void copyToHDFS() throws IOException,URISyntaxException
{
//第一步
FileSystem fs=getFileSystem();
//第二步
Path srcpath=new Path("D://Data/weibo.txt");
Path dstpath=new Path("/zhouls/data");
//第三步
fs.copyFromLocalFile(srcpath, dstpath);
//第四步
fs.close();
}

public static void getFile() throws IOException, URISyntaxException
{
//第一步
FileSystem fs=getFileSystem();
//第二步
Path srcpath=new Path("/zhouls/data/weibo.txt");
Path dstpath=new Path("D://Data/test");
//第三步
fs.copyToLocalFile(srcpath, dstpath);
//第四步
fs.close();

}

public static void ListAllFile() throws IOException, URISyntaxException
{
//第一步
FileSystem fs=getFileSystem();
//第二步
FileStatus[] status =fs.listStatus(new Path("/zhouls"));
//第三步
Path[] listedPaths = FileUtil.stat2Paths(status);
//第四步
for(Path p:listedPaths)
{
System.out.println(p);

}
//第五步
fs.close();
}

public static void getFileLocal() throws IOException, URISyntaxException
{
//第一步
FileSystem fs=getFileSystem();
//第二步
Path path=new Path("/zhouls/data/weibo.txt");
//第三步
FileStatus fileStatus=fs.getFileLinkStatus(path);
//第四步
BlockLocation[] blkLocations = fs.getFileBlockLocations(fileStatus, 0, fileStatus.getLen());
//第五步
for(int i=0;i< blkLocations.length;i++)
{
String[] hosts = blkLocations[i].getHosts();
System.out.println("block_"+i+"_location:"+hosts[0]);
}
//第六步
fs.close();
}

public static void rmdir() throws IOException, URISyntaxException
{
//第一步
FileSystem fs=getFileSystem();
//第二步
fs.delete(new Path("/zhouls/data"),true);
//第三步
fs.close();
}

public static void getHDFSNodes() throws IOException, URISyntaxException
{
//第一步
FileSystem fs=getFileSystem();
//第二步
DistributedFileSystem hdfs = (DistributedFileSystem)fs;
//第三步
DatanodeInfo[] dataNodeStats = hdfs.getDataNodeStats();
//第四步
for(int i=0;i< dataNodeStats.length;i++)
{
System.out.println("DataNode_"+i+"_Name:"+dataNodeStats[i].getHostName());
}
//第五步
fs.close();
}

}

Hadoop HDFS编程 API入门系列之简单综合版本1(四)的更多相关文章

  1. Hadoop HDFS编程 API入门系列之HDFS_HA(五)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs3; import java.io.FileInputStream;import ...

  2. Hadoop HDFS编程 API入门系列之HdfsUtil版本2(七)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs1; import java.io.FileInputStream;import ...

  3. Hadoop HDFS编程 API入门系列之HdfsUtil版本1(六)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs2; import java.io.FileOutputStream;impor ...

  4. Hadoop HDFS编程 API入门系列之合并小文件到HDFS(三)

    不多说,直接上代码.  代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs7; import java.io.IOException;import ja ...

  5. Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs6; import java.io.IOException;import jav ...

  6. Hadoop HDFS编程 API入门系列之从本地上传文件到HDFS(一)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs5; import java.io.IOException; import ja ...

  7. Hadoop HDFS编程 API入门系列之RPC版本2(九)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.RPC.rpc2; public class LoginServiceImpl implement ...

  8. Hadoop HDFS编程 API入门系列之RPC版本1(八)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.RPC.rpc1; import java.io.IOException;import java. ...

  9. Hadoop MapReduce编程 API入门系列之倒排索引(二十四)

    不多说,直接上代码. 2016-12-12 21:54:04,509 INFO [org.apache.hadoop.metrics.jvm.JvmMetrics] - Initializing JV ...

随机推荐

  1. [专题汇总]AC自动机

    1.The 2011 ACM-ICPC Asia Dalian Regional Contest ZOJ 3545 Rescue the Rabbit  简单的AC自动机+状压DP, 状态DP[nod ...

  2. CI框架引入外部css和js文件

    首先在项目根目录下建立assets文件夹,在这个文件夹下再建立css和js文件夹分别放置css和js文件 然后,在项目根目录下建立.htaccess文件 内容如下: RewriteEngine on  ...

  3. Erlang 103 Erlang分布式编程

    Outline 笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期              变更说明 2014-11-23 A Outl ...

  4. bootstrap-6

    表格:bootstrap为表格提供了1种基础样式和4种附加样式以及一个支持响应式的表格.主要包括: .table:基础表格 .table-striped:斑马线表格 .table-bordered:带 ...

  5. ASP代码审计 -4.命令执行漏洞总结

    命令执行漏洞: 保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令 <%ip=request("ip" ...

  6. LeetCode() Repeated DNA Sequences 看的非常的过瘾!

    All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACG ...

  7. Bean

    1. Bean配置项 1.1. ID 在整个IOC容器中Bean的唯一标识 1.2. Class 具体要实例化的类 1.3. Scope 范围,作用域 1.4. Constructor argumen ...

  8. 工具第二天 cocoaPods 私有库的创建

    之前介绍了cocoaPods的安装与使用,今天简单谈一下 自己的私有库运用cocoaPods依赖. cd到需要做库的工程目录下 创建一个podspec文件 创建:pod spec create 名称 ...

  9. [vijos P1880]ファーラの力

    据说这是一道 JOI 的题?反正我觉着挺好的喵~ 题目看起来十分可怕,但是代码还是很短的 显而易见的,ans 因分为3个部分:1.中途增加光压的时间 2.中途减少光压的时间 3. 所有路程的总时间 发 ...

  10. PNG格式小图标的CSS任意颜色赋色技术

    一.眼见为实 CSS可以修改图片的颜色,没错,可以,眼见为实!您可以狠狠地点击这里:png小图标CSS赋色demo 上面的不是很黑的是原始图标,是个PNG图片,下面这个是可以赋色的: 下面,我们随意选 ...