📜  Hadoop – Python Snakebite CLI 客户端,其用法和命令参考

📅  最后修改于: 2021-10-27 06:50:20             🧑  作者: Mango

Python Snakebite 带有一个 CLI(命令行界面)客户端,它是一个基于 HDFS 的客户端库。必须知道 NameNode 的主机名或 IP 地址以及 NameNode 的 RPC 端口才能使用Python snakebite CLI。我们可以通过简单地创建我们自己的配置文件来列出所有这些端口值和主机名,其中包含 NameNode 的所有这些详细信息,例如 Localhost 的主机名和 RPC(远程过程调用)端口。在我们的演示中,我们将使用更简单的方式来使用蛇咬 CLI,通过直接将此端口和主机值传递给命令本身。远程过程调用或 RPC 是一种动态分配端口的方法,用于服务器和远程管理应用程序。

我们在这里使用的主机名和端口值可以在系统的fs.default.name属性中的hadoop/etc/hadoop/core-site.xml文件中找到。我们可以访问 Snakebite CLI 文档以获取有关 Snakebite CLI 配置的更多信息。

我们还可以在以下命令的帮助下检查fs.default.name属性值。

hdfs getconf -confKey fs.defaultFS      # We can also use fs.default.name but fs.defaultFS is most favourable

让我们在系统中的 core-site.xml 文件中手动查看fs.default.name属性值以了解主机或端口。

我们可以看到我们的默认主机是localhost或端口是9000

Snakebite CLI 的使用

借助Python snakebite CLI,我们可以轻松实现我们在hdfs dfs 中使用的大部分命令,如ls、mv、rm、put、get、du、df等。所以让我们执行一些基本操作来了解 Snakebite CLI作品。

通过命令行中的路径使用 Snakebite CLI – 例如: hdfs://namenode_host:port/path

1.列出HDFS根目录下所有可用目录

句法:

snakebite ls hdfs://localhost:9000/

例子:

snakebite ls hdfs://localhost:9000/

列出所有在 HDFS 根目录中可用的目录

2. 从 HDFS 中删除文件

句法:

snakebite rm  hdfs://localhost:9000/

例子:

snakebite rm  hdfs://localhost:9000/data.txt

3. 创建目录(在我的例子中目录的名称是 /sample)

句法:

snakebite mkdir hdfs://localhost:9000/

例子:

snakebite mkdir hdfs://localhost:9000/sample

4. 删除目录(在我的例子中目录的名称是 /sample)

snakebite rmdir hdfs://localhost:9000/sample

现在通过上面的例子,我们了解了如何实现和使用蛇咬命令行界面。蛇咬CLI和hdfs dfs的重要区别在于蛇咬是一个完整的Python客户端库,不使用任何Java库与HDFS通信。蛇咬库的命令与 HDFS 的交互速度比hdfs dfs更快。

CLI 命令参考

Python Snakebite 库提供了许多使用 HDFS 的工具。在简单的snakebite命令的帮助下,可以列出所有可供参考的开关和命令。

snakebite     

我们可以观察到hdfs中所有可用的命令dfs类似的命令在蛇咬命令行界面中也可用。让我们执行更多操作以更好地了解蛇咬 CLI。

使用以下命令检查蛇咬版本

snakebite --ver

1. cat:用于打印文件数据

例子:

snakebite cat hdfs://localhost:9000/test.txt

2. copyToLocal(或)get:将文件/文件夹从hdfs存储复制到本地文件系统。

句法:

snakebite copyToLocal  

例子:

snakebite copyToLocal  hdfs://localhost:9000/test.txt /home/dikshant/Pictures

3. touchz:它创建一个空文件。

句法:

snakebite touchz  hdfs://localhost:9000/

例子:

snakebite touchz  hdfs://localhost:9000/demo_file

4. du:显示磁盘使用情况统计

snakebite du  hdfs://localhost:9000/    # show disk usage of root directory

snakebite du  hdfs://localhost:9000/Hadoop_File   # show disk usage of /Hadoop_File directory i.e. already available

5. stat:它会给出目录或路径的最后修改时间。简而言之,它将提供目录或文件的统计信息

snakebite stat  hdfs://localhost:9000/

snakebite stat  hdfs://localhost:9000/Hadoop_File

6 setrep:该命令用于更改HDFS中文件/目录的复制因子。默认情况下对于存储在 HDFS 中的任何内容它都是 3(在 hdfs core-site.xml 中设置)

snakebite setrep 5  hdfs://localhost:9000/test.txt

在下图中,我们可以观察到我们将test.txt文件的复制因子从 1 更改为 5。

同样,我们可以使用Python snakebite CLI 对 HDFS 执行多项操作。