在實現任務調度前,需確保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上的不同調度需求,從原生命令行到自動化工具,可根據實際場景選擇合適的方式。