Hadoop在Ubuntu上的最佳实践
sudo apt update && sudo apt upgrade -y更新系统包。sudo apt install openjdk-8-jdk -y安装,通过java -version验证安装(需显示Java版本信息)。sudo apt install openssh-server -y,启动服务sudo systemctl start ssh并设置开机自启sudo systemctl enable ssh;生成密钥对ssh-keygen -t rsa,将公钥复制到本机cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,设置权限chmod 600 ~/.ssh/authorized_keys和chmod 700 ~/.ssh。/usr/local),并修改权限sudo chown -R hadoop:hadoop /usr/local/hadoop(hadoop为用户)。~/.bashrc(或/etc/profile),添加Hadoop和Java路径:export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-8-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,集群设为3)。mapreduce.framework.name为yarn。yarn.nodemanager.aux-services为mapreduce_shuffle。hdfs namenode -format。start-dfs.sh和YARNstart-yarn.sh,通过jps命令查看进程(应显示NameNode、DataNode、ResourceManager、NodeManager)。http://localhost:9870)查看HDFS状态,访问YARN ResourceManager(http://localhost:8088)查看资源分配。yarn.nodemanager.resource.memory-mb(如8GB),MapReduce任务JVM堆大小mapreduce.map.java.opts(如2GB)、mapreduce.reduce.java.opts(如4GB)。yarn.nodemanager.resource.cpu-vcores(如8核)。dfs.blocksize(如128MB或256MB),减少Map任务数量。mapreduce.job.maps(如每128MB数据1个Map任务)和mapreduce.job.reduces(如每1GB数据1个Reduce任务),提高并行处理能力。mapreduce.map.output.compress(true)和输出压缩mapreduce.output.fileoutputformat.compress(true),使用Snappy或LZO压缩算法,减少磁盘IO和网络传输。mapreduce.job.locality.wait(如3秒),让Map任务优先在数据所在节点运行,减少网络传输。yarn.scheduler.capacity.root.default.capacity设为80%),合理分配资源。java -version验证。ssh localhost,若失败检查~/.ssh/authorized_keys权限和SSH服务状态。hadoop fs -ls /,确保用户有读写权限,必要时使用hadoop fs -chmod调整。yarn logs -applicationId <应用ID>),定位代码或配置问题。