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)关闭集群服务,避免资源浪费。