📜  使用Python Snakebite 在 HDFS 中创建文件

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

Hadoop 是一种流行的用Java编写的大数据框架。但是没有必要使用Java来处理 Hadoop。也可以使用其他一些编程语言,如Python、 C++ 。我们可以使用管道 API 或 Hadoop 管道为 Hadoop 编写 C++ 代码。 Hadoop 管道在套接字的帮助下启用任务跟踪器。

Python也可用于为 Hadoop 编写代码。 Snakebite 是用于与 HDFS 建立通信的流行库之一。使用 Snakebite 包提供的Python客户端库,我们可以轻松编写适用于 HDFS 的Python代码。它使用protobuf消息直接与 NameNode 通信。 Python客户端库直接与 HDFS 配合使用,无需对hdfs dfs进行系统调用。

先决条件:应安装 Snakebite 库。

如果没有,请确保 Hadoop 正在运行,然后使用以下命令启动所有守护程序。

start-dfs.sh             // start your namenode datanode and secondary namenode

start-yarn.sh            // start resourcemanager and nodemanager

任务:使用mkdir()方法使用蛇咬包在 HDFS 中创建目录。

步骤 1:在您的本地目录中在所需位置创建一个名为create_directory.py的文件

cd Documents/        # Changing directory to Documents(You can choose as per your requirement)

touch create_directory.py      # touch command is used to create file in linux enviournment.        

第 2 步:create_directory.py Python文件中编写以下代码。

Python
# importing the package
from snakebite.client import Client
  
# the below line create client connection to the HDFS NameNode
client = Client('localhost', 9000)
  
# create directories mentioned in mkdir() methods first argument i.e. in List format
for p in client.mkdir(['/demo/demo1', '/demo2'], create_parent=True):
            print p


mkdir()获取我们要创建的目录路径的列表。 create_parent=True确保如果未创建父目录,则应首先创建它。在我们的例子中,将首先创建 demo 目录,然后在其中创建 demo1。

第三步:运行create_directory.py文件,观察结果。

python create_directory.py   // this will create directory's as mentioned in mkdir() argument.

在上图中‘result’ :True表示我们已成功创建目录。

第 4 步:我们可以手动或使用以下命令检查目录是否已创建。

hdfs dfs -ls /       // list all the directory's in root folder

hdfs dfs -ls /demo   // list all the directory's present in demo folder

在上图中,我们可以观察到我们已经成功创建了所有目录。