java hdfs是什么,讓我們一起了解一下?
HDFS是指被設計成適合運行在通用硬件上的分布式文件系統,是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。
hdfs的特點是什么?
1、硬件故障:
硬件故障是常態,而不是異常。整個HDFS系統將由數百或數千個存儲著文件數據片段的服務器組成。實際上它里面有非常巨大的組成部分,每一個組成部分都很可能出現故障,這就意味著HDFS里的總是有一些部件是失效的,因此,故障的檢測和自動快速恢復是HDFS一個很核心的設計目標。
2、數據訪問:
運行在HDFS之上的應用程序必須流式地訪問它們的數據集,它不是運行在普通文件系統之上的普通程序。HDFS被設計成適合批量處理的,而不是用戶交互式的。重點是在數據吞吐量,而不是數據訪問的反應時間,POSIX的很多硬性需求對于HDFS應用都是非必須的,去掉POSIX一小部分關鍵語義可以獲得更好的數據吞吐率。
3、大數據集:
運行在HDFS之上的程序有很大量的數據集。典型的HDFS文件大小是GB到TB的級別。所以,HDFS被調整成支持大文件。它應該提供很高的聚合數據帶寬,一個集群中支持數百個節點,一個集群中還應該支持千萬級別的文件。
實戰操作,JAVA操作HDFS案例如下:
Jar包引入,pom.xml:
??????org.apache.hadoop??????hadoop-common??????2.8.0??????????????org.apache.hadoop??????hadoop-hdfs??????2.8.0
將本地文件上傳到hdfs服務器:
/** ?????*?上傳文件到hdfs上 ?????*/ ????@Test ????public?void?upload()?throws?IOException?{ ????????Configuration?conf?=?new?Configuration(); ????????conf.set("fs.defaultFS","hdfs://hzq:9000"); ????????FileSystem?fs?=?FileSystem.get(conf); ????????fs.copyFromLocalFile(new?Path("/home/hzq/jdk1.8.tar.gz"),new?Path("/demo")); ????}
以上就是小編今天的分享了,希望可以幫助到大家。