环境如下三台服务器:
- 192.168.32.101 node1
- 192.168.32.102 node2
- 192.168.32.103 node3
一、Hadoop安装包下载,点此官网下载
二、Hadoop HDFS的角色包含:
- NameNode,主节点管理者
- DataNode,从节点工作者
- SecondaryNameNode,主节点辅助
三、配置HDFS集群,我们主要涉及到如下文件的修改:
- workers: 配置从节点(DataNode)有哪些
- hadoop-env.sh: 配置Hadoop的相关环境变量
- core-site.xml: Hadoop核心配置文件
- hdfs-site.xml: HDFS核心配置文件
这些文件均存在与$HADOOP_HOME/etc/hadoop文件夹中。
1、workers文件修改
# 进入配置文件目录
cd etc/hadoop
# 编辑workers文件
vim workers
# 填入如下内容
node1
node2
node3
2、配置hadoop-env.sh文件
# 填入如下内容
export JAVA_HOME=/export/jdk
export HADOOP_HOME=/export/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
3、配置core-site.xml文件
#在文件内部填入如下内容
<configuration><property><name>fs.defaultFS</name><value>hdfs://node1:8020</value></property><property><name>io.file.buffer.size</name><value>131072</value></property>
</configuration>
参数说明:
- key:fs.defaultFS
- 含义:HDFS文件系统的网络通讯路径
- 值:hdfs://node1:8020
- 协议为hdfs://
- namenode为node1
- namenode通讯端口为8020
- key:io.file.buffer.size
- 含义:io操作文件缓冲区大小
- 值:131072 bit
4、配置hdfs-site.xml文件
# 在文件内部填入如下内容
<configuration><property><name>dfs.datanode.data.dir.perm</name><value>700</value></property><property><name>dfs.namenode.name.dir</name><value>/data/nn</value></property><property><name>dfs.namenode.hosts</name><value>node1,node2,node3</value></property><property><name>dfs.blocksize</name><value>268435456</value></property><property><name>dfs.namenode.handler.count</name><value>100</value></property><property><name>dfs.datanode.data.dir</name><value>/data/dn</value></property>
</configuration>
参数说明:
- key:dfs.datanode.data.dir.perm
- 含义:hdfs文件系统,默认创建的文件权限设置
- 值:700,即:rwx------
- key:dfs.namenode.name.dir
- 含义:NameNode元数据的存储位置
- 值:/data/nn,在node1节点的/data/nn目录下
- key:dfs.namenode.hosts
- 含义:NameNode允许哪几个节点的DataNode连接(即允许加入集群)
- 值:node1、node2、node3,这三台服务器被授权
- key:dfs.blocksize
- 含义:hdfs默认块大小
- 值:268435456(256MB)
- key:dfs.namenode.handler.count
- 含义:namenode处理的并发线程数
- 值:100,以100个并行度处理文件系统的管理任务
- key:dfs.datanode.data.dir
- 含义:从节点DataNode的数据存储目录
- 值:/data/dn,即数据存放在node1、node2、node3,三台机器的/data/dn内
5、另外两台配置相同,scp分发即可,命令如下
# 在node1执行如下命令
cd /export
scp -r hadoop-3.3.4 node2:`pwd`/
scp -r hadoop-3.3.4 node3:`pwd`/
6、配置环境变量(三台服务器均配置)
vim /etc/profile
# 在/etc/profile文件底部追加如下内容
export HADOOP_HOME=/export/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
7、创建hadoop用户并授权文件夹权限(三台服务器均执行)
#创建hadoop用户
useradd hadoop
#给用户hadoop设置密码
passwd hadoop
# 以root身份,在三台服务器上均执行
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export
8、前期准备全部完成,现在对整个文件系统执行初始化
# 确保以hadoop用户执行
su - hadoop
# 格式化namenode
hadoop namenode -format# 一键启动hdfs集群
start-dfs.sh
# 一键关闭hdfs集群
stop-dfs.sh# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
/export/hadoop/sbin/start-dfs.sh
/export/hadoop/sbin/stop-dfs.sh
9、启动完成后,可以在浏览器打开: http://node1:9870,即可查看到hdfs文件系统的管理网页