我开始知道hadoop是用来存储数据(分布式)的,成本更低,而我们可以将结构化、非结构化和半结构化的数据存储到hdfs中,因为我想到一个问题,youtube提供视频和文本数据,所以他们必须使用hdfs,但当我搜索它时,我很惊讶他们使用的是vitess,bigtable和mariadb。所以我的问题是为什么hdfs不能满足需求?为什么不使用hdfs呢?数据是如何存储在youtube中的,比如视频用户的数据评论等,它们是使用结构化/非结构化或半结构化模式来存储所有不同类型的数据。如果我错了,那么请告诉我,正确的方法是什么?
2条答案
按热度按时间bgibtngc1#
大公司正在结合不同的数据存储技术,因为没有一个适合所有人的解决方案。
hadoop和hdfs非常强大,能够以分布式方式(以分钟为度量单位)弹性地存储和处理大量结构化和非结构化数据(tera字节和peta字节)。其背后的理念是能够在短期内存储任何类型的数据,然后对其进行批处理,并将结果以结构化的方式存储在sql或nosql数据库中,以呈现给最终用户。在这种情况下,hadoop将与其他类型的数据库一起使用。
nosql数据库也是处理大量数据的一个非常好的解决方案,因为与传统的rdbms相比,nosql数据库带来了分布性和可伸缩性,因此能够查询更大容量的结构化数据。但是,它们缺乏正确管理非结构化数据的能力。
公司知道他们将要处理的数据与nosql数据库或rdbms的存储和处理能力相适应,他们会更喜欢这种解决方案而不是hadoop,因为它们更易于管理、使用和查询。
现在,hadoop/hdfs是数据存储和处理的底层解决方案。公司将需要一个用于数据存储和操作的高级接口,并且更喜欢在云中或由大数据Maven在本地操作的 Package 良好的解决方案,而不必担心hadoop集群的复杂配置和体系结构。在这里我们可以找到google big table/query、amazon dynamo db或cloudera/hortonworks解决方案,这些解决方案可以随时使用并得到适当的支持。
a64a0gku2#
hdfs不符合要求?为什么不使用hdfs呢?
hadoop/hdfs只支持批处理。它在读写数据时具有较高的响应时间。在某些用例中,一分钟或几秒钟的响应对业务至关重要,因此必须实时处理大量数据会受到影响。在这种情况下,拥有实时用例的公司通常更喜欢低延迟和高可用性的工具/应用程序,而不是直接向hdfs写入。
hadoop/hdfs确实满足了大公司的大多数数据仓库需求。这里的问题是,您试图使用hadoop/hdfs解决什么问题。如果您是一家大公司,并且希望处理数PB的数据,通常公司会设置一个跨多个节点的大型集群,然后使用spark/mapreduce成批处理存储在系统中的数据。有多个使用案例,公司使用prem大数据集群(通常是hdfs、map reduce、hive等)来处理数据。
数据是如何存储在youtube中的,比如视频用户的数据评论等,它们是使用结构化/非结构化还是半结构化模式来存储所有不同类型的数据。
随着使用prem-hadoop系统的企业节点和集群数量的增加,集群的管理变得越来越困难。因此,在云计算领域,管理基础设施的工作是由云提供商来完成的,而不是由那些希望构建数据解决方案的公司来完成的。这是大公司倾向于降低基础设施成本,转而使用云解决方案而不是使用内部基础设施的主要原因之一。像gcp、aws这样的云提供商有googlebigtable、bigquery等应用程序,这些应用程序支持存储大量记录(petabyte规模),并在需要更多节点/集群时自动缩放。
像youtube这样的视频流平台,netflix确实利用云基础设施和应用程序来流式传输他们的内容。netflix确实使用aws作为存储和处理引擎,还有cassandra和mysql。youtube,虽然我不完全确定,但它使用google云存储和bigtable。
希望这有帮助:)