草庐IT

hadoop - 使用 NiFi 调度 Hadoop 批处理

根据NiFi'shomepage,它“支持数据路由、转换和系统中介逻辑的强大且可扩展的有向图”。过去几个月我一直在使用NiFi,不禁想知道为什么不将它也用于调度批处理。假设我有一个用例,其中数据流入Hadoop,由一系列Hive\MapReduce作业处理,然后导出到一些外部NoSql数据库以供某些系统使用。使用NiFi来摄取数据并将数据流入Hadoop是NiFi的一个用例。但是,使用Nifi来安排Hadoop上的作业(“Oozie-like”)是一个我没有遇到过其他人实现的用例,并且由于它似乎完全有可能实现,我试图了解是否有原因不要这样做。在NiFi上完成这一切的好处是,人们将在一个

hadoop - yarn 容量调度程序中的队列内抢占

我在yarn中使用hadoop2.9.2进行内部队列抢占。我的队列间抢占工作正常,我设置了以下两个参数:https://docs.hortonworks.com/HDPDocuments/HDP3/HDP-3.1.0/data-operating-system/content/properties_for_configuring_intra-queue_preemption.html但队列内抢占仍然不起作用。任何线索都会有所帮助。 最佳答案 根据您的意见,您应该使用较低的数字来表示较高的优先级,因为第1个优先级总是比第20个优先级更

hadoop - 如何在不同节点集群中调度hadoop map任务

我有一个唯一的map程序,它有超过10张map。我的集群有5个节点,我的问题是:我可以安排将哪些映射任务运行到哪个节点吗?比如让1号映射运行在node1,3号映射运行在node3,9号映射运行在node5。如果我可以这样做,那么需要对我的代码和配置文件进行哪些更改。顺便说一句,我使用HDFS。谢谢! 最佳答案 无法在Hadoop中为map任务到节点映射设置亲和性。调度程序根据数据位置/槽状态自动决定在何处运行Map任务。 关于hadoop-如何在不同节点集群中调度hadoopmap任务,

hadoop - 在 hadoop 容量调度程序中增加用户容量

我是Hadoop新手。在编写我的MapReduce作业后,我决定在共享集群上测试它们。我最初在单个节点上测试了我的工作。但后来我添加了4个节点以在5(1+4)上对其进行测试。容量调度程序显示以下信息:队列配置容量百分比:100.0%用户限制:100%优先支持:否maptask容量:10个插槽已用容量:2(容量的20.0%)正在运行的任务:2活跃用户:用户“juancito”:2(已用容量的100.0%)因为对于1个节点我有2个槽,而现在对于5个节点我有10个槽,我猜每个节点都有两个槽(如果我错了请纠正我)。现在,调度程序说我只使用了20%的容量。这是否意味着我实际上并没有使用我添加的4

hadoop - hadoop 公平调度程序的最大池数是多少?

hadoop1公平调度器的最大池数是多少?Agooglesearch看看documentation没有透露任何信息。 最佳答案 fairschedulersource中的Queues和Container都是使用Heap数据结构,我找不到Pool结构,我猜它们是相似的,IE只是受堆空间的限制。 关于hadoop-hadoop公平调度程序的最大池数是多少?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

algorithm - 集群作业调度算法

我正在寻找适用于以下问题的算法:有多台电脑(具体数目未知)。每台计算机从某个中央队列中提取作业,完成作业,然后提取下一个。工作是由一些用户组产生的。有些用户提交了很多工作,有些则提交了一点。作业消耗相等的CPU时间(不是真的,只是近似值)。中央队列在调度作业时应该是公平的。此外,提交大量作业的用户应该拥有一些最小的资源份额。我正在为这个调度寻找一个好的算法。考虑了两个候选人:类似Hadoop的公平调度程序。这里的问题是:当我的集群大小未知时,我在哪里可以获得最小份额?将一些惩罚与每个用户相关联。安排用户的工作时增加惩罚。使用将作业调度给用户的概率作为1-(归一化惩罚)。这有点像步幅调度

sorting - Hadoop 中的 Terasort 调度程序

在Hadoop的Terasort实现中,有一个名为TeraScheduler的调度程序。通读代码后,调度程序基本上执行以下操作:选择split次数最少的宿主对于该主机,选择主机数量最少的固定数量的拆分,并将它们“固定”在该主机上执行。“未选择的”拆分将从该主机中删除。对所有主机重复。我不明白这个时间表背后的基本原理。它如何比默认调度程序执行得更好(无论如何,默认调度程序是什么)?有没有论文解释它的好处? 最佳答案 好处有两个:(1)尽可能使排序本地化。(2)跨机器平均分配工作两者都旨在提高性能。

hadoop - 了解 hadoop 中默认调度程序的技术

我在3个Ubuntu系统12.04中安装了多节点设置。我在所有三个中都使用Hadoop1.2.1。现在我想默认运行哪个调度程序???如何查看Hadoop1.2.1中运行的默认调度器? 最佳答案 hadoop中的默认调度器是JobQueueTaskScheduler,它是一个FIFO调度器。作为默认调度程序,您需要引用mapred-default.xml中的属性mapred.jobtracker.taskScheduler.如果您愿意,可以根据您的要求将默认调度程序更改为CapacityScheduler或FairScheduler。

hadoop - 我们可以根据类型(MR、SPARK)将 hadoop 应用程序分配到公平调度程序队列中吗?

fair-scheduler是否支持基于应用类型的队列分配?就像所有SPARK作业都在Spark_Queue下,而MR作业在MR_Queue下一样。 最佳答案 提交/运行Spark作业时,您可以将YARN队列指定为--queue命令行参数、spark.yarn.queueSpark配置参数或SPARK_YARN_QUEUE环境变量。 关于hadoop-我们可以根据类型(MR、SPARK)将hadoop应用程序分配到公平调度程序队列中吗?,我们在StackOverflow上找到一个类似的问

hadoop - 使用 YARN/Hadoop 调度,我可以只抢占某些队列吗?

情况是我正在使用YARN来管理同时运行Spark和Hadoop的集群。通常作业没有相对大量的输入数据,但是有一系列偶尔运行的HadoopMapReduce作业确实有大量的输入数据并且可以长时间占用集群,因此其他用户不能运行他们小得多的工作。我希望能够做的是在集群为空时将整个集群用于大量作业,但如果另一个用户提交了作业,我想使用Preempt调度功能来杀死一些大型作业中的容器,因此它们可以腾出时间来处理较小的作业。但是,我不希望任何其他作业被抢占,只有大量作业被抢占。根据我的发现,似乎可以使用公平调度程序来执行此操作,为大量作业定义一个队列,并以某种方式仅在大量作业队列上启用抢占。我想问