Hadoop HDFS编程 API入门系列之简单综合版本1(四)
不多说,直接上代码。


代码
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(四)的更多相关文章
- Hadoop HDFS编程 API入门系列之HDFS_HA(五)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs3; import java.io.FileInputStream;import ...
- Hadoop HDFS编程 API入门系列之HdfsUtil版本2(七)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs1; import java.io.FileInputStream;import ...
- Hadoop HDFS编程 API入门系列之HdfsUtil版本1(六)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs2; import java.io.FileOutputStream;impor ...
- Hadoop HDFS编程 API入门系列之合并小文件到HDFS(三)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs7; import java.io.IOException;import ja ...
- Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs6; import java.io.IOException;import jav ...
- Hadoop HDFS编程 API入门系列之从本地上传文件到HDFS(一)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs5; import java.io.IOException; import ja ...
- Hadoop HDFS编程 API入门系列之RPC版本2(九)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.RPC.rpc2; public class LoginServiceImpl implement ...
- Hadoop HDFS编程 API入门系列之RPC版本1(八)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.RPC.rpc1; import java.io.IOException;import java. ...
- Hadoop MapReduce编程 API入门系列之倒排索引(二十四)
不多说,直接上代码. 2016-12-12 21:54:04,509 INFO [org.apache.hadoop.metrics.jvm.JvmMetrics] - Initializing JV ...
随机推荐
- Linux 2>&1理解(转)
2>&1使用一 相关知识1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |).2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(b ...
- Eclipse Java 调试基本技巧
前言 这一部分是Eclipse中最为重要的部分.调试的重要性想必大家都清楚. 调试无疑是做项目最苦比的事情,但优秀的编码习惯,良好的调试方式能让这没那么苦,甚至还有点乐趣:). 本文讲解使用Eclip ...
- (实用篇)jQuery二级联动代码
jquery二级联动城市代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
- mongodb,redis,hbase 三者都是nosql数据库,他们的最大区别和不同定位是什么?
不严谨地讲,Redis定位在"快",HBase定位于"大",mongodb定位在"灵活". NoSQL的优点正好就是SQL的软肋,而其弱 ...
- UrlRewrite伪静态
1.首先添加URLRewriter.dll.ActionlessForm.dll加到bin文件夹中,添加引用 注:URLRewriter.dll实现伪静态 ActionlessForm.dll是分页 ...
- 关于 BCSCTL1 = CALBC1_12MHZ;DCOCTL = CALDCO_12MHZ; 的疑问
/************************************************************ * Calibration Data in Info Mem ******* ...
- 使用Condition Variables 实现一个线程安全队列
使用Condition Variables实现一个线程安全队列 测试机: i7-4800MQ .7GHz, logical core, physical core, 8G memory, 256GB ...
- 安装初始化mysql后,默认几个库介绍
背景介绍: 当我们安装初始化mysql后,默认建了几个数据库,那么这些数据库有什么作用呢?mysql> show databases;+--------------------+| Datab ...
- Webmin
1.webmin介绍 Webmin 让您能够在远程使用支持 HTTPS (SSL 上的 HTTP)协议的 Web 浏览器通过 Web 界面管理您的主机.这在保证了安全性的前提下提供了简单深入的远程管理 ...
- 转:RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...