在CentOS上部署Hadoop分布式文件系统(HDFS)是一个相对复杂的过程,但以下步骤将指导你完成整个过程。
准备工作
- 操作系统:确保你的操作系统是CentOS 7或更高版本。
- Java环境:安装JDK 8,因为Hadoop是基于Java的。
- SSH配置:配置SSH以便在节点之间进行无密码登录。
安装和配置环境
-
安装JDK:
- 下载JDK 8安装包并解压到指定目录,例如
/usr/lib/java-1.8.0
。 - 配置环境变量,编辑
/etc/profile
文件,添加以下内容:export JAVA_HOME=/usr/lib/java-1.8.0 export JRE_HOME=/usr/lib/java-1.8.0/jre1.8.0_131 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server
- 使配置生效:
source /etc/profile
- 下载JDK 8安装包并解压到指定目录,例如
-
安装SSH:
- 安装OpenSSH客户端和服务器:
sudo yum install -y openssh-server openssh-clients
- 启动并设置SSH服务开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
- 生成SSH密钥对:
ssh-keygen -t rsa -P ""
- 将公钥复制到授权的密钥文件:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 测试SSH无密码登录:
ssh localhost
- 安装OpenSSH客户端和服务器:
安装Hadoop
- 从Apache Hadoop官方网站下载最新版本的Hadoop,或者使用wget命令直接下载。
- 解压Hadoop到指定目录,例如
/usr/local/hadoop
。
配置Hadoop
-
配置
core-site.xml
:- 配置Hadoop文件系统的默认URI:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
- 配置Hadoop文件系统的默认URI:
-
配置
hdfs-site.xml
:- 配置HDFS的存储目录和副本数:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop/hdfs/datanode</value> </property> </configuration>
- 配置HDFS的存储目录和副本数:
启动HDFS
-
格式化NameNode:
hdfs namenode -format
-
启动HDFS:
sbin/start-dfs.sh
验证启动
- 使用
jps
命令查看启动的进程,确保NameNode和DataNode进程已启动。 - 在浏览器中访问
http://localhost:50070
,查看HDFS的Web界面。
常见问题
- HDFS中的block默认保存几份?:默认保存三份。
- HDFS的blockSize多大?:Hadoop 2.7.2版本之前是64M,Hadoop 2.7.3版本之后默认是128M。
- HDFS的数据存储是哪一部分?:DataNode负责数据存储。
- Secondary NameNode的目的是什么?:帮助NameNode合并编辑日志,减少NameNode启动时间。