在Ubuntu上定制HDFS前,需完成基础环境配置,确保系统满足HDFS运行要求:
sudo apt update && sudo apt upgrade -y更新系统;安装build-essential(编译工具)、openssh-server(SSH服务,用于节点间通信)等基础工具。sudo apt install openjdk-8-jdk安装,通过java -version验证安装;设置JAVA_HOME环境变量(编辑~/.bashrc,添加export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64,然后source ~/.bashrc)。/usr/local/hadoop),并通过ls确认解压完整性。进入Hadoop的etc/hadoop目录,修改关键配置文件以适配Ubuntu环境与业务需求:
localhost,集群模式为NameNode的实际IP/主机名),示例如下:<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> <!-- 集群模式替换为hdfs://namenode-host:9000 --> </property> </configuration> <configuration> <property> <name>dfs.replication</name> <value>1</value> <!-- 集群模式调整为节点数 --> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///home/yourusername/hadoop_data/namenode</value> <!-- 自定义NameNode存储路径 --> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///home/yourusername/hadoop_data/datanode</value> <!-- 自定义DataNode存储路径 --> </property> </configuration> JAVA_HOME路径(在文件中找到# export JAVA_HOME=,取消注释并修改为export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64)。~/.bashrc,添加Hadoop路径:export HADOOP_HOME=/usr/local/hadoop、export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin,执行source ~/.bashrc使配置生效。hdfs namenode -format(注意:生产环境需谨慎,频繁格式化会损坏数据)。start-dfs.sh启动NameNode和DataNode,通过jps命令查看进程(需看到NameNode和DataNode)。hdfs dfs -mkdir -p /user/yourusername(-p递归创建父目录);hdfs dfs -put ~/localfile.txt /user/yourusername/;hdfs dfs -ls /user/yourusername/;hdfs dfs -get /user/yourusername/localfile.txt ~/download/;hdfs dfs -rm -r /user/yourusername/olddir(-r递归删除目录)。core-site.xml/hdfs-site.xml中的HA参数(如fs.defaultFS设置为hdfs://mycluster、dfs.nameservices定义集群名称、dfs.ha.namenodes.mycluster指定NameNode节点等)。core-site.xml中添加hadoop.security.authentication=kerberos)。dfs.blocksize,如128MB或256MB,适用于大文件场景)、内存分配(yarn.nodemanager.resource.memory-mb,根据节点资源调整)等参数,提升集群性能。dfs.namenode.name.dir、dfs.datanode.data.dir)的权限正确(通常属于hdfs用户),避免启动失败。ssh-keygen -t rsa -P ""生成密钥,ssh-copy-id user@slave-node-ip复制公钥到从节点)、slaves文件(列出所有DataNode的主机名/IP)及多节点/etc/hosts映射(确保主机名解析正确)。