草庐IT

test_tasks

全部标签

performance - "time spent by map task"在 Hadoop 上包括什么?

Hadoop作业成功后,会显示各种计数器的摘要,请参见下面的示例。我的问题是Totaltimespentbyallmaptasks计数器中包含什么,特别是在映射器作业不是节点本地的情况下,是否包含数据复制时间?17/01/2509:06:12INFOmapreduce.Job:Counters:49FileSystemCountersFILE:Numberofbytesread=2941FILE:Numberofbyteswritten=241959FILE:Numberofreadoperations=0FILE:Numberoflargereadoperations=0FILE:N

java - 我可以通过 hadoop 中的代码明确地提前完成 map task 吗?

在某些情况下,我不需要遍历maptask中的每条输入记录。例如,我只发出最多200条满足每个映射器中特定条件的记录,然后它就可以退出。我可以在hadoop中执行此操作吗?api文档中还没有找到相关的方法。 最佳答案 您可能可以通过覆盖Mapper中的run方法来实现此目的.run方法目前看起来像:publicvoidrun(Contextcontext)throwsIOException,InterruptedException{setup(context);try{while(context.nextKeyValue()){map

testing - 使用 Hive 进行数据测试

我们的项目要求将数据从源加载到HDFS目标目录。而且我们必须验证数据转换(从源到目标)作为转换规则。他们为我们提供了源表(单个平面文件/表)和目标表的平面文件。我们必须通过Hive进行数据验证我们如何做到这一点,其中是否有任何自动化范围。我对这项Hadoop技术非常陌生。请帮帮我 最佳答案 尝试以下步骤来验证数据-1-编写自定义UDF并对行应用验证规则,您可以使用REGEX在UDF中编写验证规则。2-编写自定义Serde或InputFOrmat以在加载Hive表时验证数据。3-尝试MapreduceJob直接进行数据验证。如果您的源

hadoop - 如何在 HDP 2.2 中安装 hadoop-examples* 和 hadoop-test* jar?

如何在HortonworksDataPlatform2.2上安装hadoop-examples*和hadoop-test*jar?这些jar在任何服务器上都不存在。我需要安装其他软件包吗?我找到了一个reference也就是说,它们应该位于/usr/share/hadoop,但该目录在我的集群中的任何节点上都不存在。 最佳答案 对于HDP2.2,大多数内容都移到了/usr/hdp下,所以这些可能就是您要找的内容。[hdpdemo@hdp-demo-mas5hdp]$pwd/usr/hdp[hdpdemo@hdp-demo-mas5h

Spring Scheduled Task 在集群环境中运行

我正在编写一个具有每60秒执行一次的cron作业的应用程序。该应用程序配置为在需要时扩展到多个实例。我只想每60秒在1个实例上执行任务(在任何节点上)。开箱即用我找不到解决方案,我很惊讶以前没有被问过多次。我正在使用Spring4.1.6。 最佳答案 有一个ShedLock正是为这个目的服务的项目。您只需注释执行时应锁定的任务@Scheduled(...)@SchedulerLock(name="scheduledTaskName")publicvoidscheduledTask(){//dosomething}配置Spring和L

Spring Scheduled Task 在集群环境中运行

我正在编写一个具有每60秒执行一次的cron作业的应用程序。该应用程序配置为在需要时扩展到多个实例。我只想每60秒在1个实例上执行任务(在任何节点上)。开箱即用我找不到解决方案,我很惊讶以前没有被问过多次。我正在使用Spring4.1.6。 最佳答案 有一个ShedLock正是为这个目的服务的项目。您只需注释执行时应锁定的任务@Scheduled(...)@SchedulerLock(name="scheduledTaskName")publicvoidscheduledTask(){//dosomething}配置Spring和L

java - Hadoop : set a variable like hashSet only once so that it can be utilized multiple times in each map task

您好,我有一个HashSet,它需要在hadoop中的每个映射任务中使用。我不想多次初始化它。我听说可以通过在配置函数中设置变量来实现。欢迎提出任何建议。 最佳答案 看来你还没有真正了解Hadoop的执行策略。如果你是分布式模式,你不能在多个map任务中共享一个集合(HashSet)。这是因为任务是在它们自己的JVM中执行的,并且它不是确定性的,即使不使用jvm重用,你的集合在jvm被重置后仍然存在。您可以做的是在计算开始时为每个任务设置一个HashSet。因此您可以覆盖setup(Contextctx)方法。这将在调用映射方法之前

hadoop - Hive 总是给出 "Number of reduce tasks determined at compile time: 1",无论我做什么

createexternaltableifnotexistsmy_table(customer_idSTRING,ip_idSTRING)location'ip_b_class';然后:hive>setmapred.reduce.tasks=50;hive>selectcount(distinctcustomer_id)frommy_table;TotalMapReducejobs=1LaunchingJob1outof1Numberofreducetasksdeterminedatcompiletime:1里面有160GB,1个reducer需要很长时间...[ihadanny@lv

hadoop - org.apache.hadoop.security.AccessControlException : Permission denied: user=test-user, access=EXECUTE, inode ="system":hadoop:test-user:rwx------

以前测试用户曾经驻留在连接丢失的边缘服务器上。因此,我们重建了边缘服务器并一直在尝试启动并运行它,但我一直收到以下错误。Jobinitializationfailed:org.apache.hadoop.security.AccessControlException:org.apache.hadoop.security.AccessControlException:Permissiondenied:user=test-user,access=EXECUTE,inode="system":hadoop:test-user:rwx------atsun.reflect.GeneratedC

hadoop - 关于 hadoop fs test 命令输出

我在命令下运行,尝试使用文件名存在或文件名不存在,但它们都没有来自控制台的任何输出。我希望如果文件存在,该命令应该返回零?http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#testhadoopfs-test-efilename 最佳答案 我认为这意味着命令的返回码是0。你可以检查hadoopfs-test-efilenameecho$? 关于hadoop