在 HDFS 中创建目录并复制文件 (Hadoop)

2023-10-17

HDFS is the Hadoop分布式文件系统。它是一个用于大型数据集的分布式存储系统,支持容错、高吞吐量和可扩展性。它的工作原理是将数据划分为在集群中的多台机器上复制的块。这些块可以并行写入或读取,从而提高吞吐量和容错能力。 HDFS 提供类似 RAID 的冗余以及自动故障转移功能。 HDFS 还支持压缩、复制和加密。

HDFS 最常见的用例是存储大量数据,例如图像和视频文件、日志、传感器数据等。

使用 HDFS 创建目录结构

“hdfs”命令行实用程序位于${HADOOP_HOME}/bin目录。假设Hadoop bin目录已经包含在PATH环境变量。现在以 HADOOP 用户身份登录并按照说明进行操作。

  1. 创建一个/dataHDFS 文件系统中的目录。我愿意使用这个目录来包含应用程序的所有数据。
    hdfs dfs -mkdir /data 
    
  2. 创建另一个目录/var/log,它将包含所有日志文件。由于 /var 目录也不存在,因此使用-p也创建一个父目录。
    hdfs dfs -mkdir -p /var/log 
    
  3. 您还可以在目录创建期间使用变量。例如,创建一个与当前登录用户同名的目录。该目录可用于包含用户的数据。
    hdfs dfs -mkdir -p /Users/$USER 
    

使用 HDFS 更改文件权限

您还可以更改 HDFS 文件系统中的文件所有权和权限。

  • 要更改文件所有者和组所有者,请使用-chown命令行选项:
    hdfs dfs -chown -R $HADOOP_USER:$HADOOP_USER  /Users/hadoop 
    
  • 要更改文件权限,请使用-chmod命令行选项。
    hdfs dfs -chmod -R 775 /Users/hadoop
    

将文件复制到 HDFS

The hdfs命令提供-get and -put用于将文件复制到 HDFS 文件系统或从 HDFS 文件系统复制文件的参数。

  • 例如,要将单个文件从本地复制到 HDFS 文件系统:
    hdfs dfs -put ~/testfile.txt /var/log/  
    
  • 使用通配符按目录树形式复制多个文件。
    hdfs dfs -put ~/log/* /var/log/  
    

列出 HDFS 中的文件

在使用Hadoop集群时,您可以通过命令行和GUI查看HDFS文件系统下的文件。

  • Use the -lshdfs 的选项可列出 HDFS 文件系统中的文件。例如,要列出根目录中的所有文件,请使用:
    hdfs dfs -ls / 
    
  • The same command can be used to list files from subdirectories as well.
    hdfs dfs -ls /Users/hadoop 
    

    您应该得到以下输出:

    List files in HDFS (Hadoop)
    List files in HDFS
  • Rather than the command line, Hadoop also provides a graphical explorer to view, download and upload files easily. Browse the HDFS file system on the NameNode port at the following URL:

    http://localhost:9870/explorer.html

    Browse files in HDFS (Hadoop)
    Browse files in HDFS

结论

HDFS 还支持一系列其他应用程序,例如处理大量数据的 MapReduce 作业以及用户身份验证和访问控制机制。 HDFS 还可以与 S3 和 Swift 等其他分布式文件系统相结合,创建将高可用性、低延迟与低成本存储结合起来的混合云解决方案。

在本文中,您了解了如何在 HDFS 文件系统中创建目录结构、更改权限以及使用 HDFS 复制和列出文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 HDFS 中创建目录并复制文件 (Hadoop) 的相关文章

  • Spark 2.0 弃用了“DirectParquetOutputCommitter”,没有它如何生活?

    最近 我们从 HDFS 上的 EMR gt S3 上的 EMR 启用了一致视图的 EMRFS 迁移 我们意识到 Spark SaveAsTable 镶木地板格式 写入 S3 的速度比 HDFS 慢约 4 倍 但我们发现使用 DirectPa
  • Hadoop setInputPathFilter错误

    我正在使用 Hadoop 0 20 2 无法更改 并且我想向我的输入路径添加一个过滤器 数据如下 path1 test a1 path1 test a2 path1 train a1 path1 train a2 我只想处理所有文件trai
  • Cat 文件与 HDFS 中的模式不匹配?

    我正在尝试 cat 与 hadoop HDFS 中的以下模式不匹配的文件 hdfs dfs cat gz 如何捕获所有不以 gz 结尾的文件 编辑 抱歉 但我需要在 Hadoop 中管理文件 显然 hdfs 附带的命令非常少 编辑2 所有文
  • 无法使用 PDI 步骤连接到 HDFS

    我已经配置成功了Hadoop 2 4 in an Ubuntu 14 04 虚拟机 from a 视窗8系统 Hadoop 安装工作绝对正常 而且我还可以从 Windows 浏览器查看 Namenode 附图如下 所以 我的主机名是 ubu
  • 错误:java.io.IOException:错误值类:类 org.apache.hadoop.io.Text 不是类 Myclass

    我的映射器和减速器如下 但我遇到了某种奇怪的异常 我不明白为什么它会抛出这种异常 public static class MyMapper implements Mapper
  • Curl下载到HDFS

    我有这个代码 curl o fileName csv url xargs hdfs dfs moveFromLocal 1 somePath 当我执行此代码时 curl 将请求中的值放入 fileName csv 中 该文件将移动到 HDF
  • Hadoop 安全模式恢复 - 花费太长时间!

    我有一个包含 18 个数据节点的 Hadoop 集群 我在两个多小时前重新启动了名称节点 并且名称节点仍处于安全模式 我一直在寻找为什么这可能花费太长时间 但找不到好的答案 发帖在这里 Hadoop 安全模式恢复 花费大量时间 https
  • 无法从 JAR 文件加载主类

    我有一个 Spark scala 应用程序 我尝试显示一条简单的消息 Hello my App 当我编译它时sbt compile并运行它sbt run没关系 我成功显示了我的消息 但他显示了错误 像这样 Hello my applicat
  • 为什么组合器输入记录的数量比映射的输出数量多?

    Combiner 在 Mapper 之后 Reducer 之前运行 它将接收给定节点上的 Mapper 实例发出的所有数据作为输入 然后它将输出发送到Reducers 因此组合器输入的记录应小于映射输出的记录 12 08 29 13 38
  • 使用 Hadoop 映射两个数据集

    假设我有两个键值数据集 数据集A和B 我们称它们为数据集A和B 我想用 B 组的数据更新 A 组中的所有数据 其中两者在键上匹配 因为我要处理如此大量的数据 所以我使用 Hadoop 进行 MapReduce 我担心的是 为了在 A 和 B
  • Hadoop安装问题:

    我跟着this http www bogotobogo com Hadoop BigData hadoop Install on ubuntu single node cluster phpHadoop 安装教程 不幸的是 当我运行全部启动
  • hive查询无法通过jdbc生成结果集

    我是 Hive 和 Hadoop 的新手 在我的教程中 我想将表创建为 import java sql SQLException import java sql Connection import java sql ResultSet im
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 这个 Java 语法是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 java中的是什么意思 https stackoverflow com questions 12649572 what does the type in java mean 在下面的代码中 Itera
  • 如何通过sparkSession向worker提交多个jar?

    我使用的是火花2 2 0 下面是我在 Spark 上使用的 java 代码片段 SparkSession spark SparkSession builder appName MySQL Connection master spark ip
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功
  • 使用Spring批处理从HDFS读取文件

    我必须编写一个 Spring 批处理 它将从 HDFS 读取文件并更新 MySQL DB 中的数据 HDFS 中的源文件包含一些 CSV 格式的报告数据 有人能给我举一个从 HDFS 读取文件的例子吗 Thanks The FlatFile
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • 如何创建 HIVE 表来读取分号分隔值

    我想创建一个 HIVE 表 该表将以分号分隔的值读取 但我的代码不断给出错误 有没有人有什么建议 CREATE TABLE test details Time STRING Vital STRING sID STRING PARTITION
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以

随机推荐

  • Linux Sed 分支:条件文本处理

    分支于sed允许您在 sed 脚本中创建条件工作流程 根据输入或特定条件 sed 可以选择执行一组命令而不是另一组命令 它类似于编程中的 if then else 结构 让我们深入研究一些示例来了解 sed 中的分支机制 目录 hide 1
  • 使用 read_pickle 读取 Pandas 中的 Pickle 文件

    read pickle in Pandas允许您加载腌制的 Pandas 对象 它可以加载数据 例如数据框和使用保存的系列熊猫 to pickle method 在本教程中 我们将揭示其语法 将 pickle 文件加载到 DataFrame
  • 在 Linux 上恢复已删除的文件(初学者教程)

    您是否曾经错误地删除过重要文件 谁不呢 好的 但是我可以恢复它们吗 在这篇文章中 您将了解如何使用不同文件系统上的各种程序在 Linux 上恢复已删除的文件 您将了解如何从 SD 卡 HDD 和不同分区上的已删除分区恢复已删除的文件Linu
  • 掌握 seq 命令:Linux 中的序列生成

    The seqLinux 中的命令用于生成数字序列 如果您想生成一个简单的增量列表或具有特定格式的复杂序列 seq可以做到这一点 让我们深入了解它的强大功能 目录 hide 1 生成从 1 到指定数字的序列 2 生成两个数字之间的序列 3
  • 在 Linux 中设置永久和系统范围的环境变量

    在 Linux 中 环境变量是一个可用于提供系统不同部分的配置和数据的值 这些变量充当数据的占位符 使应用程序和 shell 能够更顺畅地相互交互 环境变量的一个主要优点是它们促进进程之间的值共享 从而实现对系统行为各方面的集中控制 目录
  • 使用 to_html 将 Python Pandas DataFrame 转换为 HTML 表

    This to html函数于Pandas允许您转换您的数据框到 HTML 表中 它具有高度可定制性和灵活性 使您能够根据您的要求定制 HTML 输出结果 这可能包括设计数据的样式和格式以适合您所需的演示文稿 目录 hide 1 语法和参数
  • 使用 Pandas DataFrame loc 属性进行基于标签的访问

    The loc财产在Pandas允许基于标签的索引 这意味着您使用标签 如列名和行索引 来访问特定的行和列数据框 Unlike iloc 它使用基于整数的索引 loc主要是基于标签的 使其能够处理具有有意义标签的数据 目录 hide 1 P
  • 使用Python random模块生成随机数

    随机数生成是编程中的一个基本概念 对于统计采样 模拟 数据生成 随机算法甚至游戏等各种任务至关重要 在本教程中 我们将介绍基本概念 如何生成不同类型的随机数 如整数 浮点数和特定范围内的随机数 以及随机数提供的各种函数 random mod
  • Linux Syslog 服务器和日志管理

    在这篇文章中 我们将讨论 Linux Syslog 服务器以及如何管理日志 如果您想保护您的系统 您必须知道该系统中发生了什么 您可以使用日志来做到这一点 通过日志 您可以诊断问题并确定系统和应用程序的运行状况 在上一篇文章中 我们讨论了如
  • 如何在 Shell 脚本中提取文件名和扩展名

    要从 shell 脚本中的文件路径中提取文件名和扩展名 您可以使用 基本名称 命令 这是一个如何使用的示例basename来提取filename and 扩大从给定的文件路径 usr bin env bash Define a file p
  • 如何在 Ubuntu 和 Debian 上删除 PPA 存储库

    个人包档案 PPA 是 Ubuntu 和 Debian 用户安装和更新官方存储库中未提供的软件包的便捷方法 虽然 PPA 是宝贵的资源 但它们也可能会过时 不受支持 甚至可能有害 在这种情况下 了解如何将它们从系统中删除非常重要 在本文中
  • 如何在 Debian 11/10 上安装 Sublime

    崇高的文字是一个功能强大的文本编辑器 也可用于 Linux 系统 它有很多你一定喜欢使用的功能 本教程将帮助您使用个人软件包存档 PPA 在 Debian 11 Debian 10 和 Debian 8 Linux 系统上安装 Sublim
  • /tmp 文件夹 100% 已满 ( cPanel )

    Issue 今天 我发现 tmp 显示 100 已满 但是 从 tmp 删除所有文件后 它仍然显示已满 经过谷歌搜索后 我发现有一些文件从 tmp 文件夹中删除 但仍然被进程使用 占用了所有空间 通常这些文件由apache或mysql使用
  • Linux 中的 tar 命令及实际示例

    tar 命令是 Linux 用户的必备工具 特别是对于那些使用大量文件的用户 tar 命令允许您将多个文件组合成一个存档文件 还可以从存档中提取文件 在本文中 我们将为初学者提供有关 Linux 中 tar 命令基础知识的全面指南 什么是
  • 什么是 SNMP(简单网络管理协议)?

    简单网络管理协议 SNMP 是任何网络管理员工具箱中不可或缺的一部分 作为许多网络监控策略的支柱 SNMP 在维护健康且功能正常的网络方面发挥着关键作用 本文旨在深入研究 SNMP 的复杂性 重点介绍其功能 应用程序以及为什么它在当今的网络
  • 如何在 Ubuntu 20.04 上安装 Ruby

    Ruby 是动态的开源编程语言 其重点是编码简单性和提高生产力 第一个 Ruby 版本 0 95 于 1995 年发布 此后 在过去几年中发布了几个稳定的 Ruby 版本 在撰写本教程时 Ruby 2 7 0 是可用于开发的最新稳定版本 本
  • OpenSSL:使用 SSL 证书、私钥和 CSR

    OpenSSL 是一个强大的 功能齐全的开源工具包 它实现了 SSL 和 TLS 协议以及通用加密库 它广泛用于管理各种系统中的 SSL TLS 证书 私钥和证书签名请求 CSR 在本文中 我们将探讨如何使用 OpenSSL 来处理 SSL
  • 如何通过 PPA 在 Ubuntu 18.04 和 16.04 上安装 Libreoffice 6.2

    LibreOffice 6 2 已发布并可在官方向后移植 PPA用于 Ubuntu 系统上的安装 它是一款免费的办公套件应用程序 与以前的版本相比有许多增强功能 它包含了许多有用的功能 使办公室管理变得非常容易 它是专门针对 Linux 桌
  • 使用 Python 函数

    在编程时 我们经常重复执行相同的任务 例如执行数字加法或使用不同的输入打印相同的语句 这些是一般示例 但对于这些示例 您愿意编写相同的代码 10 次还是只编写一次 这就是函数的目的 它们是仅针对特定任务定义一次的代码片段 并具有可重用的功能
  • 在 HDFS 中创建目录并复制文件 (Hadoop)

    HDFS is the Hadoop分布式文件系统 它是一个用于大型数据集的分布式存储系统 支持容错 高吞吐量和可扩展性 它的工作原理是将数据划分为在集群中的多台机器上复制的块 这些块可以并行写入或读取 从而提高吞吐量和容错能力 HDFS