一.Hadoop集群介绍
●逻辑上分离
两个集群互相之间没有依赖、互不影响
●物理上在一起
某些角色进程往往部署在同一台物理服务器上
●MapReduce 集群呢?
MapReduce 是计算框架、代码层面的组件没有集群之说
二.Hadoop集群模式安装(Cluster mode)
2.1集群角色规划
●角色规划的准则
根据软件工作特性和服务器硬件资源情况合理分配
比如依赖内存工作的 NameNode 是不是部署在大内存机器上
●角色规划注意事项
资源上有抢夺冲突的,尽量不要部署在一起
工作上需要互相配合的。尽量部署在一起
服务器 | 运行角色 |
nodel . itcast . cn | namenode datanode resourcemanager nodemanager |
node2.itcast.cn | secondarynamenode datanode nodemanager |
node3.itcast.cn | datanode nodemanager |
三.在VMware虚拟机集群上部署HDFS集群
3.1 上传和解压
1.上传 Hadoop 安装包到node1节点中
2.解压缩安装包到 /export/server/中
tar - zxvf hadoop -3.3.4.tar. gz - C /export/server
3.构建软链接
cd / export / server
ln- s /export /server/hadoop -3.3.4 hadoop
4.进入 hadoop 安装包内
cd hadoop
3.2 修改配置文件,应用自定义设置
配置 HDFS 集群,我们主要涉及到如下文件的修改:
workers : 配置从节点( DataNode )
hadoop-env.sh : 配置 Hadoop 的相关环境变量
core - site.xml : Hadoop 核心配置文件
hdfs - site.xml : HDFS 核心配置文件
这些文件均存在与$HADOOP _ HOME / etc / hadoop 文件夹中
3.2.1 配置workers文件
3.2.2 配置hadoop-env.sh
3.2.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>
3.2.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>
3.2.5 两个配置项
在node1节点:
mkdir -p /data/nn
mkdir /data/dn
#在node2和node3节点:
mkdir -p /data/dn
目前,已经基本完成Hadoop的配置操作,可以从node1将hadoop安装文件夹远程复制到node2、node3。
分发:在node1执行如下命令
cd /export/server
scp -r hadoop-3.3.4 node2:`pwd`/
scp -r hadoop-3.3.4 node3:`pwd`/
在node2执行,为hadoop配置软链接:
# 在node2执行如下命令
ln -s /export/server/hadoop-3.3.4 hadoop
在node3执行,为hadoop配置软链接:
# 在node3执行如下命令
ln -s /export/server/hadoop-3.3.4 hadoop
3.3.配置环境变量
为了方便我们操作Hadoop,可以将Hadoop的一些脚本、程序配置到PATH中,方便后续使用
在Hadoop文件夹中的bin、sbin两个文件夹内有许多的脚本和程序,现在来配置一下环境变量
1. vim /etc/profile
# 在/etc/profile文件底部追加如下内容
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2. 在node2和node3配置同样的环境变量
hadoop部署的准备工作基本完成
为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务 所以,现在需要对文件权限进行授权。
ps:请确保已经提前创建好了hadoop用户(前置准备章节中有讲述),并配置好了hadoop用户之间的免密登录
以root身份,在node1、node2、node3三台服务器上均执行如下命令
# 以root身份,在三台服务器上均执行
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export
3.3.1 格式化整个文件系统
格式化namenode
# 确保以hadoop用户执行
su - hadoop
# 格式化namenode
hadoop namenode -forma
启动
# 一键启动hdfs集群
start-dfs.sh
# 一键关闭hdfs集群
stop-dfs.sh
# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
/export/server/hadoop/sbin/start-dfs.sh
/export/server/hadoop/sbin/stop-dfs.sh
3.4 查看HDFS WEBUI
启动完成后,可以在浏览器打开: http://node1:9870,即可查看到hdfs文件系统的管理网页。