[python作业AI毕业设计博客]大数据Hadoop工具python教程1-HDFS Hadoop分布式文件系统...
Hadoop分布式文件系統(tǒng)(HDFS:Hadoop Distributed File System)是基于Java的分布式文件系統(tǒng)
分布式,可擴(kuò)展和可移植的文件系統(tǒng),旨在跨越大型商用服務(wù)器集群。 HDFS的設(shè)計(jì)基于谷歌文件系統(tǒng)GFS(https://ai.google/research/pubs/pub51)。與許多其他分布式文件系統(tǒng)一樣,HDFS擁有大量數(shù)據(jù)并提供對(duì)許多客戶端的透明訪問。
HDFS以可靠和可擴(kuò)展的方式存儲(chǔ)非常大的文件:PB(1PB=1024TB,,針對(duì)非常大的文件)、GB和MB。它使用塊結(jié)構(gòu)文件系統(tǒng)來完成的。單個(gè)文件被拆分為固定大小的塊,存儲(chǔ)在集群中的計(jì)算機(jī)上。由多個(gè)塊組成的文件通常不會(huì)將所有塊存儲(chǔ)在一臺(tái)機(jī)器。
HDFS通過復(fù)制塊并在集群中分發(fā)副本來確保可靠性。默認(rèn)復(fù)制因子為3,表示每個(gè)塊在群集上存在三次。即使單機(jī)出現(xiàn)故障,塊級(jí)復(fù)制也保證數(shù)據(jù)可用。
本章首先介紹HDFS的核心概念,并解釋如何使用本機(jī)內(nèi)置命令與文件系統(tǒng)進(jìn)行交互。
HDFS概述
HDFS的體系結(jié)構(gòu)設(shè)計(jì)由兩個(gè)進(jìn)程組成:一個(gè)NameNode進(jìn)程保存文件系統(tǒng)的元數(shù)據(jù),一個(gè)或多個(gè)DataNode進(jìn)程存儲(chǔ)塊。 NameNode和DataNode可以在一臺(tái)機(jī)器上運(yùn)行,但HDFS集群通常包含專機(jī)運(yùn)行NameNode進(jìn)程,可能還有數(shù)千臺(tái)運(yùn)行DataNode進(jìn)程的計(jì)算機(jī)。
NameNode是HDFS中最重要的機(jī)器。它存儲(chǔ)整個(gè)文件系統(tǒng)的元數(shù)據(jù):文件名,文件權(quán)限以及每個(gè)文件對(duì)應(yīng)塊的位置。為了允許快速訪問,NameNode將整個(gè)元數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)在內(nèi)存中。
NameNode還跟蹤塊的復(fù)制,確保機(jī)器故障不會(huì)導(dǎo)致數(shù)據(jù)丟失。由于NameNode存在單點(diǎn)故障,可以使用第2個(gè)NameNode生成主NameNode內(nèi)存結(jié)構(gòu)的快照,從而降低NameNode失敗時(shí)數(shù)據(jù)丟失的風(fēng)險(xiǎn)。
在HDFS中存儲(chǔ)塊的機(jī)器稱為DataNode。 DataNode通常是具有大存儲(chǔ)容量的商用機(jī)器。與NameNode不同,少量DataNode失敗,HDFS將繼續(xù)正常運(yùn)行。當(dāng)DataNode失敗時(shí),NameNode將復(fù)制丟失的塊,以保證最少?gòu)?fù)制數(shù)。
HDFS交互
與HDFS交互主要使用hdfs的腳本
$ hdfs COMMAND [-option <arg>]參考資料
- python測(cè)試開發(fā)項(xiàng)目實(shí)戰(zhàn)-目錄
- python工具書籍下載-持續(xù)更新
- python 3.7極速入門教程 - 目錄
- 原文地址
- 本文涉及的python測(cè)試開發(fā)庫
- [本文相關(guān)海量書籍下載](https://github.com/china-testing/python-api-tesing/blob/master/books.md
通用文件操作
在HDFS上執(zhí)行基本文件操作操作,使用dfs子命令。 dfs命令支持類似Linux shell中的許多文件操作。
$ hdfs COMMAND [-option <arg>]注意:hdfs命令以系統(tǒng)用戶的權(quán)限運(yùn)行。 以下示例用“hduser”的用戶運(yùn)行。
列出HDFS中目錄的內(nèi)容,請(qǐng)使用-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數(shù)據(jù)
$ 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
總結(jié)
以上是生活随笔為你收集整理的[python作业AI毕业设计博客]大数据Hadoop工具python教程1-HDFS Hadoop分布式文件系统...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [雪峰磁针石博客]大数据Hadoop工具
- 下一篇: python入门系列:深入Python的