Hadoop在Ubuntu上的最佳实践
sudo apt update && sudo apt upgrade)。sudo apt install openjdk-11-jdk);配置JAVA_HOME环境变量(指向JDK安装路径,如/usr/lib/jvm/java-11-openjdk-amd64),并通过java -version验证安装。sudo apt install openssh-server);生成密钥对(ssh-keygen -t rsa),并将公钥复制到本机(cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys),设置权限(chmod 600 ~/.ssh/authorized_keys,chmod 700 ~/.ssh)。/usr/local(sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/),重命名为hadoop(sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop);修改目录权限(sudo chown -R $USER:$USER /usr/local/hadoop)。~/.bashrc文件,添加以下内容:export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
执行source ~/.bashrc使配置生效。fs.defaultFS)为hdfs://localhost:9000(伪分布式)或NameNode IP(集群模式)。dfs.namenode.name.dir,如/usr/local/hadoop/tmp/dfs/name)、DataNode数据目录(dfs.datanode.data.dir,如/usr/local/hadoop/tmp/dfs/data)及副本数(dfs.replication,伪分布式设为1,集群根据节点数调整)。mapreduce.framework.name设为yarn)。yarn.nodemanager.aux-services设为mapreduce_shuffle)。hdfs namenode -format清除旧数据(仅第一次需要)。start-dfs.sh(启动HDFS)和start-yarn.sh(启动YARN);使用jps命令检查进程(应看到NameNode、DataNode、ResourceManager、NodeManager)。http://localhost:9870)查看HDFS状态,访问YARN ResourceManager(http://localhost:8088)查看资源分配。hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output),验证Hadoop功能。yarn.nodemanager.resource.memory-mb参数,如设为8GB)、使用SSD(将HDFS数据目录配置为SSD路径,提升IO性能)、多核CPU(调整yarn.nodemanager.resource.cpu-vcores参数,如设为8核)。dfs.blocksize,如256MB,适合大文件处理)、启用中间数据压缩(mapreduce.map.output.compress设为true,使用Snappy编解码)、调整MapReduce并行度(mapreduce.job.maps和mapreduce.job.reduces,根据数据量设置,如20 maps、10 reduces)。mapreduce.job.locality.wait参数(如设为30秒),让Map任务尽量在数据所在节点运行,减少网络传输。$HADOOP_HOME/logs目录,通过查看NameNode、DataNode、ResourceManager等日志定位问题(如启动失败、任务报错)。hadoop distcp命令复制到其他存储节点)和配置文件($HADOOP_HOME/etc/hadoop目录),防止数据丢失。