在实现任务调度前,需确保Hadoop已在Ubuntu上正确安装并配置为伪分布式或集群模式(推荐伪分布式用于学习,集群模式用于生产)。核心配置文件位于$HADOOP_HOME/etc/hadoop目录下,需修改以下文件:
fs.defaultFS=hdfs://localhost:9000);dfs.replication=1,伪分布式模式下设为1);mapreduce.framework.name=yarn);yarn.nodemanager.aux-services=mapreduce_shuffle、yarn.nodemanager.aux-services.mapreduce.shuffle.class=org.apache.hadoop.mapred.ShuffleHandler)。start-dfs.sh)和YARN(start-yarn.sh),并通过jps命令验证进程(Master节点需有NameNode、ResourceManager,Slave节点需有DataNode、NodeManager)。YARN(Yet Another Resource Negotiator)是Hadoop 2.x及以上版本的核心资源管理系统,负责任务调度与资源分配。提交任务的步骤如下:
my-job.jar);hadoop fs -put my-job.jar /user/hadoop/jobs/将JAR文件上传至HDFS;hadoop jar命令提交作业,指定输入输出路径(如hadoop jar /user/hadoop/jobs/my-job.jar com.example.MyJobClass /input/data /output/result);yarn application -list查看所有运行中的任务,yarn application -status <application_id>查看任务详情。YARN支持多种调度策略,可根据集群资源使用情况和作业特性选择:
default、high_priority),每个队列分配固定资源容量,适合多租户环境(如生产与测试任务分离);$HADOOP_HOME/etc/hadoop/yarn-site.xml,添加调度器类(如yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler),并调整队列参数。对于复杂的任务依赖(如“先执行ETL任务,再执行分析任务”)或定时执行需求(如每天凌晨处理日志),可使用以下工具:
oozie job -run命令提交工作流,或通过Web界面管理;hadoop jar命令),通过crontab -e编辑定时规则(如0 2 * * * /usr/bin/hadoop jar /path/to/job.jar com.example.MyJobClass /input /output)。以上方法覆盖了Hadoop在Ubuntu上的不同调度需求,从原生命令行到自动化工具,可根据实际场景选择合适的方式。