近期一直在研究基于hadoop-2.2和hbase-0.96的安装配置,并结合官方文档简单的编写了一些mapreduce的例子。为了更深入了解hadoop-2.2的实现,决定研究一下如何对hadoop进行远程调试。
下面介绍利用eclipse远程调试工具进行hadoop的调试:
- 在Shell脚本中运行命令:export YARN_CLIENT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8788"
- 运行mapreduce job:yarn jar hbase-demo-0.0.1-SNAPSHOT.jar,命令行会显示一条信息:Listening for transport dt_socket at address: 8788,直到有客户端连接上调试后,程序才会继续往下进行。
- 在eclipse中选择Run>Debug Configurations,在Remote Java Application下新建一个配置,选择mapreduce的实现工程,Host:[运行job机器的ip],Port:8788,然后点击debug,和server建立debug连接,进入debug状态。
备注:调试hadoop不同的程序,需要设置不同的环境变量(YARN_CLIENT_OPTS),如何确定这个环境变量呢?请看hadoop/bin/yarn的shell脚本实现。在这里可以找到需要设置的相应环境变量和对应的主程序。
# figure out which class to run if [ "$COMMAND" = "classpath" ] ; then echo $CLASSPATH exit elif [ "$COMMAND" = "rmadmin" ] ; then CLASS='org.apache.hadoop.yarn.client.cli.RMAdminCLI' YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" elif [ "$COMMAND" = "application" ] ; then CLASS=org.apache.hadoop.yarn.client.cli.ApplicationCLI YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" elif [ "$COMMAND" = "node" ] ; then CLASS=org.apache.hadoop.yarn.client.cli.NodeCLI YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" elif [ "$COMMAND" = "resourcemanager" ] ; then CLASSPATH=${CLASSPATH}:$YARN_CONF_DIR/rm-config/log4j.properties CLASS='org.apache.hadoop.yarn.server.resourcemanager.ResourceManager' YARN_OPTS="$YARN_OPTS $YARN_RESOURCEMANAGER_OPTS" if [ "$YARN_RESOURCEMANAGER_HEAPSIZE" != "" ]; then JAVA_HEAP_MAX="-Xmx""$YARN_RESOURCEMANAGER_HEAPSIZE""m" fi elif [ "$COMMAND" = "nodemanager" ] ; then CLASSPATH=${CLASSPATH}:$YARN_CONF_DIR/nm-config/log4j.properties CLASS='org.apache.hadoop.yarn.server.nodemanager.NodeManager' YARN_OPTS="$YARN_OPTS -server $YARN_NODEMANAGER_OPTS" if [ "$YARN_NODEMANAGER_HEAPSIZE" != "" ]; then JAVA_HEAP_MAX="-Xmx""$YARN_NODEMANAGER_HEAPSIZE""m" fi elif [ "$COMMAND" = "proxyserver" ] ; then CLASS='org.apache.hadoop.yarn.server.webproxy.WebAppProxyServer' YARN_OPTS="$YARN_OPTS $YARN_PROXYSERVER_OPTS" if [ "$YARN_PROXYSERVER_HEAPSIZE" != "" ]; then JAVA_HEAP_MAX="-Xmx""$YARN_PROXYSERVER_HEAPSIZE""m" fi elif [ "$COMMAND" = "version" ] ; then CLASS=org.apache.hadoop.util.VersionInfo YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" elif [ "$COMMAND" = "jar" ] ; then CLASS=org.apache.hadoop.util.RunJar YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" elif [ "$COMMAND" = "logs" ] ; then CLASS=org.apache.hadoop.yarn.client.cli.LogsCLI YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" elif [ "$COMMAND" = "daemonlog" ] ; then CLASS=org.apache.hadoop.log.LogLevel YARN_OPTS="$YARN_OPTS $YARN_CLIENT_OPTS" else CLASS=$COMMAND fi
相关推荐
Hadoop-2.2.x-eclipse插件是专门为开发人员设计的工具,它允许用户在Eclipse集成开发环境中(IDE)直接操作和调试Hadoop项目。这个插件极大地简化了Hadoop应用程序的开发流程,使得开发人员无需离开熟悉的Eclipse...
3. 调试MapReduce作业:通过插件,可以直接在本地或远程Hadoop集群上运行和调试MapReduce作业,查看中间结果和日志,进行问题定位。 4. 部署到Hadoop集群:将完成的MapReduce程序打包成JAR文件,方便上传到Hadoop...
##### 2.2 解压Hadoop包 将`hadoop-1.0.4.tar.gz`文件解压到指定目录,例如`/home/wys/Documents/hadoop-1.0.4/`。这里使用root用户来进行操作,以简化安装过程中的权限问题。 ``` tar -zxvf hadoop-1.0.4.tar.gz -...
在这样的环境中,开发者可以编写、测试和调试Hadoop MapReduce任务,以及Hadoop相关的Java程序。 首先,我们来看一下描述中提到的关键文件: 1. **hadoop-eclipse-plugin2.2-2.3.jar**:这是一个Eclipse插件,它...
通过这些步骤,开发者可以在Eclipse环境中更加方便地编写、调试和运行MapReduce程序。 **3.3 建立MapReduce工程** 在Eclipse中创建一个新的MapReduce工程,设置项目的各项属性,如项目名、源代码位置等。 #### 四...
SSH用于远程登录和命令执行,是配置Hadoop多节点集群的关键。 2.4 安装配置Hadoop 下载Hadoop源码,配置环境变量,修改相关配置文件如`hadoop-env.sh`, `core-site.xml`, `mapred-site.xml`等,然后格式化NameNode...
使用远程调试器 作业调优 分析任务 MapReduce的工作流 将问题分解成MapReduce作业 运行独立的作业 第6章 MapReduce的工作机制 剖析MapReduce作业运行机制 作业的提交 作业的初始化 任务的分配 ...
使用远程调试器 作业调优 分析任务 MapReduce的工作流 将问题分解成MapReduce作业 运行独立的作业 第6章 MapReduce的工作机制 剖析MapReduce作业运行机制 作业的提交 作业的初始化 任务的分配 任务的执行 进度和状态...
##### 2.2 搭建 Hadoop 体系集群软件环境 ###### 2.2.1 安装配置 Hadoop 软件环境 1. **下载Hadoop**:从官方网站下载适合的Hadoop版本。 2. **解压并安装**:在主节点上解压缩Hadoop包,并进行基本配置。 3. **...
- 在调试过程中遇到的问题可以参考社区或论坛上的解决方案,如“Win7 Eclipse调试Centos Hadoop 2.2-Mapreduce出现问题解决方案”。 #### 五、总结 通过以上分析可以看出,MapReduce作为一种填空式的编程模型,...
在远程集群上调试Spark程序时,需要配置IDEA以支持远程调试。 **3.8 Spark核心概念** - **RDD(Resilient Distributed Dataset)**:弹性分布式数据集是Spark中最基本的数据抽象,它是一个只读的、分区的数据集合...
2.2 MySQL 数据库介绍 2.3 MySQL环境配置 2.4 Python可视化技术 2.5 Django框架 2.6 Hadoop介绍 2.7 B/S架构 3 系统分析 3.1系统可行性分析 3.1.1技术可行性 3.1.2经济可行性 3.1.3操作可行性 3.2系统性能需求分析 ...
在进行分布式系统如Hadoop集群的搭建过程中,为了提高效率并确保数据的安全性,通常需要实现节点间的免密码登录。这种方式通过使用SSH (Secure Shell) 的公钥/私钥认证机制来实现,即无需每次登录时输入密码即可完成...
额外成本包括:人员成本:有人得负责运行脚本,确保备份成功,需要时进行调试,执行临时恢复等。存储成本:存储备份内容需要花钱。停机成本:在这段时间内,管理员要负责恢复数据,需要时间和资源。 大数据备份和...