hadoop三机集群环境安装和配置(最小化安装)

文件准备:(百度网盘)

链接:https://pan.baidu.com/s/1t_v7nWTQk4_pq0eqA_NwWw?pwd=am66 
提取码:am66

第一个文件用来安装XShell与Xftp,第二个用来安装VMware Workstation Pro,其他三个文件我放在E:\Software\Program\VMware\CentOS\CentOS-7-x86_64-Minimal-2009.iso自己选择放在哪里。这里的CentOS文件只有973MB,进行的是最小化安装。

1.创建虚拟机hadoop101

 让虚拟机的名称为hadoop101,选择我们虚拟机要安装在哪里如:E:\Software\Program\VMware\Virtual Machines\fit-hadoops\hadoop101由自己决定黑色可以自己新建文件借鉴一下。

 选择处理器数量并设置内存为1536MB。

 

 选择NAT的模式,下一步下一步,用推荐就好。

 选择第一个,创建新虚拟磁盘。

指定磁盘大小为60GB 

 下一步,完成。

先关闭虚拟机,在VMware Workstation Pro左边显示虚拟机的空白处右键新建文件夹fit-hadoops,把hadoop101拖入文件夹里面,方便我们管理。

 

双击hadoop101,打开虚拟机,方向键选择第一个,回车。

选择语言为中文,简体中文,点击继续后,选择第一个,设置时间为上海本地时间。

选择“自动设置分区”,并设置 root 管理员账户密码为 hadoop,同时设置一个普通用户 hadoop,密码也是 hadoop。 上述设置完成后,立即自动进入安装。稍等片刻,安装成功后,选择“重启”,进入登录界面,输入root 账号信息后,进入根目录。使用 id 命令识别身份后,基础安装工作完成

完成后重启,注意这里我们登录root账号 

2.设置虚拟机的静态ip 

因为是最小化安装,使用 ip addr 命令,可以看到网卡并没有启动:

 查看我们虚拟网卡上面的ip数据

因为我们进行NAT网络连接,所以我们点击VMnet8 

我们在这里设置ip的范围,修改最后的一部分(不要超过100-254)

在这里记住:子网掩码、网关、及ip前3位192.168.171

登录账号密码开始:

vi /etc/sysconfig/network-scripts/ifcfg-ens33进入下面的界面

通过方向键进行移动,按i进入编辑模式,将其设置如下

其中,

IPADDR=192.168.30.X(X代表我们设置范围里的任意数字,如101)# IP地址

NETMASK=255.255.255.0 # 子网掩码(固定)

GATEWAY=192.168.30.2# 网关地址(我们前面记得)

DNS1=192.168.30.2 # DNS地址(固定)

DNS2=8.8.8.8

设置完成按esc后按“冒号:”,输入wq,回车。

使用 service network restart 重启网络服务,发现ip 地址已经分配,同时解析网易 163 的地址也正常完成,说明 DNS 正常工作。

XShell安装。

XShell新建会话并连接。

新建会话,主机名称为hadoop101,主机为192.168.30.101。

可以在XShell左边新建文件夹和刚刚一样为fit-hadoops,把hadoop101拖入文件夹,方便管理,双击hadoop101会话,输入hadoop用户名勾选记住用户名,输入hadoop密码,勾选记住密码。

输入下面代码,进入root账户。登录hadoop账户

从hadoop账户切换到root账户。

su -

3.关闭防火墙

①查看是否存在防火墙

代码:

systemctl|grep iptables
systemctl|grep firewall

结果出现如下:

firewalld.service     loaded active running       firewalld - dynamic     firewall daemon 

发现存在 firewalld 服务(注意看这里的运行结果是用文字表示不要都输入了)

②为hadoop用户添加权限

输入

visudo

使用方向键定位到相应位置,按i输入hadoop     ALL=(ALL)    NOPASSWD:ALL输入完成按下esc输入:wq!退出

③使用管理员账号关闭防火墙

sudo systemctl stop firewalld
systemctl|grep firewall

④禁用防火墙,以便在下次开机的时候不再启动该服务

sudo systemctl disable firewalld

结果会出现如下语句:

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

4.使用 yum 安装 ifconfig 命令所在的包

yum install net-tools.x86_64

<<<

如果出现下面图片是错误的,我们要进行某些操作(以下为补充内容的部分)

vi /etc/yum.repos.d/CentOS-Base.repo

四个 baseurl 地址按顺序修改为阿里云的镜像地址:

baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/

>>>

使用 yum 安装 ifconfig 命令所在的包,以确保网络查询命令正常工作,输入ifconfig查看。

 输入

exit

退出root账户,出现进入hadoop账户。 

5.上传并解压 JDK8 软件到目标文件夹 

使用 xftp 上传 jdk-8u211-linux-x64.tar.gz 安装文件到/home/hadoop 目录下,在/opt 目录下构建 moudle 目录,作为后续大数据相关软件的安装根目录,因该目录所有者为 root,需要改变目录所有者和所在组均为 hadoop,因为一般来说,我们不会使用root 账号进行日常应用软件的配置和管理工作。

说明:因为我已经安装好了,没有非常具体的截图所以我会借助老师的说明文件的图片(白色部分)交叉使用说明。

sudo mkdir /opt/module
cd /opt
ll

sudo chown hadoop:hadoop ./module
ll

解压 JDK 安装包到/opt/module 目录下:

tar -zxvf jdk-8u211-linux-x64.tar.gz -C /opt/module/
cd /opt/module
ll

6.配置 JDK 环境变量 

cd /etc/profile.d
sudo vi jdk.sh
#jdk setting
export JAVA_HOME=/opt/module/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin

切换为root账户:

su -

保存该文件,重新刷新当前用户环境变量:

source /etc/profile
env|grep JAVA_HOME

 查看操作是否成功:

javac -version
java -version
echo $JAVA_HOME

结果如下:

7.设置各主机的机器名及其 IP 地址映射

 回到hadoop账户

exit

(1)设置本机机器名

设置/etc/hostname,设置本机机器名为 hadoop101

sudo vi /etc/hostname

修改原来的主机名称 localhostname 为 hadoop101,并重新启动网络服务

sudo systemctl restart network
ping hadoop101

ping 操作的结果,可以看出 hadoop101 已经正确映射到192.168.240.101IP地址。

(2)设置集群其它主机的 IP 地址映射

编辑/etc/hosts 文件,并做如下改变,增加所有集群主机的映射

sudo vi /etc/hosts

 

重启网络服务:

sudo systemctl restart network

 8.上传并加压 hadoop 安装文件

 xftp上传同jdk

tar -zxvf hadoop-3.3.0-Centos7-64-compiled.tar.gz -C /opt/module
cd /opt/module
ll

 

 9.配置 hadoop 环境变量

cd /etc/profile.d
sudo cp ./jdk.sh ./hadoop.sh
sudo vi hadoop.sh
#hadoop setting
export HADOOP_HOME=/opt/module/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

刷新环境变量:

source /etc/profile
env|grep HADOOP

10.Hadoop 集群配置文件设置 

来到/opt/module/hadoop-3.3.0/etc/hadoop 目录下,对以下若干文件进行配置

cd /opt/module/hadoop-3.3.0/etc/hadoop

(1)core-site.xml 配置 Hadoop 的基本属性。

 这里了设定了 namenode 的访问入口在 hadoop101 的 8020 端口,并指定hdfs的 WEB 访问用户是 hadoop 用户。dfs.permissions.enabled 是HDFS 中的一个重要配置参数,它控制着 HDFS 中权限检查功能的启用与禁用。为方便起见,这里该参数设置为 false 时,HDFS 将不会执行任何权限检查,任何用户都可以对HDFS 中的任何文件或目录进行读写删除等操作。

vi core-site.xml

方向键移到最后两行按dd,删除,按i添加如下内容:

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.3.0/data</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>

esc+wq!

hadoop.tmp.dir 是 Hadoop 配置中的一个重要参数,它用于指定Hadoop 集群中各个节点上使用的临时目录,其默认设置 hadoop 数据文件的存储地为/tmp 目录,当 Hadoop 以/tmp 目录作为临时目录时,可能会遇到一些问题。首先,/tmp 目录通常是在系统重启时会被清空的,这可能导致 Hadoop 的临时数据丢失,进而影响作业的执行和集群的稳定性。其次,如果/tmp 目录所在的磁盘空间不足,也可能导致 Hadoop 作业失败。ad 所以这里调整为/opt/module/hadoop-3.3.0/data, 该文件夹原先不存在,需要在 hadoop 账户下额外构建,操作命令如下:

mkdir data
ll

(2) hdfs-site.xml 配置 HDFS 某些属性的个性化设定。

该文件配置了名称节点和第二名称节点的 web 访问路径,第二名称节点按照规划设定在 hadoop103 主机上。

vi hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop101:9870</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop103:9868</value>
</property>
</configuration>

 esc+wq!

(3)mapred-site.xml 配置 MapReduce 某些属性的个性化设定。

这里主要说明了 mapreduce 作业是运行在 yarn 资源管理系统上,由它来负责集群中资源的管理和调度。

vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

 esc+wq! 

(4)yarn-site.xml 配置 Yarn 某些属性的个性化设定。

通常情况下,YARN 提供了一个名为 mapreduce_shuffle 的辅助服务。这个服务是专门为支持 MapReduce 应用程序的本地化任务执行和数据缓存而设计的。因此,在默认情况下,yarn.nodemanager.aux-services 可能被设置为mapreduce_shuffle。这里设置 resourcemanager 所在的主机为 hadoop102。

vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,HADOOP_MAPRED_HOME,PATH,LANG,TZ</value>
</property>
</configuration>

 esc+wq!

(5)workers 配置文件

用于指定哪些节点作为工作节点。在Hadoop 集群中,工作节点是负责实际执行任务的节点。该文件配置信息如下,说明了参与集群的 3 台主机的主机名

vi workers
hadoop101
hadoop102
hadoop103

  esc+wq!

11.克隆 hadoop 三机集群

在XShell输入shutdown now 关闭虚拟机

回到VMware Workstation Pro,旋转hadoop101右击选择“管理”,选择“克隆”。

 

 选择”创建完整克隆“,以复制原始虚拟机的完整副本,而不是仅仅原始虚拟机的一个链接。这里预先构建好 hadoop102 目录,把虚拟机名称设置为hadoop102。并设置地址(如我们第一台hadoop101设置在fit-hadoops里的hadoop101,这里我们可以在fit-hadoops新建文件夹hadoop102)

点击“完成”按钮后完成克隆,然后拖动新生成 hadoop102 主机链接到fw-hadoops文件夹做统一管理。并按照上述方法,克隆 hadoop103 主机,并拖入fit-hadoops文件夹做统一管理。

启动 hadoop102 主机,在 vmware 界面中,以 root 身份登录,修改网卡配置文件,设置 ip 地址为 192.168.30.102。这里注意需要单独启动 102 主机,否则会出现ip地址冲突问题。配置完毕后,重启网络服务,同时确认 ip 已经设置。

vi /etc/sysconfig/network-scripts/ifcfg-ens33

sudo vi /etc/hostname

service network restart 重启网络服务

根据上述方法,调整 hadoop103 主机为 192.168.30.103,并确认。 

克隆后的主机网卡配置:

XShell建立hadoop102,hadoop103的会话,并拖入fit-hadoops文件夹,做统一管理。

12.实现 hadoop 三机集群的免密登录

开启 hadoop101 主机,使用 ssh-keygen 生成一组公私钥,生成的密钥文件默认会保存在 hadoop 用户的 home 目录下的.ssh 文件夹中,私钥为 id_rsa,公钥为id_rsa.pub。 

ssh-keygen -t rsa -P ''

回车就好了不需要其他操作

拷贝一下:# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh的服务器重启:# service sshd restart

接下来做三台电脑之间的免密操作:(就是每一台电脑都要输入以下命令,下面蓝色框框写密码)

# ssh-copy-id hadoop101

# ssh-copy-id hadoop102

# ssh-copy-id hadoop103

hadoop102与hadoop103重复上面操作。

下图为 hadoop101 主机上的三机公钥:

cat ./.ssh/authorized_keys

 操作完毕后,执行免密登录测试,发现在 hadoop101 主机上可以不需要密码登录hadoop101、hadoop102 和 hadoop103。其它主机也有类似执行结果,至此,hadoop 集群三机免密登录环境配置完毕。

13.启动 hadoop 集群 

在 hadoop101 机器上,执行 namenode 的格式化操作,命令操作完成后,会在hadoop安装目录下,生成 data 和 log 目录。

hdfs namenode -format

 注意主节点格式化操作只能进行一次,否则需要进行某些操作!!!

 cd $HADOOP_HOME

 或者cd ..重复多次回到

ll

 

cd data

cd dfs

cd current

ls

看到下列信息,则表示名称节点格式成功。

 接下来,进入 hadoop101 的 /opt/module/hadoop-3.3.0/sbin 目录,执行start-dfs.sh,启动 HDFS:

cd ..

 注意重复多次

cd sbin

可以输入ll查看可以进行的服务: 

hadoop101启动:

./start-dfs.sh

然后,进入 hadoop102 的 hadoop 的 sbin 目录,启动 yarn 服务

cd /opt/module/hadoop-3.3.0/sbin

./start-yarn.sh

jps查看进程

hadoop101:

hadoop102:

hadoop103:

与规划进行对比,目标实现。

 14.集群 WEB UI 访问

修改 windows 的 C:\Windows\System32\drivers\etc 目录的host 文件(需管理员模式开启)

可以先重命名添加.txt变为文本文件,再添加内容,再次重命名,删除后缀。

打开hosts文件,在该文件的末尾添加如下内容,以方便在 windows 环境下用机器名访问集群中虚拟主机:

192.168.30.101 hadoop101

192.168.30.102 hadoop102

192.168.30.103 hadoop103

###如果无法进行以上操作可以先做一个hosts的副本(复制粘贴),在副本进行操作,在删除原本的hosts,重新命名副本名称为hosts

在 windows 环境下,在浏览器中,访问 http://hadoop101:9870/以查看hadoop HDFS的相关信息以及能做一些基本的 HDFS 操作。

到这里,hadoop 集群环境已经安装完毕,后续我们可以把采集到的数据文件保存到HDFS,为以后的分析操作奠定数据基础。 

后续直接在hadoop102这里cd sbin后使用下面代码,来停止 HDFS 服务以及YARN 资源管理服务。 

./stop-all.sh

###或者在hadoop101使用./ stop-dfs.sh 以及在hadoop102使用 ./stop-yarn.sh 来停止 HDFS 服务以及YARN 资源管理服务。

集群规划: 主机名 IP 安装的软件 运行的进程 weekend01 192.168.1.201 jdk、hadoop NameNode、DFSZKFailoverController(zkfc) weekend02 192.168.1.202 jdk、hadoop NameNode、DFSZKFailoverController(zkfc) weekend03 192.168.1.203 jdk、hadoop ResourceManager weekend04 192.168.1.204 jdk、hadoop ResourceManager weekend05 192.168.1.205 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain weekend06 192.168.1.206 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain weekend07 192.168.1.207 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain 说明: 1.在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务 仅同步active namenode的状态,以便能够在它失败时快速进行切换。 hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据 信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode 这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态 2.hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.4.1解决了这个问题,有两个ResourceManager,一个是Active,一个 是Standby,状态由zookeeper进行协调
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值