[python作业AI毕业设计博客]大数据Hadoop工具python教程1-HDFS Hadoop分布式文件系统...
Hadoop分布式文件系統(HDFS:Hadoop Distributed File System)是基于Java的分布式文件系統
分布式,可擴展和可移植的文件系統,旨在跨越大型商用服務器集群。 HDFS的設計基于谷歌文件系統GFS(https://ai.google/research/pubs/pub51)。與許多其他分布式文件系統一樣,HDFS擁有大量數據并提供對許多客戶端的透明訪問。
HDFS以可靠和可擴展的方式存儲非常大的文件:PB(1PB=1024TB,,針對非常大的文件)、GB和MB。它使用塊結構文件系統來完成的。單個文件被拆分為固定大小的塊,存儲在集群中的計算機上。由多個塊組成的文件通常不會將所有塊存儲在一臺機器。
HDFS通過復制塊并在集群中分發副本來確??煽啃?。默認復制因子為3,表示每個塊在群集上存在三次。即使單機出現故障,塊級復制也保證數據可用。
本章首先介紹HDFS的核心概念,并解釋如何使用本機內置命令與文件系統進行交互。
HDFS概述
HDFS的體系結構設計由兩個進程組成:一個NameNode進程保存文件系統的元數據,一個或多個DataNode進程存儲塊。 NameNode和DataNode可以在一臺機器上運行,但HDFS集群通常包含專機運行NameNode進程,可能還有數千臺運行DataNode進程的計算機。
NameNode是HDFS中最重要的機器。它存儲整個文件系統的元數據:文件名,文件權限以及每個文件對應塊的位置。為了允許快速訪問,NameNode將整個元數據結構存儲在內存中。
NameNode還跟蹤塊的復制,確保機器故障不會導致數據丟失。由于NameNode存在單點故障,可以使用第2個NameNode生成主NameNode內存結構的快照,從而降低NameNode失敗時數據丟失的風險。
在HDFS中存儲塊的機器稱為DataNode。 DataNode通常是具有大存儲容量的商用機器。與NameNode不同,少量DataNode失敗,HDFS將繼續正常運行。當DataNode失敗時,NameNode將復制丟失的塊,以保證最少復制數。
HDFS交互
與HDFS交互主要使用hdfs的腳本
$ hdfs COMMAND [-option <arg>]參考資料
- python測試開發項目實戰-目錄
- python工具書籍下載-持續更新
- python 3.7極速入門教程 - 目錄
- 原文地址
- 本文涉及的python測試開發庫
- [本文相關海量書籍下載](https://github.com/china-testing/python-api-tesing/blob/master/books.md
通用文件操作
在HDFS上執行基本文件操作操作,使用dfs子命令。 dfs命令支持類似Linux shell中的許多文件操作。
$ hdfs COMMAND [-option <arg>]注意:hdfs命令以系統用戶的權限運行。 以下示例用“hduser”的用戶運行。
列出HDFS中目錄的內容,請使用-ls命令:
$ hdfs dfs -mkdir /user $ hdfs dfs -mkdir /user/hduser $ hdfs dfs -ls / Found 1 items drwxr-xr-x - hduser_ supergroup 0 2019-01-21 16:37 /user $ hdfs dfs -ls -R /user drwxr-xr-x - hduser_ supergroup 0 2019-01-21 16:45 /user/hduserput與get數據
$ hdfs dfs -put /home/hduser_/input.txt /user/hduser $ hdfs dfs -cat /user/hduser/input.txt https://china-testing.github.io/ $ dfs -get /user/hduser/input.txt /home/hduser_/test.txt命令參考
$ hdfs dfs Usage: hadoop fs [generic options][-appendToFile <localsrc> ... <dst>][-cat [-ignoreCrc] <src> ...][-checksum <src> ...][-chgrp [-R] GROUP PATH...][-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...][-chown [-R] [OWNER][:[GROUP]] PATH...][-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>][-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>][-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] <path> ...][-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>][-createSnapshot <snapshotDir> [<snapshotName>]][-deleteSnapshot <snapshotDir> <snapshotName>][-df [-h] [<path> ...]][-du [-s] [-h] [-x] <path> ...][-expunge][-find <path> ... <expression> ...][-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>][-getfacl [-R] <path>][-getfattr [-R] {-n name | -d} [-e en] <path>][-getmerge [-nl] [-skip-empty-file] <src> <localdst>][-help [cmd ...]][-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]][-mkdir [-p] <path> ...][-moveFromLocal <localsrc> ... <dst>][-moveToLocal <src> <localdst>][-mv <src> ... <dst>][-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>][-renameSnapshot <snapshotDir> <oldName> <newName>][-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...][-rmdir [--ignore-fail-on-non-empty] <dir> ...][-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]][-setfattr {-n name [-v value] | -x name} <path>][-setrep [-R] [-w] <rep> <path> ...][-stat [format] <path> ...][-tail [-f] <file>][-test -[defsz] <path>][-text [-ignoreCrc] <src> ...][-touchz <path> ...][-truncate [-w] <length> <path> ...][-usage [cmd ...]]Generic options supported are: -conf <configuration file> specify an application configuration file -D <property=value> define a value for a given property -fs <file:///|hdfs://namenode:port> specify default filesystem URL to use, overrides 'fs.defaultFS' property from configurations. -jt <local|resourcemanager:port> specify a ResourceManager -files <file1,...> specify a comma-separated list of files to be copied to the map reduce cluster -libjars <jar1,...> specify a comma-separated list of jar files to be included in the classpath -archives <archive1,...> specify a comma-separated list of archives to be unarchived on the compute machinesThe general command line syntax is: command [genericOptions] [commandOptions]更多幫助可以 hdfs dfs -usage 或 hdfs dfs -help
總結
以上是生活随笔為你收集整理的[python作业AI毕业设计博客]大数据Hadoop工具python教程1-HDFS Hadoop分布式文件系统...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [雪峰磁针石博客]大数据Hadoop工具
- 下一篇: IP地址、子网掩码、网关、路由器等知识积