`
小网客
  • 浏览: 1243962 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hadoopJob执行shell脚本

 
阅读更多

需求:

1.基于hadoop jar 执行hadoop的job

2.参数也要可输入

3.shell脚本可供crontab调度

 

方式:

1.java解析输入的参数,并对参数进行规范定义

2.shell实现hadoop jar命令行执行,调度脚本用shell实现

3.crontab调度调度脚本

 

实现:

java解析输入参数:

/**
 * <pre>
 * 获取命令行参数,命令行job参数格式如下:
 * --param1  val1 \
 * --param2  val2 \
 * </pre>
 * 
 * @param args 命令行参数
 * @return 返回map参数映射对
 * @date 2013-11-13
 */
public Map<String, String> parseMRCommands(String[] args) {
	Map<String, String> commands = new HashMap<String, String>();
	String key = null;
	for (String cmdStr : args) {
		if (cmdStr.startsWith("--")) {
			if (key != null) {
				commands.put(key, "");
			}
			key = cmdStr.substring(2);
		} else {
			// add new command key:value
			commands.put(key, cmdStr);
			// clear key
			key = null;
		}
	}
	return commands;
}

输入的参数规范如下:

--param1  val1 \

 

shell执行脚本run.sh:

#! /bin/bash
hadoop jar ../lib/test-SNAPSHOT.jar com.test.TTask \
           --input.path.key /user/input/texts \
           --output.path.key /user/output/texts.out \

shell调度脚本cron-run.sh:

#!/bin/sh
#File:cron-run.sh
source /user/.bash_profile
cd $DEV_WORKING/mapred/bin
process_id=`jps -m | grep "TTask" | awk '{print $1}'`
process_id=${process_id:=0}
date 
if [ $process_id -gt 0 ] 
then
	echo "job is running, pid = $process_id" 
else 
	echo "pid is null, job runing now, start..." 
	nohup ./run.sh > run.log 2>&1 &
fi

然后就可以直接在crontab中对cron-run.sh做周期性调度

 

 

0
0
分享到:
评论

相关推荐

    hadoop 部分 shell 脚本

    在Hadoop生态系统中,Shell脚本扮演着至关重要的角色,特别是在大数据处理和集群管理中。这些脚本通常用于自动化任务,如数据迁移、作业调度、集群监控等。下面我们将深入探讨Hadoop Shell脚本的相关知识点。 一、...

    Hadoop下的shell命令

    Hadoop Shell命令主要用于执行HDFS文件系统的操作和MapReduce任务的提交与管理。通过这些命令,开发者能够轻松地完成数据上传、下载、查看以及MapReduce作业的提交等一系列操作。熟悉并掌握这些命令对于提高Hadoop...

    hadoop shell操作与程式开发

    3. **Hadoop Shell脚本**:通过编写bash脚本,可以自动化执行一系列HDFS操作,提高工作效率。 4. **MapReduce编程**:理解MapReduce的工作原理,包括Mapper和Reducer阶段,以及Combiner和Partitioner的角色。学习...

    大数据中Hadoop Shell介绍

    ### 大数据中Hadoop Shell介绍 ...总之,Hadoop Shell及其相关的脚本为Hadoop的部署、管理和日常维护提供了强大的支持。熟练掌握这些工具的使用方法,对于任何从事大数据处理工作的工程师来说都是必不可少的技能。

    hadoop-shell(第四章)-带书签高清pdf文字版

    5. **Hadoop Shell脚本编写** - 如何编写使用Hadoop命令的bash脚本,以实现自动化数据处理任务,如批量处理文件、数据清洗等。 - `for`循环和条件判断在Shell脚本中的应用,以及如何结合其他Unix工具如`awk`、`sed...

    spring data hadoop reference

    当使用脚本化方法操作 Hadoop 文件系统时,Spring Hadoop 提供了一种机制来管理脚本的生命周期,这有助于更好地控制脚本的执行流程。 ##### 3.5 使用 Scripting Tasklet `ScriptingTasklet` 是一种特殊的 Tasklet,...

    Hadoop从入门到上手企业开发

    022 分析Hadoop 三种启动停止方式的Shell 脚本 023 去除警告【Warning$HADOOP HOME is deprecated。】 024 Hadoop相关命令中的【–config configdir】作用 025 Hadoop 目录结构 026 Eclipse导入Hadoop源码项目 027 ...

    hadoop的所有命令

    Hadoop提供了一系列的shell脚本来启动与停止分布式文件系统(HDFS)和MapReduce服务。通过执行`start-dfs.sh`脚本,可以在配置的NameNode上启动HDFS,该脚本将根据`${HADOOP_CONF_DIR}/slaves`文件的内容在所有列出...

    spring-hadoop.pdf

    - **使用Hadoop Job Tasklet**:通过`&lt;hadoop:job-tasklet&gt;`元素可以轻松运行Hadoop Job。 - **使用工具Runner**:对于需要调用特定Hadoop工具的情况,可以使用工具Runner代替shell命令进行调用。 ```xml &lt;hadoop:...

    Windows下hadoop替换的bin文件夹

    这些脚本通常是bash shell脚本,对于Windows环境,会包含批处理文件(.bat)来实现相同的功能。 2. **替换bin目录**: 当你需要对Hadoop进行特定的定制或者更新,比如修改配置、优化性能或者修复已知问题时,可能...

    hadoop 命令大全

    通过命令`$bin/hadoop fs -help`可以列出所有Hadoop Shell支持的命令及其简短的描述。 **2. 显示特定命令的帮助信息** 如果想要了解某个命令的具体使用方法,可以通过命令`$bin/hadoop fs -help command-name`来...

    hadoop.dll-and-winutils.exe-for-hadoop2.7.7-on-windows_X64-master

    在Linux中,这些功能通常由shell脚本完成,而在Windows上则需要`winutils.exe`来实现。同样,将`winutils.exe`放置在`bin`目录下,可以方便地通过命令行调用。 在标签“job”中,我们可以理解为这个资源可能还涉及...

    hadoop入门教程.pdf

    JDK是运行Hadoop所必需的,因为Hadoop是用Java编写的。你可以从Oracle官方网站下载并安装适合Ubuntu的JDK版本,然后通过修改`~/.bashrc`或`/etc/environment`文件设置`JAVA_HOME`环境变量。 **2. 安装SSH** SSH...

    Hadoop命令大全

    此命令提供了一个全面的指南,列出了所有可用的Hadoop Shell命令及其简要说明。 2. **显示关于某个命令的详细信息** ``` $bin/hadoop fs -help command-name ``` 通过此命令,用户可以获取特定Hadoop命令的...

    CRM项目全流程任务调度.zip

    - `hive_mysql.sh` 和 `mysql_hive.sh`:这些是Shell脚本,用于在Linux/Unix环境中执行命令。它们很可能包含了执行Hive到MySQL或MySQL到Hive数据迁移的命令行指令。 4. **SQL脚本**: - `load_dm_data.sql` 和 `...

    集群Hadoop性能测试

    测试方法主要通过shell自动化脚本来完成,包括生成配置文件、执行测试、记录时间以及恢复默认配置等步骤。下面将详细讨论在测试中涉及的Hadoop配置参数及其对性能的影响。 1. **Mapred-site.xml配置测试**: - **...

    hadoop+ha+hive+mapreduce

    【hdfs定时上传shell案例】这可能是一个关于如何使用Linux shell脚本来定时将数据上传到HDFS的示例。通过cron job或者at命令可以设置定时任务,结合Hadoop的hadoop fs命令,可以实现定期从本地或网络资源向HDFS批量...

Global site tag (gtag.js) - Google Analytics