Ubuntu与Hadoop集成的关键技巧
sudo apt update && sudo apt upgrade,确保Ubuntu系统为最新稳定版本,避免兼容性问题。sudo apt install openjdk-8-jdk),并通过java -version验证安装;配置JAVA_HOME环境变量(在~/.bashrc中添加export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64),确保Hadoop能正确识别Java路径。ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa生成密钥对,将公钥追加到~/.ssh/authorized_keys,并配置~/.ssh/config文件简化连接(如Host master\n HostName master-ip\n User hadoop),实现ssh master免密登录。wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz),解压至/usr/local目录(sudo tar -zxvf hadoop-*.tar.gz -C /usr/local/),并修改所有权(sudo chown -R hadoop:hadoop /usr/local/hadoop)。~/.bashrc中添加Hadoop路径(export HADOOP_HOME=/usr/local/hadoop、export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin),执行source ~/.bashrc使配置生效。core-site.xml:设置HDFS默认文件系统(fs.defaultFS)为hdfs://master-ip:9000,指定临时目录(hadoop.tmp.dir)为/usr/local/hadoop/tmp。hdfs-site.xml:配置NameNode数据目录(dfs.namenode.name.dir)、DataNode数据目录(dfs.datanode.data.dir),设置副本数(dfs.replication,集群中设为3,单机设为1)。mapred-site.xml:指定MapReduce框架为YARN(mapreduce.framework.name设为yarn)。yarn-site.xml:配置ResourceManager主机名(yarn.resourcemanager.hostname为master-ip),设置Shuffle服务(yarn.nodemanager.aux-services为mapreduce_shuffle)。/usr/local/hadoop/etc/hadoop/slaves文件中添加Slave节点的主机名(每行一个,如slave1、slave2),确保Master能通过SSH访问所有Slave。scp -r /usr/local/hadoop slave1:/usr/local/),并在Slave节点上重复Java环境配置和SSH无密码登录设置。hdfs namenode -format(首次启动需格式化NameNode),然后启动HDFS(start-dfs.sh)和YARN(start-yarn.sh)服务;通过jps命令验证进程(Master应有NameNode、ResourceManager,Slave应有DataNode、NodeManager)。sudo service ssh start)、slaves文件中的主机名是否正确、防火墙是否关闭(sudo ufw disable)。dfs.block.size设为256MB或512MB,减少Map任务数量)、启用Map输出压缩(mapreduce.map.output.compress设为true,减少网络传输)、优化YARN资源分配(yarn.nodemanager.resource.memory-mb根据节点内存调整,如8GB设为6GB)。mapreduce.job.locality.wait参数(默认3秒)控制任务等待数据本地化的时间,尽量将计算任务分配到数据所在节点,减少网络传输。