草庐IT

指挥调度

全部标签

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调度功能来杀死一些大型作业中的容器,因此它们可以腾出时间来处理较小的作业。但是,我不希望任何其他作业被抢占,只有大量作业被抢占。根据我的发现,似乎可以使用公平调度程序来执行此操作,为大量作业定义一个队列,并以某种方式仅在大量作业队列上启用抢占。我想问

hadoop - 配置 EMR 集群以实现公平调度

我正在尝试通过公平调度启动一个emr集群,以便我可以并行运行多个步骤。我看到这可以通过管道(https://aws.amazon.com/about-aws/whats-new/2015/06/run-parallel-hadoop-jobs-on-your-amazon-emr-cluster-using-aws-data-pipeline/)实现,但我已经通过调用awscli[1]的气流作业自动进行了集群管理/创建,所以只更新我的配置会很棒。awsemrcreate-cluster\--applicationsName=SparkName=Ganglia\--ec2-attribu

java - Hadoop 作业调度以及 0.20.203 中映射器较慢的作业

我正在管理一个由多个用户共享的Hadoop集群。我们经常使用极慢的映射器运行作业。例如,我们可能有一个32GB的句子文件(每行一个句子),我们想要对其进行NLP解析(比如每个句子需要100毫秒)。如果block大小为128MB,则为250个映射器。这会填满我们相当小的集群(9个节点乘以每个节点12个映射器是108个映射器),但每个映射器需要很长时间才能完成(数小时)。问题是如果集群是空的并且启动了这样的作业,它会使用集群上的所有映射器。然后,如果其他人想要做一份空头工作,它就会被封锁数小时。我知道较新版本的Hadoop支持FairScheduler中的抢占(我们正在使用Capacity

hadoop - 基于 Nifi 处理器 cron 的调度

下面是我用0300**尝试过的语法?或0301**?,应分别在午夜12:30或1:30运行。我也厌倦了每20分钟在nifi中使用cron运行一次流程,它工作得很好。但我们希望它每天在特定时间运行一次,如上述示例(0300**?或0301**?)。但它不起作用。任何人都可以请指导。谢谢。 最佳答案 艾哈迈德您已使用以下cron表达式在每天中午12:30运行处理器030121/1*?*在这里查看:http://www.cronmaker.com/ 关于hadoop-基于Nifi处理器cron

hadoop - 在 Streamsets 中调度 JDBC 消费者作业

我需要安排JDBC消费者作业在每天早上5点运行,据我所知,当我在早上5点开始作业并在查询间隔中设置24小时时,我可以让作业在凌晨5点运行.但我需要安排第一个实例在早上5点开始,而不是手动启动它(我懒得在早上5点醒来:P)有没有办法实现这个? 最佳答案 (复制myanswerfromAskStreamSets)SDC中没有内置调度程序,但您可以使用cron和StreamSetsCLI启动管道。 关于hadoop-在Streamsets中调度JDBC消费者作业,我们在StackOverflo

hadoop - 当输入文件小于 map 节点时,hadoop 调度程序如何工作

在我的情况下,我需要知道我是否在Jobcontrol中有2个作业然后我有200个map节点我的block大小是64MB所以完整处理数据应该是(64*200=12.8GB)但第一个作业大小是10GB如果map节点有空槽,hadoop会怎么做?Hadoop将处理队列中的第二个作业或等待直到第一个作业映射减少完成并处理第二个作业或其他方式请建议 最佳答案 如果您正在使用Hadoop的FIFO调度程序并以同一用户身份运行2个作业,则只有在运行第一个作业时有足够的可用Map/Reduce插槽可用时,第二个作业才会开始运行。即使有,调度程序也会

hadoop - 使用 jar 选项将作业提交到不同的公平调度程序池

我是Hadoop的新手,尝试在运行时使用hadoopjar选项将同一用户的不同作业提交到公平调度程序的不同池。基于http://osdir.com/ml/hive-user-hadoop-apache/2009-03/msg00162.html中的解决方案,我在运行作业时使用了-D选项。具体来说,我运行了命令:bin/hadoopjarhadoop-examples-1.0.4.jargrepinputoutput'dfs[a-z.]+'-Dpool.name=sample_pool我可以在作业跟踪器调度程序页面中看到池,但作业仍提交给用户池。我发现jar选项不支持-D选项:http: