阅读量:5
Debian下HDFS配置步骤
1. 系统初始化
- 安装必要工具:安装网络工具、文本编辑器和SSH服务,用于节点间通信。
sudo apt update && sudo apt install -y net-tools vim openssh-server - 关闭防火墙(测试环境可选):避免防火墙阻止HDFS服务通信。
sudo ufw disable - 设置主机名与hosts文件:统一节点主机名,并在
/etc/hosts中添加所有节点的IP与主机名映射(如192.168.1.100 master、192.168.1.101 slave1),确保节点间可通过主机名访问。
2. 安装Java环境
Hadoop依赖Java运行,推荐安装OpenJDK 8或11:
sudo apt install -y openjdk-11-jdk
验证Java安装:
java -version # 应输出Java版本信息
配置Java环境变量(可选,若未自动设置):编辑/etc/profile,添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
3. 下载并解压Hadoop
- 下载Hadoop:从Apache官网获取最新稳定版(如3.3.15),使用
wget下载:wget https://downloads.apache.org/hadoop/core/hadoop-3.3.15/hadoop-3.3.15.tar.gz - 解压与移动:将压缩包解压至
/usr/local/,并重命名目录:sudo tar -xzvf hadoop-3.3.15.tar.gz -C /usr/local/ sudo mv /usr/local/hadoop-3.3.15 /usr/local/hadoop - 设置目录权限:确保当前用户对Hadoop目录有读写权限:
sudo chown -R $USER:$USER /usr/local/hadoop
4. 配置Hadoop环境变量
编辑~/.bashrc(用户级)或/etc/profile(系统级),添加Hadoop路径:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
source ~/.bashrc # 或 source /etc/profile
5. 配置HDFS核心文件
Hadoop配置文件位于$HADOOP_HOME/etc/hadoop,需修改以下关键文件:
- core-site.xml:定义HDFS默认文件系统和临时目录。
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode:9000</value> <!-- NameNode主机名与端口 --> </property> <property> <name>hadoop.tmp.dir</name> <value>/data/hadoop/hdfs/tmp</value> <!-- 临时文件目录 --> </property> </configuration> - hdfs-site.xml:配置NameNode/Datanode目录及副本数(生产环境建议设为3)。
<configuration> <property> <name>dfs.replication</name> <value>1</value> <!-- 单节点设为1,集群设为3 --> </property> <property> <name>dfs.namenode.name.dir</name> <value>/data/hadoop/hdfs/namenode</value> <!-- NameNode元数据目录 --> </property> <property> <name>dfs.datanode.data.dir</name> <value>/data/hadoop/hdfs/datanode</value> <!-- Datanode数据目录 --> </property> </configuration> - mapred-site.xml(若不存在则复制模板):指定MapReduce运行框架为YARN。
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> - yarn-site.xml:配置YARN资源管理器。
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> <!-- Shuffle服务 --> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration>
6. 配置SSH免密码登录
Hadoop需要SSH无密码登录NameNode,生成密钥并授权:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 生成密钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥到授权文件
chmod 600 ~/.ssh/authorized_keys # 设置权限
测试免密码登录:
ssh localhost # 应无需输入密码
7. 格式化NameNode
首次启动前需格式化NameNode(仅第一次执行,会清除已有数据):
hdfs namenode -format
格式化后会创建dfs.name.dir指定的目录,存储元数据。
8. 启动HDFS服务
- 启动HDFS:在NameNode上运行以下命令,启动NameNode和DataNode:
$HADOOP_HOME/sbin/start-dfs.sh - 验证进程:使用
jps命令检查是否启动成功,应看到NameNode、DataNode进程:jps # 输出应包含 NameNode、DataNode
9. 验证HDFS功能
- 查看HDFS状态:通过Web界面(默认端口50070)访问
http://namenode:50070,查看集群状态。 - 操作HDFS文件:使用
hdfs dfs命令创建目录、上传文件:hdfs dfs -mkdir -p /test # 创建测试目录 hdfs dfs -put /usr/src/linux-source-2.6.27/Doc*/memory-barriers.txt /test # 上传测试文件 hdfs dfs -ls /test # 列出目录内容
注意事项
- 单节点与集群区别:单节点环境下
dfs.replication设为1,集群需设为3并配置所有节点的/etc/hosts。 - 目录权限:确保
dfs.namenode.name.dir和dfs.datanode.data.dir目录存在且有写入权限。 - 日志排查:若启动失败,查看
$HADOOP_HOME/logs下的日志文件(如NameNode.log)定位问题。