草庐IT

max_task

全部标签

hadoop - Shuffle write 大和 spark task 变得超慢时的优化

有一个SparkSQL将连接4个大表(前3个表5000万,最后一个表2亿)并进行一些分组操作,消耗60天的数据。并且此SQL将需要2小时才能运行,在此期间,我检查到ShuffleWrite正在急剧增加,可能会超过200GB。相比之下,当我将消耗日期范围从60天减少到45天时,运行只需要6.3分钟。我查看了DAG图,对于45天的数据,它在最后一次sortMergeJoin之后输出了10亿条数据。谁能告诉我我可以从哪个方向优化这个场景?谢谢!附言可能的相关信息:Spark.version=2.1.0spark.executor.instances=20spark.executor.memo

java - hive 达到 max worker 并且无法连接到 hiveserver2

当我使用直线连接到hiveserver2时,错误消息是这样的。我之前已经连接到hiveserver2。在我连接到hiveserver2几次后显示此错误。我可以连接使用jdbc:hive2://beeline>!connectjdbc:hive2://master:10000SLF4J:类路径包含多个SLF4J绑定(bind)。SLF4J:在[jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定(bind)SLF4J:在[jar:file

java - 如果 mapred.job.reuse.jvm.num.tasks 设置为 -1,则 hadoop 集群中每个节点启动了多少个 jvm

我最近看到了hadoop的mapred.job.reuse.jvm.num.tasks属性。默认情况下,它设置为+1,这意味着每个map/reduce任务都会启动一个新的JVM。相反,如果它设置为-1,那么一个jvm可以被无限数量的任务使用。在这种情况下,任务依次执行以使用相同的JVM。因此,当该属性设置为+1时,每个节点启动的JVM数量等于任务数量。没有混淆....但是,我的具体问题是,如果我将mapred.job.reuse.jvm.num.tasks设置为-1,每个节点将启动多少个JVM。每个节点只有一个JVM吗?还是别的? 最佳答案

Python 和 MapReduce : beyond basics -- how to do more tasks on one database

我有一个巨大的txt数据存储,我想在其中收集一些统计数据。使用Hadoop流和Python我知道如何实现MapReduce以在单个列上收集统计信息,例如计算100个类别中的每个类别有多少条记录。我创建了一个简单的mapper.py和reducer.py,并将它们分别作为-mapper和-reducer插入到hadoop-streaming命令中。现在,我对如何实际处理更复杂的任务有点不知所措:除了上述类别(例如地理位置、类型、日期等)之外,还收集各种其他列的各种统计数据。所有这些数据都在同一个txt文件中。我是否将mapper/reducer任务链接在一起?我是否传递最初很长的键值对(

hadoop - Hadoop中Map Tasks的核心亲和性

问题:Hadoopv.1.2.1或v.2(YARN)是否提供了一种方法来确定单个作业中不同映射任务的核心亲和性?换句话说,我能否以类似于Linux的taskset的方式将特定的MapTask固定到特定的核心,或者它是否不受hadoop的控制而取决于Linux调度程序?我是MapReduce编程的新手,我的项目涉及在不同参数(特定于机器或网络)发生变化时研究其性能。到目前为止,我已经阅读了它的官方文档(v.1.2.1)以及在线和StackExchange的众多主题。下面我提供了两个不同的案例,以更好地说明我的问题,以及我目前的研究。示例#1:假设我有以下配置:输入:2GiBHDFSblo

Hadoop:为什么我在 Namenode Information Web 中收到 "Max Non Heap Memory is -1 B."消息?这是什么意思?

我有一个使用VirtualBox制作的Hadoop2.6.5集群(一个主节点用作名称节点和数据节点,两个从节点)(easch节点安装了Xubuntu16.04)。先验,安装是正确的,因为我运行了一个wordcount示例并且没问题。在master:50070(我看到名称节点信息的地方),我得到这个:"MaxNonHeapMemoryis-1B."你知道这是什么意思吗?我找不到答案,我想检查一下,因为在运行wordcount之后我尝试运行我自己的程序但它没有成功,尽管它在我的Hadoop单节点安装中运行正常。我希望清楚,如果您需要更多信息,请告诉我。谢谢! 最

hadoop - 无法计算 MAX

设置数据mkdirdataecho-e"1\n2\n3\n4\n8\n4\n3\n6">data/data.txt以本地模式启动Pigpig-xlocal脚本a=load'data'UsingPigStorage()As(value:int);b=foreachagenerateMAX(value);dumpb;错误org.apache.pig.tools.grunt.Grunt-错误1045:无法将org.apache.pig.builtin.MAX的匹配函数推断为多个或都不适合。请使用显式转换。 最佳答案 刚找到答案,在调用函数

hadoop - "map.tasks.maximum"可以改善我的工作延迟吗?

在hadoopwiki中找不到对此的具体引用...假设我有一份工作需要100个映射器,没有偏差。当我将“map.tasks.maximum”设置为100时,hadoop会等待它们全部完成,然后进行洗牌(复制到reducer),这需要时间等待网络带宽。如果我将“map.tasks.maximum”设置为10,将有10代10个映射器,当每一代完成时,将执行1/10的数据洗牌,而下一代映射器已经在处理下一个记录。这真的会更加精简并改善我的工作延迟吗?这甚至是一个有值(value)的目标吗?这会以集群的吞吐量为代价吗? 最佳答案 我怀疑它是

multithreading - 每个 Hadoop map task 使用多少个核心?

我在最多8个任务和16个内核的YARN集群上运行Hadoop任务。当我运行该作业时,我看到一个节点上正在运行8个任务,但所有16个核心都已被使用。maptask是多线程的吗?maptask使用超过1个核心?我可以知道哪些内核使用了每个映射任务吗?谢谢,阿萨夫 最佳答案 您可以配置每个map的核心数量,以及可用核心的最大数量-请参阅here.这个问题听起来有点困惑,所以,一些可能相关的更多细节:一个任务可能不仅仅是运行一个map,而且,如果您正在运行hadoop,您可能正在将内核与系统中的其他东西一起使用(即,也许其他一些进程正在使用

hadoop - MAX 中的 NULL,HIVE 中的 MIN 函数

在Hive中计算MAX和MIN函数时,我需要包含NULL值。例如,如果我有表:idvaluesA1B3CNULL然后MAX(values)应该返回NULL。 最佳答案 您可以创建一个标志,表明在您的key组中有NULL。然后您可以聚合新创建的列并查找您的标志是否存在,表明该组中至少有一个NULL。数据:keyval-----------A1ANULLB3B2CNULLC10C4查询0:SELECTkey,CASEWHENARRAY_CONTAINS(cs,1)THENNULLELSEmENDAScol_maxFROM(SELECTk