直接貼代碼
"""
Created on Thu Aug 9 09:09:56 2018
@author: admin
"""
from hdfs import Client
client = Client("http://localhost:50070",root="/",timeout=100,session=False)
def main():
client.list("/")
'''
status(hdfs_path, strict=True),
hdfs_path:就是hdfs路徑
strict:設置爲True時,如果hdfs_path路徑不存在就會拋出異常,
如果設置爲False,如果路徑爲不存在,則返回None
'''
client.status("/")
client.makedirs("/test")
client.rename("/test","/new_name")
'''
delete(hdfs_path, recursive=False)
recursive:刪除文件和其子目錄.
設置爲False如果不存在,則會拋出異常,默認爲False
'''
client.delete("/new_name")
'''
upload(hdfs_path, local_path, overwrite=False, n_threads=1, temp_dir=None,
chunk_size=65536,progress=None, cleanup=True, **kwargs)
overwrite:是否是覆蓋性上傳文件
n_threads:啓動的線程數目
temp_dir:當overwrite=true時,遠程文件一旦存在,則會在上傳完之後進行交換
chunk_size:文件上傳的大小區間
progress:回調函數來跟蹤進度,爲每一chunk_size字節。它將傳遞兩個參數,
文件上傳的路徑和傳輸的字節數。一旦完成,-1將作爲第二個參數
cleanup:如果在上傳任何文件時發生錯誤,則刪除該文件
'''
client.upload("/test","/opt/bigdata/hadoop/NOTICE.txt")
client.download("/test/NOTICE.txt","/home")
'''
read(*args, **kwds)
hdfs_path:hdfs路徑
offset:設置開始的字節位置
length:讀取的長度(字節爲單位)
buffer_size:用於傳輸數據的字節的緩衝區的大小。默認值設置在HDFS配置。
encoding:制定編碼
chunk_size:如果設置爲正數,上下文管理器將返回一個發生器產生的每一chunk_size字節而不是一個類似文件的對象
delimiter:如果設置,上下文管理器將返回一個發生器產生每次遇到分隔符。此參數要求指定的編碼。
progress:回調函數來跟蹤進度,爲每一chunk_size字節(不可用,如果塊大小不是指定)。
它將傳遞兩個參數,文件上傳的路徑和傳輸的字節數。稱爲一次與- 1作爲第二個參數。
'''
with client.read("/test/NOTICE.txt") as reader:
print (reader.read())