大数据学习之 HDFS IO API的简单使用

大数据学习(六):Python操作hdfs(包括追加数据文件到hdfs文件) #!coding:utf-8 import sys from hdfs.client import Client #设置utf-8模式 reload(sys) sys.setdefaultencoding( "utf-8" ) #关于python操作hdfs的API可以查看官网: #https://hdfscli.readthedocs.io/en/latest/api.html ... 阅读详情

HDFSIO流 API练习

import	java.io.FileOutputStream;
import	java.io.FileInputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

/**HDFS IO流 API练习*/
public class HDFSIOTest {
    /**
     * 上传文件
     */
    @Test
    public void test1() throws URISyntaxException, IOException, InterruptedException {
        //创建配置文件信息
        Configuration conf = new Configuration();
        System.out.println("创建配置文件信息");
        //获取文件系统
        FileSystem filesystem = FileSystem.get(new URI("hdfs://bigdata2:9000"),conf,"root");
        System.out.println("获取文件系统");
        //创建输入流
        FileInputStream fis = new FileInputStream("C:\\Users\\wt\\Desktop\\yy\\3.doc");
        System.out.println("创建输入流");
        //输出路径和输出流
        Path path = new Path("hdfs://bigdata2:9000/aa.doc");
        FSDataOutputStream fos = filesystem.create(path);/*重点:filesystem.create(path)*/
        //对接两个流
        IOUtils.copyBytes(fis,fos,4*1024,true);
        System.out.println("上传成功");
    }
    /**
     * 下载文件
     */
    @Test
    public void test2() throws URISyntaxException, IOException, InterruptedException {
        //创建连接
        Configuration conf = new Configuration();
        System.out.println("创建配置文件信息");
        //获取文件系统
        FileSystem filesystem = FileSystem.get(new URI("hdfs://bigdata2:9000"),conf,"root");
        System.out.println("获取文件系统");
        //创建输出流
        FileOutputStream fos = new FileOutputStream("C:\\Users\\wt\\Desktop\\yy\\1.doc");
        System.out.println("创建输出流");
        //设定路径和输入流
        Path path = new Path("hdfs://bigdata2:9000/aa.doc");
        FSDataInputStream fis = filesystem.open(path);/*重点:filesystem.open*/
        System.out.println("设定路径和输入流");
        //流交换
        IOUtils.copyBytes(fis, fos,  1024, true);
        System.out.println("下载成功");
    }
    /**文件刷新,只有写入到hdfs中hflush操作才能将数据存储进去,不需要关闭也是能够查看到数据的*/
    @Test
    public void writeFile1() throws URISyntaxException, IOException, InterruptedException {
        //创建连接
        Configuration conf = new Configuration();
        System.out.println("创建配置文件信息");
        //获取文件系统
        FileSystem filesystem = FileSystem.get(conf);
        System.out.println("获取文件系统");
        //创建文件输出流
        Path path = new Path("/A.txt");
        FSDataOutputStream fos = filesystem.create(path);
        System.out.println("创建文件输出流");
        //写入数据
        fos.write("Hello World".getBytes());
        System.out.println("写入数据");
        //文件刷新,只有写入到hdfs中刷新操作才能将数据存储进去,不需要关闭也是能够查看到数据的
        //如果是windows的是无法在在关闭输出流之前查看的,刷新感觉是无效的
        fos.hflush();
        System.out.println("文件刷新");
        //关闭输出流
        fos.close();
        System.out.println("关闭输出流");
    }
    /**一致性模式,如果是往windows进行hflush是无效的*/
    @Test
    public void writeFile() throws Exception{
        // 1 创建配置信息对象
        Configuration configuration = new Configuration();
        FileSystem fs = FileSystem.get(configuration);

        // 2 创建文件输出流,并创建文件夹和文件
        Path path = new Path("F:\\date\\H.txt");
        FSDataOutputStream fos = fs.create(path);

        // 3 写数据
        fos.write("hello world".getBytes());
        // 4 一致性刷新
        fos.hflush();

        fos.close();
    }
}

HDFS四大机制

1、心跳机制

hdfs集群中namenode负责管理所有的datanode。
那namenode是如何管理的呢?
namenode怎么获取datanode存活状况的?
通过心跳策略获取的,datanode在集群运行的过程中会定期的向namenode发送自己的心跳报告,目的就是向namenoden报告自己的存活状况。
心跳报告的周期:hdfs-default.xml

<property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
<description>Determines datanode heartbeat i
nterval in seconds.</description>
</property>

datanode每隔3s向namenode发送一个心跳报告(注意:心跳周期的单位是秒)。

如果一个datanode宕机了,namenode通过多长时间可以断定?
namenode连续10次接受不到datanode的心跳报告时,会认为当前的datanode可能宕机,默认设置如下:

<property>
<name>dfs.namenode.handler.count</name>
<value>10</value>
<description>The number of server threads for the namenode.</description>
</property>

这个时候namenode主动向datanode发送检查(后台守护进程)并等待检查的响应结果

<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>300000</value>
<description>
This time decides the interval to check for expired datanodes.
With this value and dfs.heartbeat.interval, the interval of
deciding the datanode is stale or not is also calculated.
The unit of this configuration is millisecond.
</description>
</property>

namenode进行datanode的一次检查的时间300000ms=300s=5min,namenode这时候会主动检查两次,如果两次检查都没有响应,断定当前的datanode宕机了。因此,namenode断定一个datanode宕机的时间:103s+25min=10min30s

2、机架策略——副本存放策略

在hdfs中对于一个block默认的存储副本个数3个,这3个副本如何存放的?
三个副本分别存储在3个不同的节点上。事实上在实际生产的时候,节点在机架上的,所以,在存放副本时需考虑机架问题的副本存放策略如下:

1)第一个副本通常放在客户端所在节点(客户端是集群中的一个节点),如果客户端不是集群中的一个节点,则第一个副本上传到任意一个节点。

2)第二个副本放在和第一个副本相同机架的不同节点上,这个放在同一个机架的原因是为了备份速度更快。

3)第三个副本放在和第二个副不同机架的任意节点上。

实际生产中:副本存放有可能跨节点、跨机架、跨机房,甚至跨数据中心。

3、负载均衡

什么是负载均衡?
hdfs集群中的每一个datanode上的存储的数据和自己的硬件占比是相当的,这个时候我们可以认为这个hdfs集群是负载均衡的。集群的运行过程中,有可能造成集群中的从节点的负载不均衡,如果集群规模比较小的时候,集群有自动负载均衡的能力,集群自己在一段时间之后达到相对的负载均衡。

集群实现负载均衡的过程实际上就是数据块移动的过程(跨节点),因此可知负载均衡的带宽配置如下:

<property>
<name>dfs.datanode.balance.bandwidthPerSec</name>
<value>1048576</value>
<description>
Specifies the maximum amount of bandwidth that each datanode
can utilize for the balancing purpose in term of
the number of bytes per second.
</description>
</property>

默认集群负载均衡的带宽1M/s(很慢的),这个速度对于小规模集群还是可以满足的,但集群规模比较大的时候就不可以了,因为太慢了,集群规模大的时候就需要手动负载均衡。如何手动负载均衡呢?

1.start-balancer.sh -t 10% 这个命令不会立即执行,而是提升负载均衡的响应时效

2.调整带宽

<property>
<name>dfs.datanode.balance.bandwidthPerSec</name>
<value>1048576000</value>
<description>
Specifies the maximum amount of bandwidth that each datanode
can utilize for the balancing purpose in term of
the number of bytes per second.
</description>
</property>

/start-balancer.sh -t 10% 参数意义:datanode中最大的存储容量占比减去最小的存储的容量占比不超过10% 时认为是负载均衡的。如下:

hadoop01 2T 1T 50%

hadoop02 2T 1.1T 55%

hadoop03 2T 0.8T 40%

55%-40%=15%>10% 这时是负载不均衡的

4、安全模式

集群的安全模式是集群的一个自我保护的一种模式,在集群的安全模式下,不允许用户对集群进行部分操作的。

集群什么时候会进入安全模式?

1、集群启动的时候,集群会自己进入安全模式

启动顺序:
1namenode
2)datanode
3)secondarynamenode

启动namenode的时候做的事情:
namenode主要作用:
存储元数据,即
1)抽象目录树
2)数据和块的映射
3)数据块和节点的映射

元数据存储的位置:
1)硬盘上存储 /home/hadoop/data/hadoopdata/name/current
硬盘中的元数据包含:1) 2)但没有3)

2)内存中有全部的元数据

集群正常启动之后,读取的元数据信息都是内存中的,即包含1) 2) 3)

集群再启动namenode的时候:
1)将硬盘中的元数据加载到内存中

元数据信息:
hadoop-2.7.6.tar.gz 206M
1)/hadoop-2.7.6.tar.gz
2)hadoop-2.7.6.tar.gz:blk_12334:[] blk_12335:[]

启动datanode:
1)启动datanode的进程
2)启动完成向namenode进行发送心跳报告
3)datanode在发送心跳报告的时候也会发送块报告

namenode接受到这个块报告信息就会将相应的块id的节点放在元数据的相应位置,比如
hadoop-2.7.6.tar.gz:blk_12334:[hadoop01,hadoop02] blk_12335:[hadoop02,hadoop03]
启动secondarynamenode

集群在整个启动过程中处于安全模式,会进行一系列的检查,符合标准时才会离开安全模式:

1)检查每一个数据块的副本个数,每一个数据块的副本个数至少为1

<property>
<name>dfs.namenode.replication.min</name>
<value>1</value>
<description>Minimal block replication.
</description>
</property>

2)检查合乎标准的数据块占总数据块的比例

<property>
<name>dfs.namenode.safemode.threshold-pct</name>
<value>0.999f</value>
<description>
Specifies the percentage of blocks that should satisfy
the minimal replication requirement defined by dfs.namenode.replication.min.
Values less than or equal to 0 mean not to wait for any particular
percentage of blocks before exiting safemode.
Values greater than 1 will make safe mode permanent.
</description>
</property>

假设集群中的总的数据块的id:1000个
达到副本个数>=1的数据块的id:999 达标的数据块的比例999/1000=0.999
达到副本个数>=1的数据块的id:998 比例:0.998

3)检查存活的datanode个数

<property>
<name>dfs.namenode.safemode.min.datanodes</name>
<value>0</value>
<description>
Specifies the number of datanodes that must be considered alive
before the name node exits safemode.
Values less than or equal to 0 mean not to take the number of live
datanodes into account when deciding whether to remain in safe mode
during startup.
Values greater than the number of datanodes in the cluster
will make safe mode permanent.
</description>
</property>

至少保证0个datanode存活的

4)整个符合上面的标准的状态持续30s之后

<property>
<name>dfs.namenode.safemode.extension</name>
<value>30000</value>
<description>
Determines extension of safe mode in milliseconds
after the threshold level is reached.
</description>
</property>

保证集群的稳定性

集群启动过程中,为什么进入安全模式?
**
1)namenode将硬盘中的元数据加载到内存中
2)namenode接受datanode的心跳报告
3)namenode接受datanode的块报告
4)namenode会进行一系列的检查**

基于以上的原因,集群会进入安全模式,待上面的事情都完成的情况下,集群会自动退出安全模式。

2、集群运行过程中,也会进行检查
1)检查每一个数据块的副本个数,每一个数据块的副本个数至少为1

<property>
<name>dfs.namenode.replication.min</name>
<value>1</value>
<description>Minimal block replication.
</description>
</property>

2)检查合乎标准的数据块占总数据块的比例

<property>
<name>dfs.namenode.safemode.threshold-pct</name>
<value>0.999f</value>
<description>
Specifies the percentage of blocks that should satisfy
the minimal replication requirement defined by dfs.namenode.replication.min.
Values less than or equal to 0 mean not to wait for any particular
percentage of blocks before exiting safemode.
Values greater than 1 will make safe mode permanent.
</description>
</property>

假设集群中的总的数据块的id:1000个
达到副本个数>=1的数据块的id:999 达标的数据块的比例999/1000=0.999
达到副本个数>=1的数据块的id:998 比例:0.998
检查的时候发现不符合要求,也会自动进入安全模式。

3.如果集群处于维护或者是系统升级时可手动进入安全模式,命令:

hdfs dfsadmin -safemode get 获取当前集群的安全模式状态
Safe mode is OFF 离开了安全模式
Safe mode is ON 在安全模式
hdfs dfsadmin -safemode leave 强制离开安全模式
hdfs dfsadmin -safemode enter 强制进入安全模式
hdfs dfsadmin -safemode wait 等待安全模式自行离开(没有意义)

在安全模式下,可以执行的操作,和不可以执行的操作?
可以执行的操作:ls、get、cat、tail
不可以执行的操作:-put、-mkdir、-touchz、-appendToFile、-rm

此处参考链接:https://blog.youkuaiyun.com/qq_1018944104/article/details/84994222

HDFS写入与下载

写入数据:
上传
1)客户端向namenode请求上传文件,namenode检查目标文件是否已存在,父目录是否存在。
2)namenode返回是否可以上传。
3)客户端请求第一个 block上传到哪几个datanode服务器上。
4)namenode返回3个datanode节点,分别为dn1、dn2、dn3。
5)客户端请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成
6)dn1、dn2、dn3逐级应答客户端
7)客户端开始往dn1上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,dn1收到一个packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答
8)当一个block传输完成之后,客户端再次请求namenode上传第二个block的服务器。(重复执行3-7步)

下载数据:
读数据
1)客户端向namenode请求下载文件,namenode通过查询元数据,找到文件块所在的datanode地址。
2)挑选一台datanode(就近原则,然后随机)服务器,请求读取数据。
3)datanode开始传输数据给客户端(从磁盘里面读取数据放入流,以packet为单位来做校验)。
4)客户端以packet为单位接收,先在本地缓存,然后写入目标文件

windows 下执行hadoop命令的工具 winutils windows hadoop 工具 模拟执行linux的几个命令用的。添加到 hadoop-2.2.0\bin下面就行了。 立即下载

相关推荐

PostGIS 小白入门详细指南

PostGIS 是 PostgreSQL 的一个扩展,它将 PostgreSQL 转变为一个功能强大的空间数据库,使其能够存储、查询和分析地理空间数据。PostGIS 遵循开放地理空间联盟(OGC)的标准,支持各种空间数据类型和操作,如点、线、多边形、缓冲区、空间连接等。存储各种空间数据类型(如几何类型和地理类型)空间索引,提高查询性能丰富的空间函数和操作支持投影和坐标系统转换城市规划与管理环境监测与分析物流与运输优化地图制作与可视化位置服务与导航。

落魄书生的职业学习生涯 1万+

Hadoop HDFS 负载均衡的使用方法

1.概念 在Hadoop中,包含一个start-balancer.sh脚本,通过运行这个工具,启动HDFS数据均衡服务。该工具可以做到热插拔,即无须重启计算机和 Hadoop 服务。Hadoop/bin目录下的start−balancer.sh脚本就是该任务的启动脚本。 启动命令为:bin/start-balancer.sh–threshold 2.影响Balancer的几个参数: -thres...

weixin_43520450的博客 2558

Docker部署Nextcloud私有云:MariaDB、OnlyOffice与HTTPS全栈实践

Nextcloud作为主流开源私有云平台,其稳定部署依赖Docker容器化、MariaDB数据库优化、OnlyOffice在线协作集成及HTTPS安全加固四大核心技术。理解Docker Compose服务健康检查机制与依赖等待原理,可避免因启动时序导致的500/404错误;掌握MariaDB字符集配置与InnoDB参数调优,是保障Nextcloud全文搜索与大文件上传可靠性的底层基础;而OnlyOffice的JWT兼容性控制与Nginx路径重写规则,则直接决定文档协同功能是否可用。在家庭NAS、边缘服务器或

weixin_30328063的博客 512

离线数仓 (四) --------- 用户行为数据采集模块

离线数仓用户行为数据采集模块

在森林里麋了鹿 2078

桂电 数电实验 期末考试 试卷+解析(74LS192 + 74LS153 + 74LS139 + 74LS00 / 74LS20)

桂电 数电实验 期末考试 试卷+解析(74LS192 + 74LS153 + 74LS139 + 74LS00 / 74LS20)

Molly 的博客 1万+

解决Matlab激活后License checkout failed问题的详细步骤与避坑指南

本文详细解析了Matlab激活后出现License checkout failed错误的常见原因及解决方案,重点介绍了如何正确找到并运行激活程序,避免用户名填写错误等常见问题。文章还提供了多次激活与疑难排解的实用建议,帮助用户顺利完成Matlab激活过程。

weixin_33670786的博客 579

Hadoop2.7实战v1.0之start-balancer.sh与hdfs balancer数据均衡

转发:http://www.aboutyun.com/thread-17612-1-1.html 适用场景:a.当动态添加或者删除集群的数据节点,必然会使各节点的数据不均衡 b.当正常维护时 1.对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M, 即hdfs dfsadmin -setBalancerBandwidth 67108864即可 [root@sht-sgmhad...

中国华的博客 2752

从零到一:基于Docker与Gewechat协议,打造高可用微信AI助手

本文提供了一份从零开始的实战指南,详细讲解如何利用Docker容器化技术与Gewechat协议,构建一个高可用、低风险的微信AI助手。通过整合Dify AI平台,您可以为微信机器人注入大语言模型的智能,实现自动问答、知识库查询等高级功能,显著提升个人或团队在微信场景下的沟通与信息处理效率。

weixin_29280657的博客 160

HADOOP HDFS BALANCER介绍及经验总结

1.集群执行balancer命令,依旧不平衡的原因是什么?该如何解决? 2.尽量不在NameNode上执行start-balancer.sh的原因是什么? 集群平衡介绍 Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点。当HDFS出现不平衡状况的时候,将引发很多问题,比如MR程序无法很好地利用本地计算的优势,机器之间无法达到更

aaa1117a8w5s6d的专栏 2417

12-RK平台U-Boot启动流程

先看概述,把这一章要回答的问题摆出来,带着问题听。RK 特有的 BootROM -> MiniLoader -> SPL -> U-Boot -> Kernel。这是因为 RK 平台使用闭源的 DDR 初始化固件,需要通过 MiniLoader 来加载和运行。为什么多一层?这是 RK 平台的特殊性决定的。RK 平台使用闭源的 DDR 初始化固件,这段代码 Rockchip 不开源,只能以二进制形式提供,它需要一个载体来加载和运行,这个载体就是 MiniLoader。

内核笔记 1146

通过情感分类实例 详细介绍如果借助Huggingface平台 完成Transformers模型运行(包括配置环境-tokenizer-Model-输出头-预测)

attention_mask和padding是配套使用的,当人为去修改padding的时候,也要把attention_mask里面的参数进行修改。下载Huggingface包,Huggingface可以说是一个社区,集成了很多nlp的模型、数据集、预训练权重文件等等,并且免费,只需要pip install下载即可。那么用什么做分类就选择什么输出头,就import什么东西。代码中使用了自动分词器选择,它是由checkpoint指定的预训练模型关联的,不用我们自己选择tokenizer,它自动帮我们选择好了。

LZL2020LZL的博客 1135

hadoop集群balance工具详解

在线上的hadoop集群运维过程中,hadoop 的balance工具通常用于平衡hadoop集群中各datanode中的文件块分布,以避免出现部分datanode磁盘占用率高的问题(这问题也很有可能导致该节点CPU使用率较其他服务器高)。      1) hadoop balance工具的用法: To start: bin/start-balancer.sh [-threshold ] Ex

竹叶青 的专栏 2万+

2022年全国职业院校技能大赛网络系统管理赛项模块A:网络构建(样题5)-网络部分解析-附详细代码

2022年全国职业院校技能大赛网络系统管理赛项模块A:网络构建(样题5)-网络部分解析-附详细代码

bfq05234214的博客 414

大数据从入门到实战 - 大数据系统及应用-HDFS实训

大数据从入门到实战 - 大数据系统及应用-HDFS实训 一、关于此次实践 1、实战简介 2、全部任务 二、实践详解 1、第1关:HDFS Java API编程 ——文件读写 2、第2关:HDFS Java API编程——文件上传 3、第3关:HDFS Java API编程 ——文件下载 4、第4关:HDFS Java API编程 ——使用字符流读取数据 5、第5关:HDFS Java API编程 ——删除文件 6、第6关:HDFS Java API编程 ——删除文件夹 7、第7关:HDFS Java API

小啊呜的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Hadoop】HDFS API 操作大全

为了提供对不同数据访问的一致接口,Hadoop借鉴了Linux虚拟文件系统的概念,为此Hadopo提供了一个抽象的文件系统模型FileSystem,HDFS 是其中的一个实现。 FileSystem是Hadoop中所有文件系统的抽象父类,它定义了文件系统所具有的基本特征和基本操作。

康师傅没有眼泪 4168

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDFS调用API

HDFS调用API:用一台机器管理所有集群shell 脚本 是在集群里面操作 HDFSIDEA 是在另一台机器PC上操作整个集群。

2301_80169572的博客 1235

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

大数据从入门到实战-HDFS-JAVA接口之读取文件

大数据从入门到实战 - 分布式文件系统HDFS

qq_61604164的博客 6682

hadoop_3 HDFS学习及API开发

hadoop_3 HDFS学习及API开发hadoop_3 HDFS学习及API开发1 hdfs的概述1.1 hdfs的背景及定义1.2 hdfs的优缺点1.3 hdfs的组成架构1.4 hdfs的文件块大小(面试重点)2 hdfs的shell操作(开发重点)2.1 hdfs的命令行操作2.2 解决web端权限问题3 hdfs的客户端的操作3.1 api环境准备3.2 测试准备3.3 文件操作4 掌握hdfs的io流4.1 文件上传4.2 文件下载 目标: 1 掌握hdfs的架构 2 掌握hdfs的命令行操

qq_14919937的博客 1024

HDFS API 使用示例

<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2...

koukan3的博客 632

BigData-Notes:全面解析大数据技术栈入门指南

BigData-Notes:全面解析大数据技术栈入门指南 本文全面解析了大数据技术生态体系,涵盖了从数据采集、存储、处理到应用的全生命周期技术栈。详细介绍了Hadoop生态系统三大核心组件(HDFS、MapReduce、YARN)的架构原理和协同工作机制,深入对比分析了主流流处理框架(Flink、Spark Streaming、Storm)与批处理框架的技术特性、性能差异和适用场景。最后提供了系统...

gitblog_00043的博客 1014

HDFS文件系统JAVA api访问接口(基于hadoop大数据平台)

在搭建完hadoop大数据系统(我是使用CDH5.16.1进行安装)后,如何访问hdfs文件系统上的数据呢?那当然是通过构建maven项目 使用java api接口进行文件了。为此,特别进行了hdfs文件系统java api访问的整理。下面就附录上我的CDH5.16.1平台上安装的各组件版本说明。说明:如果需要CDH5.16.1安装教程的,可以给我留言哦~ jdk ...

认知 行动 坚持 1937

大数据技术原理与应用实验1——熟悉常用的HDFS操作

编程实现以下功能,并利用Hadoop提供的Shell命令完成相同任务: (1) 向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,则由用户来指定是追加到原有文件末尾还是覆盖原有的文件; (2) 从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名; (3) 将HDFS中指定文件的内容输出到终端中; (4) 显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息; (5) 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间等

m0_52435951的博客 1万+

【大数据】HDFS、HBase操作教程(含指令和JAVA API)

详解HDFS和HBASE的指令操作以及JAVA API。

BugMan的博客 4915

HDFS Java API编程:Demo程序实验

HDFS JavaAPI编程实验 编程环境: 方式一(必学):创建Java Project,直接导入hadoop-2.6.0-cdh5.7.0.tar.gz安装包中与HDFSAPI编程的有关jar包 参考文章:https://blog.csdn.net/qq_42881421/article/details/83001401 方式二(选学):创建MavenProject,修改POM....

qq_35447918的博客 2627

【HDFS篇05】HDFS客户端操作 --- IO流操作

输出倒逼输入 HDFS客户端操作 --- IO流操作 HDFS文件上传 @Test public void putFileToHDFS() throws IOException, InterruptedException, URISyntaxException { // 1 获取文件系统 Configuration configuration = new Configuration(); FileSystem fs = FileSystem.get(new URI("h.

FocusBigData博客 1938

Hadoop之HDFS的应用(Java API实现文件上传与下载)

HDFS客户端环境搭建就不在这里赘述了,不知道怎么搭建读者可参考这篇博客:https://blog.csdn.net/weixin_43800761/article/details/106854426 一、HDFS文件上传 源代码编写 @Test public void testCopyFromLocalFile() { // 创建作业,配置作业所需参数 Configuration conf = new Configuration(); conf.

weixin_43800761的博客 3513
上一篇: 大数据学习之 HDFS API的简单使用
下一篇: 大数据学习之 MapReduce基础及第一个程序 WordCount
默默谦行
博客等级 码龄7年 5粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值