需求:
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做周期性调度
相关推荐
在Hadoop生态系统中,Shell脚本扮演着至关重要的角色,特别是在大数据处理和集群管理中。这些脚本通常用于自动化任务,如数据迁移、作业调度、集群监控等。下面我们将深入探讨Hadoop Shell脚本的相关知识点。 一、...
Hadoop Shell命令主要用于执行HDFS文件系统的操作和MapReduce任务的提交与管理。通过这些命令,开发者能够轻松地完成数据上传、下载、查看以及MapReduce作业的提交等一系列操作。熟悉并掌握这些命令对于提高Hadoop...
3. **Hadoop Shell脚本**:通过编写bash脚本,可以自动化执行一系列HDFS操作,提高工作效率。 4. **MapReduce编程**:理解MapReduce的工作原理,包括Mapper和Reducer阶段,以及Combiner和Partitioner的角色。学习...
### 大数据中Hadoop Shell介绍 ...总之,Hadoop Shell及其相关的脚本为Hadoop的部署、管理和日常维护提供了强大的支持。熟练掌握这些工具的使用方法,对于任何从事大数据处理工作的工程师来说都是必不可少的技能。
5. **Hadoop Shell脚本编写** - 如何编写使用Hadoop命令的bash脚本,以实现自动化数据处理任务,如批量处理文件、数据清洗等。 - `for`循环和条件判断在Shell脚本中的应用,以及如何结合其他Unix工具如`awk`、`sed...
当使用脚本化方法操作 Hadoop 文件系统时,Spring Hadoop 提供了一种机制来管理脚本的生命周期,这有助于更好地控制脚本的执行流程。 ##### 3.5 使用 Scripting Tasklet `ScriptingTasklet` 是一种特殊的 Tasklet,...
022 分析Hadoop 三种启动停止方式的Shell 脚本 023 去除警告【Warning$HADOOP HOME is deprecated。】 024 Hadoop相关命令中的【–config configdir】作用 025 Hadoop 目录结构 026 Eclipse导入Hadoop源码项目 027 ...
Hadoop提供了一系列的shell脚本来启动与停止分布式文件系统(HDFS)和MapReduce服务。通过执行`start-dfs.sh`脚本,可以在配置的NameNode上启动HDFS,该脚本将根据`${HADOOP_CONF_DIR}/slaves`文件的内容在所有列出...
- **使用Hadoop Job Tasklet**:通过`<hadoop:job-tasklet>`元素可以轻松运行Hadoop Job。 - **使用工具Runner**:对于需要调用特定Hadoop工具的情况,可以使用工具Runner代替shell命令进行调用。 ```xml <hadoop:...
这些脚本通常是bash shell脚本,对于Windows环境,会包含批处理文件(.bat)来实现相同的功能。 2. **替换bin目录**: 当你需要对Hadoop进行特定的定制或者更新,比如修改配置、优化性能或者修复已知问题时,可能...
通过命令`$bin/hadoop fs -help`可以列出所有Hadoop Shell支持的命令及其简短的描述。 **2. 显示特定命令的帮助信息** 如果想要了解某个命令的具体使用方法,可以通过命令`$bin/hadoop fs -help command-name`来...
在Linux中,这些功能通常由shell脚本完成,而在Windows上则需要`winutils.exe`来实现。同样,将`winutils.exe`放置在`bin`目录下,可以方便地通过命令行调用。 在标签“job”中,我们可以理解为这个资源可能还涉及...
JDK是运行Hadoop所必需的,因为Hadoop是用Java编写的。你可以从Oracle官方网站下载并安装适合Ubuntu的JDK版本,然后通过修改`~/.bashrc`或`/etc/environment`文件设置`JAVA_HOME`环境变量。 **2. 安装SSH** SSH...
此命令提供了一个全面的指南,列出了所有可用的Hadoop Shell命令及其简要说明。 2. **显示关于某个命令的详细信息** ``` $bin/hadoop fs -help command-name ``` 通过此命令,用户可以获取特定Hadoop命令的...
- `hive_mysql.sh` 和 `mysql_hive.sh`:这些是Shell脚本,用于在Linux/Unix环境中执行命令。它们很可能包含了执行Hive到MySQL或MySQL到Hive数据迁移的命令行指令。 4. **SQL脚本**: - `load_dm_data.sql` 和 `...
测试方法主要通过shell自动化脚本来完成,包括生成配置文件、执行测试、记录时间以及恢复默认配置等步骤。下面将详细讨论在测试中涉及的Hadoop配置参数及其对性能的影响。 1. **Mapred-site.xml配置测试**: - **...
【hdfs定时上传shell案例】这可能是一个关于如何使用Linux shell脚本来定时将数据上传到HDFS的示例。通过cron job或者at命令可以设置定时任务,结合Hadoop的hadoop fs命令,可以实现定期从本地或网络资源向HDFS批量...