hdfs集群第一个客户端程序

  • 在集群实体机中,我们可以直接通过实体机操作hdfs系统,直接使用hdfs命令将实体机中的文件上传至集群文件系统中,但实际应用中集群会面向客户端操作,不再是传统命令操作,而是通过相应的客户端程序来执行

测试之前先注意一下几点:
  • 1.集群启动状况,是否正常
  • 2.测试环境是否搭好(这里使用的eclipse导入jar方式,也可以使用pom配置,intellij搭建也可以)
  • 3.测试的文件在客户端磁盘路径中不要带中文字符(文件内容可以带中文)
  • 4.文件路径不能写错,上传之后支持不会报错,但集群文件不存在
  • 5.下面URL中用主机名代替的ip,因为做了hosts映射,windows端和集群中各个节点最好都给hosts文件中做主机映射(不配置hosts也可以直接写ip,但相对繁琐)

测试文件内容:
在这里插入图片描述
测试源码如下:

package hdfs0508;


import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HDFSClient {

	public static void main(String[] args) throws Exception {

		//0.获取系统配置信息
		Configuration conf = new Configuration();
		//conf.set("fs.defaultFS", "hdfs://hadoop18020");此方法需要走后门连接集群,
		//1.获取HDFS文件系统,
		FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoop1:8020") , conf, "york");
		//2.拷贝文件到集群,true表示文件上传成功后自动删除源文件,即删除客户端下的源文件
		fileSystem.copyFromLocalFile(true,new Path("C:/win10Hadoop/xiyou.txt"),new Path("/user/york/input"));
		//3.关闭fileSystem
		fileSystem.close();
	}

}

执行结果:

  • 1.日志信息(未加log4j日志包,出现警告提醒,导入即可):
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
  • 集群命令查看上传的文件:
    在这里插入图片描述
  • 网页查看
    在这里插入图片描述
    可支持下载:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yhblog/article/details/84135292