Hadoop之HDFS客户端操作
1. HDFS 客户端环境准备
1.1 windows 平台搭建 hadoop 2.8.5
2. 创建Maven工程
# pom.xml
<dependencies>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-core</artifactId>
          <version>2.8.2</version>
      </dependency>
      <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-common</artifactId>
          <version>2.8.5</version>
      </dependency>
      <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-client</artifactId>
          <version>2.8.5</version>
      </dependency>
      <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-hdfs</artifactId>
          <version>2.8.5</version>
      </dependency>
</dependencies>
<build>
    <plugins>
        <!--java 的编译版本 1.8-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
      </plugins>
</build>
2.1 配置src/main/resources/log4j.properties
## 输出到控制台
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d    %p    [%c] - %m%n
## 输出到文件
#log4j.appender.logfile=org.apache.log4j.FileAppender
#log4j.appender.logfile.File=target/spring.log
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d    %p    [%c] - %m%n
2.2 创建HDFSClient类
public class HDFSClient {
	public static void main(String[] args) {
		Configuration conf = new Configuration();
		// NameNode地址
		conf.set("fs.defaultFS", "hdfs://服务器IP地址:9000");
		try {
			// 1. 获取hdfs客户端对象
			FileSystem fs = FileSystem.get(conf);
			// 2. 在hdfs上创建路径
			fs.mkdirs(new Path("/0526/noodles"));
			// 3. 关闭资源
			fs.close();
			// 4. 程序结束
			System.out.println("操作结束==========");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
2.2.1 异常处理
- “Permission denied”
 


2.3 HDFSClient类(升级版)
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 {
		Configuration conf = new Configuration();
		// 1. 获取hdfs客户端对象
		FileSystem fs = FileSystem.get(new URI("hdfs://服务器IP地址:9000"), conf, "root");
		// 2. 在hdfs上创建路径
		fs.mkdirs(new Path("/0526/test002"));
		// 3. 关闭资源
		fs.close();
		// 4. 程序结束
		System.out.println("操作结束==========");
	}
}
参考资料:
Hadoop之HDFS客户端操作的更多相关文章
- Hadoop  JAVA HDFS客户端操作
		
JAVA HDFS客户端操作 通过API操作HDFS org.apache.logging.log4jlog4j-core2.8.2org.apache.hadoophadoop-common${ha ...
 - Hadoop系列007-HDFS客户端操作
		
title: Hadoop系列007-HDFS客户端操作 date: 2018-12-6 15:52:55 updated: 2018-12-6 15:52:55 categories: Hadoop ...
 - Hadoop之HDFS文件操作常有两种方式(转载)
		
摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件 命令行 Java API HD ...
 - Hadoop之HDFS文件操作
		
摘要:Hadoop之HDFS文件操作常有两种方式.命令行方式和JavaAPI方式.本文介绍怎样利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件 命令行 Java API HD ...
 - hadoop的hdfs文件操作实现上传文件到hdfs
		
这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...
 - 【Hadoop】HDFS客户端开发示例
		
1.原理.步骤 2.HDFS客户端示例代码 package com.ares.hadoop.hdfs; import java.io.FileInputStream; import java.io.F ...
 - Hadoop(7)-HDFS客户端的API操作
		
1 客户端环境准备 根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径 配置HADOOP_HOME的环境变量,并且在path中配置hadoop的bin 重启电脑 2. Hdfs ...
 - 大数据学习——hdfs客户端操作
		
package cn.itcast.hdfs; import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configur ...
 - Hadoop 之 HDFS API操作
		
1. 文件上传 @Slf4j public class HDFSClient { @Test public void testCopyFromLocalFile() throws Exception{ ...
 
随机推荐
- 002_C/C++笔试题_简单算法程序
			
(一)冒泡排序法 #include <iostream> using namespace std; void bubblesort(int a[], int m); int main(vo ...
 - vue使用Echarts图表
			
vue使用Echarts图表 童话_xxv 关注 0.5 2018.12.11 09:09* 字数 325 阅读 1456评论 2喜欢 13 在开发后台系统时,使用图表进行数据可视化,这样会使数据更 ...
 - ps/top
			
ps -e 显示所有进程,环境变量 -f 全格式显示 -a 显示所有用户的所有进程(包括其他用户) -u 按用户名和启动时间的顺序显示进程 -x 显示无控制终端的进程 -w 显示加宽可以显示较多信息 ...
 - dubbo——高可用性
			
一.zookeeper宕机 zookeeper注册中心宕机,还可以消费dubbo暴露的服务 健壮性: 监控中心宕掉不影响使用,只是丢失部分采样数据 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询, ...
 - 如何用 Windows Live Writer 和 Word 2013 分别发表博客到Cnblog 和CSDN
			
ps CSDN 老是505错误,放弃了 为什么会写这篇 最近写博客在 Cnblog 上面写博客, 发现图片不能复制了直接粘贴上,这对于把博客当随手笔记的人来说无疑非常痛苦.求助于博客园,他们让我用 W ...
 - Python学习日记(六)——内置函数和文件操作(lambda)
			
lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'prime' else: name = 'c ...
 - python 装饰器应用
			
1 注册回调函数 下面这个示例展示了通过URL的路由来调用相关注册的函数示例: class MyApp(): def __init__(self): self.func_map = {} def re ...
 - zabbix监控项整理Items-key
			
agent.hostname:hostname,字符串 agent.ping:可用性检查,可用返回1:不可用返回空 agent.version:agent程序的版本,返回字符串 kernel.maxf ...
 - 重读APUE(6)-umask
			
umask函数设置当前进程的权限为屏蔽字:系统会有一个默认的屏蔽字,为了确保创建文件具有的权限位成功被设置,需要使用umask将屏蔽字置0: 系统屏蔽字用shell查看,比如得到如下结果,其为八进制表 ...
 - 第二章 c语言概述
			
一.#include指令和头文件 1.#include C预处理指令,C编译器在编译前对源代码做一些准备工作 2.stdio.h标准输入输出头文件,提供了关于输入输出的信息供编译器使用 头文件包含了建 ...