目錄
HDFS简介
首頁 資料庫 mysql教程 Hadoop权威指南学习笔记三

Hadoop权威指南学习笔记三

Jun 07, 2016 pm 04:12 PM
hadoop hdfs 聲明 學習 指南 筆記 簡介

HDFS简介 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习参考,有什么不到之处还望指出,一起学习一起进步。 Hadoop说白了就是一个提供了处理分析大数据的文件集群,其中最重要的无疑是HDFS(Hadoop Distributed File System)即Had

HDFS简介

 

声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习参考,有什么不到之处还望指出,一起学习一起进步。

Hadoop说白了就是一个提供了处理分析大数据的文件集群,其中最重要的无疑是HDFS(Hadoop Distributed File System)即Hadoop分布式文件系统。

 

1、

HDFS是一种以流式数据访问模式(一次写入多次读取的模式)存储超大文件的系统。其不需要的高端的硬件系统,普通市面上的硬件就能满足要求。

目前不适合应用HDFS的有:低延迟的数据访问、大量小的文件、多用户写入任意修改文件等。

2、

HDFS存储以块为单位,通常块大小为64M。之所以要分为这么大的块,主要是为了减少寻址时间,因为目前来看,数据传输速率越来越快,对于HDFS处理大数据时,如果频繁的寻址必然会使得运行时间变长。

HDFS集群有两种节点名称节点和多个数据节点。其中名称节点充当管理者,数据节点充当工作者。名称节点相当于HDFS文件树上的枝干分叉点,而数据节点则标注着所有块的存储信息。所以名称节点的丢失就意味着HDFS的瘫痪。因此Hadoop提供了两种机制解决这一问题:

一种是复制组成文件系统元数据的持久状态文件。即在本地磁盘写入的同时也写入一个远程NFS挂载。

另一种是设置一个二级名称节点。

3、

HDFS提供命令行接口的交互。

4、

Hadoop是一个抽象的文件系统概念,HDFS是其中的一个具体实现,java抽象类org.apache.hadoop.fs.FileSystem展示了Hadoop的一个文件系统,而且有几个具体实现。

\

\

 

 

如上图所示,Hadoop提供了许多文件的接口,通常是通过URL来确定使用何种文件系统实现交互。

5、

Hadoop是java实现的所以,java接口无疑是其中重中之重,下面是java接口的一些具体实现。

(1) 数据读取:

 

使用URL读取数据

Java识别Hadoop文件系统的URL方案,就是通过一个FsUrlStreamHandlerFactory实例来调用在URL中的setURLStreamHandlerFactory方法。

注意:这种方法在java虚拟机中只能被调用一次,所以通常设置为static,也因此如果程序其他部件(可能不是在你控制的第三方部件)设置了一个URLStreamHandlerFactory,那么久再也不能从Hadoop读取数据。

 

代码:

\

 

输入运行:

% hadoop URLCat hdfs://localhost/user/tom/test.txt

结果:

Hello world Hello world

Hello world

Hello world Hell【本文来自鸿网互联 (http://www.68idc.cn)】o world

 

使用FileSystem API读取数据

直接看代码吧,注意看注释

 

 

(2) 数据写入

FileSystem类有一系列创建文件的方法。

public FSDataOutputStream create(Pathf) throws IOException

用create创建文件是可用exists()判断其父目录是否存在。

还有一个用于传递回调接口的重载方法 Progressable,如此一来,我们所写的应用就会被告知数据写入数据节点的进度。

package org.apache.hadoop.util;

public interface Progressable{

publicvoid progress();

}

创建文件的还可以用如下方法:

Public FSDataOutputStream append(Pathf) throws IOException

此方法允许在打开文件的末尾追加数据。

 

(3) 目录

FileSystem题目了创建目录的方法:

public Boolean mkdirs(Path f) thorwsIOException

(4) 查询文件系统

FileStatus类封装了文件系统中文件和目录的元数据,包括文件长度、块大小、副本、修改时间、所有者以及许可信息。

FileSystem的getFileStatus()提供了获取一个文件或目录的状态对象方法。

如果只是判断一个文件是否存在,则可以使用前文提到的exists(Path f)方法。

 

Hadoop有时要查询批量文件时通常要用到通配符,所以它为执行通配符提供了

Hadoop支持与Unix bash相同的通配符两个FileSystem方法:

public FileStatus[] globStatus (PathpathPattern) throws IOException

public FileStatus[] globStatus (Path pathPattern,PathFileter filter)throws IOException

通配符:

\

 

(5) 删除数据

FileSystem中的delete()方法可以永久删除目录。

public Boolean delete(Path f,Boolean recursive) throwsIOException

 

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

小紅書筆記怎麼刪除 小紅書筆記怎麼刪除 Mar 21, 2024 pm 08:12 PM

小紅書筆記怎麼刪除?在小紅書APP中是可以編輯筆記的,多數的用戶不知道小紅書筆記如何的刪除,接下來就是小編為用戶帶來的小紅書筆記刪除方法圖文教程,有興趣的用戶快來一起看看吧!小紅書使用教學小紅書筆記怎麼刪除1、先打開小紅書APP進入到主頁面,選擇右下角【我】進入到專區;2、之後在我的專區,點擊下圖所示的筆記頁面,選擇要刪除的筆記;3、進入到筆記頁面,右上角【三個點】;4、最後下方會展開功能欄,點選【刪除】即可完成。

VSCode 設定中文:完全指南 VSCode 設定中文:完全指南 Mar 25, 2024 am 11:18 AM

VSCode設定中文:完整指南在軟體開發中,VisualStudioCode(簡稱VSCode)是一個常用的整合開發環境。對於使用中文的開發者來說,將VSCode設定為中文介面可以提升工作效率。本文將為大家提供一個完整的指南,詳細介紹如何將VSCode設定為中文介面,並提供具體的程式碼範例。第一步:下載安裝語言包開啟VSCode後,點選左

小紅書發布過的筆記不見了怎麼辦?它剛發的筆記搜不到的原因是什麼? 小紅書發布過的筆記不見了怎麼辦?它剛發的筆記搜不到的原因是什麼? Mar 21, 2024 pm 09:30 PM

作為一名小紅書的用戶,我們都曾經遇到過發布過的筆記突然不見了的情況,這無疑讓人感到困惑和擔憂。在這種情況下,我們該怎麼辦呢?本文將圍繞著「小紅書發布過的筆記不見了怎麼辦」這個主題,為你詳細解答。一、小紅書發布過的筆記不見了怎麼辦?首先,不要驚慌。如果你發現筆記不見了,保持冷靜是關鍵,不要慌張。這可能是由於平台系統故障或操作失誤引起的。檢查發布記錄很簡單。只要打開小紅書App,點擊“我”→“發布”→“所有發布”,就可以查看自己的發布記錄。在這裡,你可以輕鬆找到之前發布的筆記。 3.重新發布。如果找到了之

一起學習word根號輸入方法 一起學習word根號輸入方法 Mar 19, 2024 pm 08:52 PM

在word編輯文字內容時,有時會需要輸入公式符號。有的小夥子們不知道在word根號輸入的方法,小面就讓小編跟小夥伴們一起分享下word根號輸入的方法教學。希望對小夥伴們有幫助。首先,開啟電腦上的Word軟體,然後開啟要編輯的文件,並將遊標移到需要插入根號的位置,參考下方的圖片範例。 2.選擇【插入】,再選擇符號裡的【公式】。如下方圖片紅色圈的部分內容所示:3.接著選擇下方的【插入新公式】。如下方圖片紅色圈的部分內容所示:4.選擇【根式】,再選擇適當的根號。如下方圖片紅色圈的部分內容所示:

Python ORM 效能基準測試:比較不同 ORM 框架 Python ORM 效能基準測試:比較不同 ORM 框架 Mar 18, 2024 am 09:10 AM

物件關聯映射(ORM)框架在python開發中扮演著至關重要的角色,它們透過在物件和關聯式資料庫之間建立橋樑,簡化了資料存取和管理。為了評估不同ORM框架的效能,本文將針對以下流行框架進行基準測試:sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM測試方法基準測試使用了一個包含100萬筆記錄的SQLite資料庫。測試對資料庫執行了以下操作:插入:向表中插入10,000條新記錄讀取:讀取表中的所有記錄更新:更新表中所有記錄的單一欄位刪除:刪除表中的所有記錄每個操作

Python ORM 在大數據專案的應用 Python ORM 在大數據專案的應用 Mar 18, 2024 am 09:19 AM

物件關係映射(ORM)是一種程式設計技術,允許開發人員使用物件程式語言來操作資料庫,而無需直接編寫sql查詢。 python中的ORM工具(例如SQLAlchemy、Peewee和DjangoORM)簡化了大數據專案的資料庫互動。優點程式碼簡潔性:ORM消除了編寫冗長的SQL查詢的需要,這提高了程式碼簡潔性和可讀性。資料抽象化:ORM提供了一個抽象層,將應用程式程式碼與資料庫實作細節隔離開來,提高了靈活性。效能最佳化:ORM通常會使用快取和批次操作來優化資料庫查詢,從而提高效能。可移植性:ORM允許開發人員在不

從零開始學習Go語言中的main函數 從零開始學習Go語言中的main函數 Mar 27, 2024 pm 05:03 PM

標題:從零開始學習Go語言中的main函數Go語言作為一種簡潔、高效的程式語言,備受開發者青睞。在Go語言中,main函數是一個入口函數,每個Go程式都必須包含main函數作為程式的入口點。本文將從零開始介紹如何學習Go語言中的main函數,並提供具體的程式碼範例。一、首先,我們需要安裝Go語言的開發環境。可前往官方網站(https://golang.org

Golang桌面應用開發指南 Golang桌面應用開發指南 Mar 18, 2024 am 09:45 AM

Golang桌面應用程式開發指南隨著網路的普及和數位時代的來臨,桌面應用程式在我們的生活和工作中扮演著越來越重要的角色。而作為一種強大的程式語言,Golang(Go語言)在桌面應用程式開發領域也逐漸嶄露頭角。本文將為您介紹如何使用Golang來開發桌面應用程序,並提供具體的程式碼範例,幫助您快速入門和掌握開發技巧。首先,我們需要了解一些基本概念和工具。在Gol

See all articles