HDFS配置Ubuntu的关键注意事项
hadoop用户(如sudo addgroup hadoop && sudo adduser --ingroup hadoop hadoop),避免使用root用户操作,提升安全性;确保该用户对Hadoop安装目录(如/usr/local/hadoop)及数据目录(如/usr/local/hadoop/data/namenode)有读写权限(sudo chown -R hadoop:hadoop /usr/local/hadoop)。sudo apt install openjdk-11-jdk安装后,需配置JAVA_HOME环境变量(在~/.bashrc或hadoop-env.sh中添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64),并通过java -version验证安装。/usr/local/目录(sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/),并重命名为hadoop(sudo mv hadoop-3.3.4 hadoop);配置HADOOP_HOME环境变量(export HADOOP_HOME=/usr/local/hadoop)及PATH(export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin),通过source ~/.bashrc使配置生效。JAVA_HOME为系统Java路径(如export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64),确保Hadoop能找到Java环境。fs.defaultFS),单机模式下为hdfs://localhost:9000,集群模式下需替换为NameNode的实际IP或主机名。dfs.namenode.name.dir,如/usr/local/hadoop/data/namenode)、DataNode数据目录(dfs.datanode.data.dir,如/usr/local/hadoop/data/datanode)及副本数(dfs.replication,单机模式设为1,集群模式根据节点数量调整,如3)。yarn.resourcemanager.hostname,单机模式为localhost)及MapReduce Shuffle服务(yarn.nodemanager.aux-services设为mapreduce_shuffle)。mapreduce.framework.name设为yarn)。hadoop用户下执行ssh-keygen -t rsa,按回车键生成默认路径的密钥文件(~/.ssh/id_rsa)。ssh-copy-id hadoop@localhost),实现hadoop用户在本机的无密码登录;若为集群模式,需将公钥分发到所有节点(ssh-copy-id hadoop@node2)。ssh localhost,无需输入密码即可登录,确保节点间通信正常。hdfs namenode -format,清除NameNode元数据(注意:格式化会删除所有HDFS数据,仅首次启动时执行)。start-dfs.sh(启动HDFS服务,包括NameNode、DataNode)和start-yarn.sh(启动YARN服务,包括ResourceManager、NodeManager);启动后通过jps命令验证进程(应看到NameNode、DataNode、ResourceManager、NodeManager等进程)。ufw(Ubuntu防火墙)开放:NameNode RPC端口(9000)、Web UI端口(50070)、ResourceManager端口(8088)等(sudo ufw allow 9000 && sudo ufw allow 50070 && sudo ufw allow 8088);若为集群模式,需开放节点间的通信端口(如DataNode与NameNode之间的50010、50020端口)。hdfs dfsadmin -report查看HDFS集群状态(包括DataNode数量、存储容量、副本数等);访问Web UI(http://localhost:50070)直观查看HDFS文件系统和节点信息。hdfs dfs -mkdir /user/hadoop/test)、上传文件(hdfs dfs -put localfile.txt /user/hadoop/test)、列出目录(hdfs dfs -ls /user/hadoop)、下载文件(hdfs dfs -get /user/hadoop/test/file.txt localfile.txt)、删除文件(hdfs dfs -rm /user/hadoop/test/file.txt)。stop-dfs.sh(停止HDFS)和stop-yarn.sh(停止YARN)关闭集群服务,避免资源浪费。