Ubuntu下Hadoop任务调度的实现步骤
在Ubuntu上调度Hadoop任务前,需完成Hadoop基础环境的配置。主要包括:安装Java(sudo apt install openjdk-11-jdk)、创建Hadoop专用用户(sudo useradd -m hadoop -s /bin/bash)、配置SSH免密登录(ssh-keygen -t rsa并分发公钥至本机)、下载并解压Hadoop(如tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/)。这些步骤是Hadoop正常运行的前提。
Hadoop的任务调度依赖核心配置文件的正确设置,需修改以下文件:
<property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>;<property><name>dfs.replication</name><value>1</value></property>、<property><name>dfs.namenode.name.dir</name><value>/usr/local/hadoop/data/namenode</value></property>;mapred-site.xml后编辑),例如<property><name>mapreduce.framework.name</name><value>yarn</value></property>;<property><name>yarn.resourcemanager.hostname</name><value>localhost</value></property>、<property><name>yarn.nodemanager.aux-services</name><value>mapreduce.shuffle</value></property>。配置完成后,启动Hadoop服务以激活资源管理与任务调度:
start-dfs.sh,启动NameNode(管理HDFS元数据)和DataNode(存储数据);start-yarn.sh,启动ResourceManager(全局资源管理)和NodeManager(节点资源管理);jps命令查看是否包含NameNode、DataNode、ResourceManager、NodeManager等进程,确保集群正常运行。YARN是Hadoop 2.0+的默认资源管理框架,提供三种内置调度器,可根据场景选择:
default、high_priority),每个队列分配固定资源比例(如yarn.scheduler.capacity.root.default.capacity=50),确保队列间资源隔离,适合多用户共享集群;yarn-site.xml中的yarn.scheduler.type属性(如<property><name>yarn.scheduler.type</name><value>fair</value></property>)。hadoop jar命令提交MapReduce作业,例如hadoop jar /path/to/your-job.jar com.example.YourJobClass input_path output_path(input_path为HDFS输入目录,output_path为HDFS输出目录,需提前创建且不存在);http://localhost:8088)查看任务状态、资源使用情况及日志;yarn application -list查看所有运行中的任务,yarn application -status <application_id>查看特定任务的详细信息。对于复杂任务(如多步骤ETL、周期性任务),可使用Apache Oozie或Apache Airflow等调度工具:
oozie-site.xml文件(设置数据库连接、ResourceManager地址),启动Oozie服务(sudo service oozie start),通过命令行或Web界面提交Workflow(定义任务流程的XML文件);pip install apache-airflow),编写DAG(有向无环图)文件(Python脚本,定义任务依赖与调度时间),通过Airflow的Web界面(默认http://localhost:8080)管理任务调度。