cari
Rumahpangkalan datatutorial mysqlhadoop深入研究:(一)hdfs介绍

hadoop深入研究:(一)hdfs介绍

Jun 07, 2016 pm 04:30 PM
hhadoophdfsmemperkenalkanPenyelidikan yang mendalam

转载请注明出处: http://blog.csdn.net/lastsweetop/article/details/8992505 hdfs设计原则 1.非常大的文件: 这里的非常大是指几百MB,GB,TB.雅虎的hadoop集群已经可以存储PB级别的数据 2.流式数据访问: 基于一次写,多次读。 3.商用硬件: ? ? ? ?hdfs的

转载请注明出处: http://blog.csdn.net/lastsweetop/article/details/8992505

hdfs设计原则

1.非常大的文件:

这里的非常大是指几百MB,GB,TB.雅虎的hadoop集群已经可以存储PB级别的数据

2.流式数据访问:

基于一次写,多次读。

3.商用硬件: ? ? ?

?hdfs的高可用是用软件来解决,因此不需要昂贵的硬件来保障高可用性,各个生产商售卖的pc或者虚拟机即可。

hdfs不适用的场景

1.低延迟的数据访问 ??

hdfs的强项在于大量的数据传输,递延迟不适合他,10毫秒以下的访问可以无视hdfs,不过hbase可以弥补这个缺陷。


2.太多小文件 ? ? ? ? ? ? ?

?namenode节点在内存中hold住了整个文件系统的元数据,因此文件的数量就会受到限制,每个文件的元数据大约150字节

?1百万个文件,每个文件只占一个block,那么就需要300MB内存。你的服务器可以hold住多少呢,你可以自己算算


3.多处写和随机修改 ??

目前还不支持多处写入以及通过偏移量随机修改

hdfs block

为了最小化查找时间比例,hdfs的块要比磁盘的块大很多。hdfs块的大小默认为64MB,和文件系统的块不同,

hdfs的文件可以小于块大小,并且不会占满整个块大小。

查找时间在10ms左右,数据传输几率在100MB/s,为了使查找时间是传输时间的1%,块的大小必须在100MB左右

一般都会设置为128MB


有了块的抽象之后,hdfs有了三个优点:


1.可以存储比单个磁盘更大的文件

2.存储块比存储文件更加简单,每个块的大小都基本相同

3.使用块比文件更适合做容错性和高可用

namenodes和datanodes

hdfs集群有两种类型的节点,一种为master及namenode,另一种为worker及datanodes。


namenode节点管理文件系统的命名空间。它包含一个文件系统的树,所有文件和目录的原数据都在这个树上,这些

信息被存储在本地磁盘的两个文件中,image文件和edit?log文件。文件相关的块存在哪个块中,块在哪个地方,这些

信息都是在系统启动的时候加载到namenode的内存中,并不会存储在磁盘中。


datanode节点在文件系统中充当的角色就是苦力,按照namenode和client的指令进行存储或者检索block,并且周期性

的向namenode节点报告它存了哪些文件的block


namenode节点如果不能使用了,那么整个hdfs就玩完了。为了防止这种情况,有两种方式可供选择

1.namenode通过配置元数据可以写到多个磁盘中,最好是独立的磁盘,或者NFS.

2.使用第二namenode节点,第二namenode节点平时并不作为namenode节点工作,它的主要工作内容就是定期根据编辑

日志(edit log)合并命名空间的镜像(namespace image),防止编辑日志过大,合并后的image它自己也保留一份,等着

namenode节点挂掉,然后它可以转正,由于不是实时的,有数据上的损失是很可能发生的。


hdfs Federation

namenode节点保持所有的文件和块的引用在内存中,这就意味着在一个拥有很多很多文件的很大的集群中,内存就成为了一个

限制的条件,hdfs federation在hadoop 2.x的被实现了,允许hdfs有多个namenode节点,每个管hdfs的一部分,比如一个管/usr,

另一个管/home,每个namenode节点是相互隔离的,一个挂掉不会影响另外一个。


hdfs的高可用

不管namenode节点的备份还是第二namenode节点都只能保证数据的恢复,并不能保证hdfs的高可用性,一旦namenode节点挂掉

就会产生单点故障,这时候要手动去数据备份恢复,或者启用第二节点,新的namenode节点在对外服务器要做三件事:

1.把命名空间的镜像加载到内存中

2.重新运行编辑日志

3.接受各个datanode节点的block报告

在一个大型一点的hdfs系统中,等这些做完需要30分钟左右。


2.x已经支持了高可用性(HA),通过一对namenode热备来实现,一台挂掉,备机马上提供无中断服务

要实现HA,要做三点微调:

1.namenode节点必须使用高可用的共享存储。

2.datanode节点必须象两个namenode节点发送block报告

3.客户端做改动可以在故障时切换到可用的namenode节点上,而且要对用户是无感知的


failover和fencing

将备份namenode激活的过程就叫failover,管理激活备份namenode的系统叫做failover controller,

zookeeper就可以担当这样的角色,可以保证只有一个节点处于激活状态。

必须确认原来的namenode已经真的挂掉了,很多时候只是网络延迟,如果备份节点已经激活了,

原来的节点又可以提供服务了,这样是不行的,防止原来namenode活过来的过程就叫fencing。

可以用STONITH实现, STONITH可以做到直接断电把原namenode节点fencing掉




作者:lastsweetop 发表于2013-5-31 15:31:20 原文链接

阅读:104 评论:0 查看评论

hadoop深入研究:(一)hdfs介绍

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah beberapa alat yang boleh anda gunakan untuk memantau prestasi MySQL?Apakah beberapa alat yang boleh anda gunakan untuk memantau prestasi MySQL?Apr 23, 2025 am 12:21 AM

Bagaimana untuk memantau prestasi MySQL dengan berkesan? Gunakan alat seperti mysqladmin, showglobalstatus, perconamonitoring dan pengurusan (PMM), dan mysql enterprisemonitor. 1. Gunakan mysqladmin untuk melihat bilangan sambungan. 2. Gunakan showglobalstatus untuk melihat nombor pertanyaan. 3.Pmm menyediakan data prestasi terperinci dan antara muka grafik. 4.MySqLenterPrisemonitor menyediakan fungsi pemantauan yang kaya dan mekanisme penggera.

Bagaimana MySQL berbeza dari SQL Server?Bagaimana MySQL berbeza dari SQL Server?Apr 23, 2025 am 12:20 AM

Perbezaan antara MySQL dan SQLServer adalah: 1) MySQL adalah sumber terbuka dan sesuai untuk sistem web dan tertanam, 2) SQLServer adalah produk komersil Microsoft dan sesuai untuk aplikasi peringkat perusahaan. Terdapat perbezaan yang signifikan antara kedua -dua enjin penyimpanan, pengoptimuman prestasi dan senario aplikasi. Apabila memilih, anda perlu mempertimbangkan saiz projek dan skalabiliti masa depan.

Dalam senario apa yang mungkin anda pilih SQL Server melalui MySQL?Dalam senario apa yang mungkin anda pilih SQL Server melalui MySQL?Apr 23, 2025 am 12:20 AM

Dalam senario aplikasi peringkat perusahaan yang memerlukan ketersediaan yang tinggi, keselamatan maju dan integrasi yang baik, SQLServer harus dipilih bukannya MySQL. 1) SQLServer menyediakan ciri peringkat perusahaan seperti ketersediaan tinggi dan keselamatan maju. 2) Ia bersepadu dengan ekosistem Microsoft seperti VisualStudio dan PowerBI. 3) SQLServer melakukan pengoptimuman prestasi yang sangat baik dan menyokong jadual yang dioptimumkan memori dan indeks penyimpanan lajur.

Bagaimanakah MySQL mengendalikan set aksara dan kolasi?Bagaimanakah MySQL mengendalikan set aksara dan kolasi?Apr 23, 2025 am 12:19 AM

Mysqlmanagescharactersetsandcollationsbyusingutf-8asthedefault, membolehkanConfigurationatdatabase, table, andcolumnlevels, andrequiringcarefulalignmenttoavoidmismatches.1) setdefaultcharactandcollationforadatabase.2) configurecharact

Apa yang dicetuskan di MySQL?Apa yang dicetuskan di MySQL?Apr 23, 2025 am 12:11 AM

Pencetus MySQL adalah prosedur yang disimpan secara automatik yang dikaitkan dengan jadual yang digunakan untuk melakukan satu siri operasi apabila operasi data tertentu dilakukan. 1) Definisi dan fungsi pencetus: Digunakan untuk pengesahan data, pembalakan, dan lain-lain. 2) Prinsip kerja: Ia dibahagikan kepada sebelum dan selepas, dan menyokong pencetus peringkat baris. 3) Contoh Penggunaan: Boleh digunakan untuk merakam perubahan gaji atau mengemas kini inventori. 4) Kemahiran Debugging: Gunakan perintah showtriggers dan showcreateTrigger. 5) Pengoptimuman Prestasi: Elakkan operasi kompleks, menggunakan indeks, dan menguruskan urus niaga.

Bagaimana anda membuat dan mengurus akaun pengguna di MySQL?Bagaimana anda membuat dan mengurus akaun pengguna di MySQL?Apr 22, 2025 pm 06:05 PM

Langkah -langkah untuk membuat dan mengurus akaun pengguna di MySQL adalah seperti berikut: 1. Buat pengguna: Gunakan createuser'newuser '@' localhost'identifiedby'password '; 2. Menetapkan Kebenaran: Gunakan Grantselect, Insert, UpdateOnmydatabase.to'newuser'@'localhost '; 3. Betulkan Ralat Kebenaran: Gunakan RevokeAllPrivileSeonMydatabase.from'newuser'@'localhost '; kemudian menetapkan semula kebenaran; 4. Kebenaran Pengoptimuman: Gunakan Showgra

Bagaimana MySQL berbeza dari Oracle?Bagaimana MySQL berbeza dari Oracle?Apr 22, 2025 pm 05:57 PM

MySQL sesuai untuk pembangunan pesat dan aplikasi kecil dan sederhana, sementara Oracle sesuai untuk perusahaan besar dan keperluan ketersediaan yang tinggi. 1) MySQL adalah sumber terbuka dan mudah digunakan, sesuai untuk aplikasi web dan perusahaan kecil dan sederhana. 2) Oracle berkuasa dan sesuai untuk perusahaan besar dan agensi kerajaan. 3) MySQL menyokong pelbagai enjin penyimpanan, dan Oracle menyediakan fungsi peringkat perusahaan yang kaya.

Apakah kelemahan menggunakan MySQL berbanding dengan pangkalan data hubungan lain?Apakah kelemahan menggunakan MySQL berbanding dengan pangkalan data hubungan lain?Apr 22, 2025 pm 05:49 PM

Kelemahan MySQL berbanding dengan pangkalan data relasi lain termasuk: 1. Isu Prestasi: Anda mungkin menghadapi kesesakan apabila memproses data berskala besar, dan PostgreSQL melakukan lebih baik dalam pertanyaan kompleks dan pemprosesan data besar. 2. Skalabiliti: Keupayaan skala mendatar tidak sebaik Google Spanner dan Amazon Aurora. 3. Batasan Fungsian: Tidak sebaik PostgreSQL dan Oracle dalam Fungsi Lanjutan, beberapa fungsi memerlukan lebih banyak kod dan penyelenggaraan tersuai.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna