hadoop与数据库的关系

w8ntj3qf  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(391)

好的..我试着在网上和这个网站上搜索这个问题的答案,这个问题似乎是一个非常基本的问题。我完全不懂大数据处理。
我想知道hdfs和数据库之间的关系。使用hdfs时,数据必须是某种nosql格式吗?在使用hdfs时,是否有一个特定的数据库总是附带在一起?我知道cloudera提供hadoop解决方案,他们使用hbase。
我可以使用关系数据库作为hadoop的本机数据库吗?

llew8vvj

llew8vvj1#

hadoop的优点是它能够通过复制来存储数据,所以hadoop不能“关闭”,比如说sqlserver,也没有什么意义。有hbase、hive和pig环境(以及其他环境)可以设置为使用hadoop,它们看起来和感觉上都像常规sql语言。如果你想在15分钟内从0到大数据,就像他们说的那样,有什么东西可以玩的话,就去看看hortonworks的沙盒吧。希望这有帮助。

t9eec4r0

t9eec4r02#

你真正想达到什么目的,你的问题还不清楚。
hdfs和数据库之间只有间接的关系。hdfs是一个文件系统,而不是一个数据库。hadoop是并行处理框架(mapreduce)和文件系统hdfs的组合。并行处理框架使用一种叫做and inputformat的东西从hdfs文件系统中获取数据块。一些数据库,如:oracle nosql database(ondb)、cassandra、riak,还有一些数据库能够返回包含其数据的inputformat,因此它们可以作为mapreduce处理的源,就像来自hdfs的数据一样。
再说一遍,你想做什么?
hadoop和hdfs通常在您拥有大量尚未聚合和/或结构化为更高级别处理所需的模型的数据时非常有用。有时(尽管可以定量地强制执行的次数比实际需要的次数更多),hadoop可以用来执行更高级别的处理,而这通常是在另一种利用体面模型的处理/存储技术中完成的。想想google instant,搜索索引的创建以前是在mapreduce上运行的,后来他们开发了一个模型,现在使用了更好的方法。。无法在mapreduce上单独使用google instant。

xlpyo6sf

xlpyo6sf3#

I want to know the relationship between HDFS and databases.

根本没有 relation 因此,在2之间。如果您还想找到一些相似之处,那么这两种方法之间唯一的共同点就是提供 store 数据。但这类似于任何fs和db的组合。例如mysql和ext3。你说你在mysql中存储数据,但最终你的数据会被存储在fs上。通常人们在hadoop集群上使用nosql数据库(如hbase)来利用hdfs提供的并行性和分布式行为。

Is it always necessary that to use HDFS, the data be in a some NoSQL format?

实际上没有什么比 NoSQL format . 您可以将hdfs用于任何类型的数据、文本、二进制、xml等。

Is there a specific database that always comes attached when using HDFS?

不,唯一与hdfs结合的是 MapReduce framework . 显然,您可以创建一个db来使用hdfs。人们经常在hdfs之上使用nosqldbs。有几种选择,如cassandra、hbase等,完全由您决定使用哪一种。

Can I use a relational database as the native database for Hadoop?

没有ootb特性允许这样做。此外,将RDBMS与hadoop结合使用也没有多大意义。hadoop是为rdbms不是合适的选择而开发的,比如处理数据的pbs,处理非结构化数据等等。尽管如此,你不能认为hadoop是rdbmb的替代品。两者的目标完全不同。
编辑:
通常人们使用nosqldbs(比如hbase、cassandra)和hadoop。在hadoop中使用这些dbs仅仅是一个配置问题。你不需要任何连接程序来实现这一点。除了@doctor dan提出的观点之外,选择nosqldbs代替sqldbs还有其他一些原因。有一件事是 size . 这些nosqldbs提供了很好的水平伸缩性,使您能够轻松地存储数据的pbs。你可以扩展传统的系统,但是垂直的。另一个原因是 complexity 大量的数据。使用这些数据库的地方大多处理高度非结构化的数据,而使用传统系统处理这些数据并不容易。例如,传感器数据、日志数据等。
基本上,我不明白为什么sqoop会存在。为什么我们不能直接在hadoop上使用sql数据呢。
尽管hadoop非常擅长处理大数据需求,但它并不是满足所有需求的解决方案。它不适合实时需要。假设你是一家在线交易公司,拥有非常庞大的数据集。您发现使用hadoop可以非常轻松地处理这些数据。但问题是,hadoop不能满足客户的实时需求。这就是sqoop出现的地方。它是一个导入/导出工具,允许您在sqldb和hadoop之间移动数据。您可以将大数据移动到hadoop集群中,在那里进行处理,然后使用sqoop将结果推回到sqldb中,以满足客户的实时需求。
hth公司

相关问题