HDFS的API操作

1:在Windows下配置Hadoop的运行环境

第一步:将hadoop2.7.5文件夹拷贝到一个没有中文没有空格的路径下面

第二步:在windows上面配置hadoop的环境变量: HADOOP_HOME,并将%HADOOP_HOME%\bin添加到path中

第三步:把hadoop2.7.5文件夹中bin目录下的hadoop.dll文件放到系统盘:C:\Windows\System32 目录

第四步:关闭windows重启

2:获取FileSystem的方式

@Test

public void getFileSystem2() throws Exception{

FileSystem fileSystem = FileSystem.get(new URI("hdfs://node01:8020"),

new Configuration()); //new Configuration()该对象会自动读取haoop的xml配置文件

System.out.println("fileSystem:"+fileSystem);

}

3:HDFS的API操作

/*

创建文件夹和文件

*/

@Test

public void mkdirs() throws Exception{

FileSystem fileSystem = FileSystem.get(new URI("hdfs://node01:8020"),new Configuration());

//boolean mkdirs = fileSystem.mkdirs(new Path("/hello/mydir/test")); //递归创建文件夹

/*

1:如果父目录不存在,则会自动创建

2:创建文件时,文件所属用户是你windows下的用户

*/

boolean mkdirs = fileSystem.create(new Path("/hello/mydir/test"));

fileSystem.close();

}

4:HDFS文件流的获取

//获取hdfs文件的输入流--->读取hdfs文件--->下载

FSDataInputStream inputStream = fileSystem.open(new Path("/a.txt"));

//获取hdfs文件的输出流--->向hdfs文件写数据

FSDataOutputStream outputStream = fileSystem.create(new Path("/a.txt"));

//文件上传:

fileSystem.copyFromLocalFile(new Path("D://set.xml"), new Path("/"));

//文件下载:

fileSystem.copyToLocalFile(new Path("/a.txt"), new Path("D://a4.txt"));

5:HDFS的权限问题

1:如果要让hdfs的权限生效,则需要修改hdfs-site.xml文件,修改如下:

<property>

<name>dfs.permissions</name>

<value>true</value>

</property>

2:伪造用户:以某一个用户的身份去访问     //过滤器 Filter

//最后一个参数root,就是以root身份去访问

FileSystem fileSystem = FileSystem.get(new URI("hdfs://node01:8020"), new Configuration(),"root");

6:HDFS的高可用(HA)

1:HDFS高可用是有2个namenode,一个是Active状态,一个是Standby状态

2:Zookeeper用来解决两个namenode的单点故障问题,Journal Node用来保证两个namenode元数据的同步

7:MapReduce的思想

MpReduce运行在yarn之上

阶段划分:

Map阶段: 负责将一个大的任务划分成小的任务,小任务之间不能有依赖关系

Reduce阶段: 负责将Map阶段的结果进行汇总

8:MapReduce的步骤

Map阶段2个步骤

1. 设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步

2. 自定义 Map 逻辑(自己写代码), 将第一步的结果转换成另外的 Key-Value(K2和V2) 对, 输出结果

Shuffle 阶段 4 个步骤

3. 分区(Partition)

4. 排序(Sort)

5. 规约(Combiner)

6. 分组(Group By)    ETL

Reduce阶段2个步骤

7. 自定义Reduce逻辑(自己写代码)将新的K2和V2转为新的 Key-Value(K3和V3)输出

8. 设置 OutputFormat 处理并保存 Reduce 输出的K3和V3 数据

原文地址:https://www.cnblogs.com/xiaobinggun/p/11595187.html

时间: 2024-08-02 19:20:07

HDFS的API操作的相关文章

Hadoop之HDFS(客户端操作) 2 HDFS的API操作 3 HDFS的I/O流操作

2 HDFS的API操作 2.1 HDFS文件上传(测试参数优先级) 1.编写源代码 // 文件上传 @Test public void testPut() throws Exception { Configuration conf = new Configuration(); conf.set("dfs.replication", "2"); // 1.获取fs对象 FileSystem fs = FileSystem.get(new URI("hdfs

大数据学习之HDFS基本API操作(上)06

1 package it.dawn.HDFSPra; 2 3 import java.io.FileNotFoundException; 4 import java.io.IOException; 5 import java.net.URI; 6 import java.net.URISyntaxException; 7 import java.util.Arrays; 8 9 import org.apache.hadoop.conf.Configuration; 10 import org.

HDFS Java API 常用操作

package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.

HDFS的shell和API操作

1. HDFS的shell操作 hadoop version //查看版本 hadoop fs -appendToFile src(Linux中的文件) dest(hdfs目录下的文件) //追加 hadoop fs -cat file(hdfs目录下的文件) //查看文件内容 Hadoop fs -tail file(hdfs目录下的文件) //查看文件末尾1kb的数据 hadoop fs -checksum file(hdfs目录下的文件) //校验当前文件是否正确 hadoop fs -c

大数据技术之_04_Hadoop学习_01_HDFS_HDFS概述+HDFS的Shell操作(开发重点)+HDFS客户端操作(开发重点)+HDFS的数据流(面试重点)+NameNode和SecondaryNameNode(面试开发重点)

第1章 HDFS概述1.1 HDFS产出背景及定义1.2 HDFS优缺点1.3 HDFS组成架构1.4 HDFS文件块大小(面试重点)第2章 HDFS的Shell操作(开发重点)第3章 HDFS客户端操作(开发重点)3.1 HDFS客户端环境准备3.2 HDFS的API操作3.2.1 HDFS文件上传(测试参数优先级)3.2.2 HDFS文件下载3.2.3 HDFS文件夹删除3.2.4 HDFS文件名更改3.2.5 HDFS文件详情查看3.2.6 HDFS文件和文件夹判断3.3 HDFS的I/O

Java API操作HDFS

HDFS是存储数据的分布式文件系统,对HDFS的操作,就是对文件系统的操作,除了用HDFS的shell命令对文件系统进行操作,我们也可以利用Java API对文件系统进行操作,比如文件的创建.删除.修改权限等等,还有文件夹的创建.删除.重命名等等. 使用Java API对文件系统进行操作主要涉及以下几个类: 1.Configuration类:该类的对象封装了客户端或者服务端的配置. 2.FileSystem类:该类的对象是一个文件系统对象,可以利用该对象的一些方法来对文件进行操作,FileSys

Hadoop读书笔记(三)Java API操作HDFS

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 JAVA URL 操作HDFS OperateByURL.java package hdfs; import java.io.InputStream; import jav

HDFS基础和java api操作

1. 概括 适合一次写入多次查询情况,不支持并发写情况 通过hadoop shell 上传的文件存放在DataNode的block中,通过linux shell只能看见block,看不见文件(HDFS将客户端的大文件存放在很多节点的数据块中,Block本质上是一个逻辑概念,它是hdfs读写数据的基本单位) HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间 2. fs 可以使用hdfs shell操作hdfs,常用 fs命令如下: eg: hadoop fs -cat fi

HDFS基本命令行操作及上传文件的简单API

一.HDFS基本命令行操作: 1.HDFS集群修改SecondaryNameNode位置到hd09-2 (1)修改hdfs-site.xml <configuration> //配置元数据存储位置 <property> <name>dfs.namenode.name.dir</name> <value>/root/hd/dfs/name</value> </property> //配置数据存储位置 <property