hadoop4v特性,hadoop4.x
Hadoop(4)-Python借助pyhdfs对大数据的分布式文件系统分布式文件系统的全部操作详细实例演示_11150105的技术博客_博客
1、安装执行如下命令即可安装
点安装pyhdfs注意,在窗子上对虚拟机上的分布式文件系统进行远程操作时,需要在本机的主机文件中填写互联网协议(互联网协议的缩写)和主机名的映射关系如这里:
2、pyhdfs与分布式文件系统常用的交互操作在分布式文件系统上指定目录下创建一个文件夹,然后查看此文件夹是否存在导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
fs.mkdirs(/test_01 )
file_or_dirs=fs.listdir(/)
打印(文件目录)执行结果为:
[test_01]在分布式文件系统上获取用户的根目录导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
home_dir=fs.get_home_directory()
打印(主目录)执行结果如下:
/用户/root获取可用的节点导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
active _ nodes=fs。get _ active _ NameNode()
打印(活动节点)执行结果如下:这里因为是单机版环境
192.168.1.204:50070在分布式文件系统上创建一个文件,并写入内容:导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
all_files=fs.listdir(/)
打印(所有文件)
fs.create(/demo_01.txt ,bhello world ,override=True)
all_files=fs.listdir(/)
打印(所有文件)执行结果如下:
[test_01]
[demo_01.txt , test_01]删除文件导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
all_files=fs.listdir(/)
打印(所有文件)
fs.delete(/demo_01.txt )
all_files=fs.listdir(/)
打印(所有文件)执行结果如下:
[demo_01.txt , test_01]
[test_01]查看文件是否存在导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
打印(fs.exists(/demo_01.txt ))
all_files=fs.listdir(/)
打印(所有文件)
fs.create(/demo_01.txt ,bhello world )
打印(fs.exists(/demo_01.txt ))
all_files=fs.listdir(/)
打印(所有文件)执行结果如下:
错误的
[test_01]
真实的
[demo_01.txt , test_01]读取文件内容:导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
f=fs.open(/demo_01.txt )
ctx=f.read().解码(“utf-8”)
打印(ctx)
f.close()执行内容如下:
你好世界向文件中增加内容导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
f=fs.open(/demo_01.txt )
ctx=f.read().解码(“utf-8”)
打印(ctx)
f.close()
fs.append(/demo_01.txt ,b\nhello hadoop!)
打印(-)
f=fs.open(/demo_01.txt )
ctx=f.read().解码(“utf-8”)
打印(ctx)
f.close()执行结果如下:
你好世界
你好hadoop!
-查看文件属性导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
状态=fs。get _ file _ status(/demo _ 01。txt’)
打印(状态)执行结果如下:
文件状态(访问时间=1623756299241,块大小=134217728,childrenNum=0,fileId=16389,组=supergroup ,长度=39,修改时间=1623756729466,所有者=root ,路径后缀= ,权限=644 ,复制=1,存储策略=0,类型=文件)查看当前文件的状态导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
状态=fs。list _ status(/demo _ 01。txt’)
打印(状态)执行结果如下:
[文件状态(访问时间=1623756299241,blockSize=134217728,childrenNum=0,fileId=16389,group=supergroup ,length=39,modificationTime=1623756729466,owner=root ,pathSuffix= ,权限=644 ,复制=1,storagePolicy=0,type=FILE)]list_status和获取文件状态的区别是列表_状态可以查看路径
重命名文件或文件夹导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
print(fs.listdir(/))
fs.rename(/test_01 ,/test_02 )
print(fs.listdir(/))执行结果如下:
[demo_01.txt , test_01]
[demo_01.txt , test_02]将本地文件拷贝至分布式文件系统导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
print(fs.listdir(/))
fs。copy _ from _ local( demo _ 02。 txt ,/demo_02.txt )
print(fs.listdir(/))执行结果如下:
[demo_01.txt , test_02]
[demo_01.txt , demo_02.txt , test_02]将分布式文件系统上文件拷贝到本地导入pyhdfs
导入操作系统
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
print(os.listdir( . ))))
fs.copy_to_local(/demo_01.txt , demo_01.txt )
print(os.listdir( . ))))执行结果如下:
[app1 , db.sqlite3 , demo_02.txt , manage.py , mysite1 , static , templates , test.py]
[app1 , db.sqlite3 , demo_01.txt , demo_02.txt , manage.py , mysite1 , static , templates , test.py]获取路径的总览信息(目录,文件个数等)导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
总结=fs。get _ content _ summary(/)
打印(摘要)执行结果如下:
内容摘要(目录计数=2,ecPolicy= ,文件计数=2,长度=56,配额=9223372036854775807,snapshotDirectoryCount=0,snapshotFileCount=0,snapshotLength=0,snapshotSpaceConsumed=0,spaceConsumed=56,spaceQuota=-1,typeQuota={})查看文件的校验和导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
check _ sum=fsget _ file _ checksum(/demo _ 01。txt’)
打印(校验和)执行结果如下:
文件校验和(算法= MD5-of-0md 5-of-512 rc32 c ,字节= 00000000000000000036 e 110 BCF 9265 D7 F5 FDD 153161 b 162d 8000000000000 ,长度=28)设置文件所有者导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
打印(fs。get _ file _ status(/demo _ 01。txt ))
fs.set_owner(/demo_01.txt ,owner=hdfs )
打印(fs。get _ file _ status(/demo _ 01。txt ))执行结果如下:
文件状态(访问时间=1623761641609,块大小=134217728,childrenNum=0,fileId=16389,组=supergroup ,长度=39,修改时间=1623756729466,所有者=root ,路径后缀= ,权限=644 ,复制=1,存储策略=0,类型=文件)
文件状态(访问时间=1623761641609,块大小=134217728,childrenNum=0,fileId=16389,组=supergroup ,长度=39,修改时间=1623756729466,所有者=hdfs ,路径后缀= ,权限=644 ,复制=1,存储策略=0,类型=文件)设置文件的副本数导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
打印(fs。get _ file _ status(/demo _ 01。txt ))
fs。set _ replication(/demo _ 01。txt ,复制=5)
打印(fs。get _ file _ status(/demo _ 01。txt ))执行结果如下:
文件状态(访问时间=1623761641609,块大小=134217728,childrenNum=0,fileId=16389,组=supergroup ,长度=39,修改时间=1623756729466,所有者=root ,路径后缀= ,权限=644 ,复制=1,存储策略=0,类型=文件)
文件状态(访问时间=1623761641609,块大小=134217728,childrenNum=0,fileId=16389,组=supergroup ,长度=39,修改时间=1623756729466,所有者=root ,路径后缀= ,权限=644 ,复制=5,存储策略=0,类型=文件)设置文件的修改时间和访问时间,修改时间和访问时间均为长整形,指从1970年一月一日开始的毫秒导入pyhdfs
if __name__==__main__ :
fs=pyhdfs .HDFS客户端(hosts= 192。168 .1 .204:50070 ,用户名=root )
打印(fs。get _ file _ status(/demo _ 01。txt ))
fs.set_times(/demo_01.txt ,modificationTime=1623756729499,accessTime=1623761641699)
打印(fs。get _ file _ status(/demo _ 01。txt ))执行结果如下:
文件状态(访问时间=1623761641609,块大小=134217728,childrenNum=0,fileId=16389,组=supergroup ,长度=39,修改时间=1623756729466,所有者=root ,路径后缀= ,权限=644 ,复制=5,存储策略=0,类型=文件)
文件状态(访问时间=1623761641699,块大小=134217728,childrenNum=0,fileId=16389,组=supergroup ,长度=39,修改时间=1623756729499,所有者=root ,路径后缀= ,权限=644 ,复制=5,存储策略=0,类型=文件)以上基本是pyhdfs的全部操作
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。