首页 \ 问答 \ 什么是分布式系统?

什么是分布式系统?

其它还有分布式的文件系统,操作系统,到底什么是分布式啊?
更新时间:2022-11-11 10:11

最满意答案

hadoop主要是hdfs和mapreduce两大框架,hdfs用来存储文件,mapreduce用来处理文件进行计算。1.首先,对于hdfs,dn负责存储文件,以及文件的副本,而nn负责存储文件的元数据,例如文件的块信息,以及位置信息等,这些数据会保存在nn的内存中,当存在很多的小文件时,每个小文件nn存储的元数据都是一样的,所以N个小文件会占用nn大量的内存,增大nn的负担。
2.而对于mapreduce来说,map的输入默认是一个输入文件对应一个map任务,所以如果不做特殊处理在使用mapreduce处理这些小文件时会一个小文件产生一个map。这样的话每个map只处理一个小文件,会造成很大的资源浪费,同时也会降低mapreduce的执行效率。
以上是我自己的理解,可能还有其他的原因。建议去网上自行搜索一些文章阅读。

其他回答

1、存储文件的时候需要指定存储的路径,这个路径是hdfs的路径。而不是哪个节点的某个目录。比如./hadoop fs -put localfile hdfspat
一般操作的当前路径是/user/hadoop比如执行./hadoop fs -ls .实际上就相当于./hadoop fs -ls /user/hadoop
2、hdfs本身就是一个文件系统,在使用的时候其实不用关心具体的文件是存储在哪个节点上的。如果需要查询可以通过页面来查看,也可以通过api来实现查询。

相关问答

更多
  • 1、存储文件的时候需要指定存储的路径,这个路径是HDFS的路径。而不是哪个节点的某个目录。比如./hadoop fs -put localfile hdfspat 一般操作的当前路径是/user/hadoop比如执行./hadoop fs -ls .实际上就相当于./hadoop fs -ls /user/hadoop 2、HDFS本身就是一个文件系统,在使用的时候其实不用关心具体的文件是存储在哪个节点上的。如果需要查询可以通过页面来查看,也可以通过API来实现查询。
  • hdfs存储文件是按照块来的,hdfs的块大小默认是256M,可以自己设置,一个大文件会被切分成很多块存储到不同的地方,同时每个块也会备份多份。
  • 这不能被实现在现有的Hadoop。 时设置的目录中,文件中的目录信息被读入Hadoop的输入已被确定 房东当时就完成所有文件的MapReduce,Hadoop的还是会等待输入,但房东可以想像,你能不能给Hadoop的信号,让他停止运行
  • hadoop主要是hdfs和mapreduce两大框架,hdfs用来存储文件,mapreduce用来处理文件进行计算。1.首先,对于hdfs,dn负责存储文件,以及文件的副本,而nn负责存储文件的元数据,例如文件的块信息,以及位置信息等,这些数据会保存在nn的内存中,当存在很多的小文件时,每个小文件nn存储的元数据都是一样的,所以N个小文件会占用nn大量的内存,增大nn的负担。 2.而对于mapreduce来说,map的输入默认是一个输入文件对应一个map任务,所以如果不做特殊处理在使用mapreduce处 ...
  • 如果你使用类似TextInputFormat东西,问题是每个文件至少有一个分割,所以地图数量的上限是文件的数量,在你的情况下,你将有很多非常小的文件结束许多映射器处理每个非常少的数据。 为了解决这个问题,你应该使用CombineFileInputFormat ,它可以将多个文件打包到同一个CombineFileInputFormat中(我认为最多可以限制块的大小),所以对于这种格式,映射器的数量将独立于文件的数量,它将取决于关于数据量。 您将不得不通过从CombineFileInputFormt扩展来创建自 ...
  • 这里还有一个替代方案,这仍然是@Andrew在他的评论中指出的遗留方法,但是需要额外的步骤将输入文件夹作为缓冲区来接收小文件,并及时将它们推送到tmp目录并合并它们,将结果推回输入。 第1步:创建一个tmp目录 hadoop fs -mkdir tmp 第2步:在某个时间点将所有小文件移动到tmp目录 hadoop fs -mv input/*.txt tmp 第3步 - 在hadoop-streaming jar的帮助下合并小文件 hadoop jar $HADOOP_HOME/share/hadoo ...
  • 如果文件都是相同的“架构”,那么就像CSV或JSON一样。 然后,欢迎您编写一个非常基本的Pig / Spark作业来读取整个文件夹的小文件,然后将其写回到其他地方,这很可能会根据HDFS块大小将所有文件合并为更大的文件。 您还提到了Hive,因此对小文件使用外部表,并使用CTAS查询创建一个单独的表,从而创建一个MapReduce作业,就像Pig一样。 IMO,如果可能的话,最佳解决方案是设置Hadoop的“上游”系统,它将较小的文件批处理为较大的文件,然后将它们转储到HDFS。 Apache NiFi是 ...
  • 也许你可以查看PivotalHD的DataLoader,它使用更快的map job并行加载数据。 检查此链接PivotalHD Dataloader 。 May be you can look into DataLoader of PivotalHD which loads data using map job parallel which is faster. Check this link PivotalHD Dataloader.
  • 我想将它们存储在Cassandra的单个节点中,我将如何使用Hector以编程方式执行此操作? 您需要在cassandra中创建一个键空间。 您可以使用带有命令create keyspace的 cassandra-cli或使用hector方法addKeyspace()在群集节点中创建它。 我使用哪些API来设置columnFamily来处理静态文件以及如何设置架构? 您可以使用BasicColumnDefinition在cassandra中创建列族。 看一下如何在键空间中添加列族的示例代码。 您可能会有一个 ...
  • 这两者都是真的(尽管我认为Brisk现在已经被用于商业产品DataStax Enterprise,而且它本身并没有积极开发)。 Brisk包含CassandraFS(cfs),它是HDFS的直接替代品,因此支持大文件。 在引擎盖下,这些被分成块并存储在Cassandra行/列中。 对于小文件,您可以将数据存储在本机Cassandra行而不是CassandraFS中,而是在行上运行Hadoop作业。 It's both, really (although I think Brisk has now been ...

相关文章

更多

最新问答

更多
  • 如何在Laravel 5.2中使用paginate与关系?(How to use paginate with relationships in Laravel 5.2?)
  • linux的常用命令干什么用的
  • 由于有四个新控制器,Auth刀片是否有任何变化?(Are there any changes in Auth blades due to four new controllers?)
  • 如何交换返回集中的行?(How to swap rows in a return set?)
  • 在ios 7中的UITableView部分周围绘制边界线(draw borderline around UITableView section in ios 7)
  • 使用Boost.Spirit Qi和Lex时的空白队长(Whitespace skipper when using Boost.Spirit Qi and Lex)
  • Java中的不可变类(Immutable class in Java)
  • WordPress发布查询(WordPress post query)
  • 如何在关系数据库中存储与IPv6兼容的地址(How to store IPv6-compatible address in a relational database)
  • 是否可以检查对象值的条件并返回密钥?(Is it possible to check the condition of a value of an object and JUST return the key?)
  • GEP分段错误LLVM C ++ API(GEP segmentation fault LLVM C++ API)
  • 绑定属性设置器未被调用(Bound Property Setter not getting Called)
  • linux ubuntu14.04版没有那个文件或目录
  • 如何使用JSF EL表达式在param中迭代变量(How to iterate over variable in param using JSF EL expression)
  • 是否有可能在WPF中的一个单独的进程中隔离一些控件?(Is it possible to isolate some controls in a separate process in WPF?)
  • 使用Python 2.7的MSI安装的默认安装目录是什么?(What is the default installation directory with an MSI install of Python 2.7?)
  • 寻求多次出现的表达式(Seeking for more than one occurrence of an expression)
  • ckeditor config.protectedSource不适用于editor.insertHtml上的html元素属性(ckeditor config.protectedSource dont work for html element attributes on editor.insertHtml)
  • linux只知道文件名,不知道在哪个目录,怎么找到文件所在目录
  • Actionscript:检查字符串是否包含域或子域(Actionscript: check if string contains domain or subdomain)
  • 将CouchDB与AJAX一起使用是否安全?(Is it safe to use CouchDB with AJAX?)
  • 懒惰地初始化AutoMapper(Lazily initializing AutoMapper)
  • 使用hasclass为多个div与一个按钮问题(using hasclass for multiple divs with one button Problems)
  • Windows Phone 7:检查资源是否存在(Windows Phone 7: Check If Resource Exists)
  • 无法在新线程中从FREContext调用getActivity()?(Can't call getActivity() from FREContext in a new thread?)
  • 在Alpine上升级到postgres96(/ usr / bin / pg_dump:没有这样的文件或目录)(Upgrade to postgres96 on Alpine (/usr/bin/pg_dump: No such file or directory))
  • 如何按部门显示报告(How to display a report by Department wise)
  • Facebook墙贴在需要访问令牌密钥后无法正常工作(Facebook wall post not working after access token key required)
  • Javascript - 如何在不擦除输入的情况下更改标签的innerText(Javascript - how to change innerText of label while not wiping out the input)
  • WooCommerce / WordPress - 不显示具有特定标题的产品(WooCommerce/WordPress - Products with specific titles are not displayed)