试用Hadoop JVM复用配置

2019-03-28 14:13|来源: 网络

Hadoop默认为每个task(map task 或者 reduce task) 启动一个jvm。

鉴于目前小文件过多的问题,设置了jvm复用,即一个job内,多个task共享jvm,避免多次启动jvm,浪费资源和时间。

测试Job信息:

map:4715个

reduce:20个

input:  34G

output:  25G

优化前:1464 s

优化后:1375 s

Job运行时间减少 6%

CPU使用率情况:

*注意: mapred.job.reuse.jvm.num.tasks这个参数是客户端参数,修改不需要重启tasktracker,可以在提交job的shell或者代码中设置。

相关问答

更多
  • 同样建议不要用cygwin,总会出现各种意想不到的错误。 非要在windows上做,就在虚拟机上做(vmware workstation),安装教程网上各种。
  • java是执行文件,不是目录 java path默认是java_home/bin/目录 这个目录底下应该 java和javac等文件
  • hadoop配置[2022-10-16]

    不是你的环境变量的问题。不知道楼主有没有看Hadoop官网上的介绍。Hadoop所使用的jdk需要修改 conf/hadoop-env.sh 文件,在其中设置 JAVA_HOME 环境变量: export JAVA_HOME="C:\Program Files\Java\jdk1.5.0_01” (因为路径中 Program Files 中间有空格,一定要用双引号将路径引起来) 这里必须是修改Hadoop的conf/hadoop-env.sh 文件,和机器的环境变量没有关系。 有中文文档的。在Hadoop目 ...
  • export PATH=$PATH:$HADOOPHOME/bin $HADOOPHOME就是你的hadoop安装目录。这个是只作用于一次session的。要是永久的话就把这句话加到/etc/profile目录下。
  • 我的eclipse是装在WINDOWS下的,HADOOP在CENTOS生产环境。 但原理是一样额 http://club.sm160.com/showtopic-937269.aspx HADOOP 版本是hadoop1.0.0(和你的hadoop1.0.4配置相同)
  • 刚接触的话就换成root用户试试,原因是没有执行权限,或者将hadoop安装目录的所有权限赋予给当前用户
  • 您正在为要执行的操作设置错误的配置参数。 你想要mapred.tasktracker.map.tasks.maximum 。 您正在设置的是作业的地图任务数量...在大多数情况下,您永远不应该修改。 默认情况下,Hadoop会将mapred.map.tasks设置为块数,所以不要mapred.map.tasks 。 将其添加到mapred-site.xml : mapred.tasktracker.map.tasks.maximum ...
  • 您应该添加/usr/lib/hadoop-0.xx/lib找到的所有jar以避免这种类路径问题。 为了给你一个想法,你可以输入hadoop classpath ,它将打印出获取Hadoop jar和所需库所需的类路径。 在你的情况下,你错过了hadoop-common-0.xx.jar ,所以你应该把它添加到classpath中,你应该很好。 You should add all the jars found in /usr/lib/hadoop-0.xx/lib to avoid this kind of ...
  • 答案 使用-XX:ErrorFile=/hs_err_pid.log将hs_error文件位置设置为您喜欢的位置。 崩溃是由于JDK错误JDK-6675699已经在JDK9中修复,并且在JDK8更新74之后可以使用backport。 您正在使用JDK8更新72.请从此处升级到最新版本以避免此崩溃。 Answers Use -XX:ErrorFile=/hs_err_pid.log to set ...
  • 目前尚不清楚您使用的是什么Python库,但假设您使用PySpark,您可以在客户端机器上复制或配置HADOOP_CONF_DIR ,并且可以与任何外部Hadoop系统进行通信。 至少,您需要配置core-site.xml以与HDFS和hive-site.xml进行通信以与Hive进行通信。 如果您使用的是PyHive库 ,则只需连接到user@hiveserver2:1000 It's not clear what Python library you are using, but assuming Py ...