文件准备:(百度网盘)
链接: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 目录,启动 HDFS:
先切换目录到sbin
cd ..
注意重复多次
cd sbin
可以输入ll查看可以进行的服务:
在hadoop101启动:
##启动HDFS,因为NAMENODE在101上,所以在101上启动HDFS管理界面在hadoop101上
./start-dfs.sh
然后,进入hadoop102的 hadoop 的 sbin 目录,启动 yarn 服务
##启动yarn,因为resourcemanager在102上,所以需要在102上启动YARN管理界面在hadoop102上
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 环境下,在浏览器中,为了查看hadoop HDFS的相关信息以及能做一些基本的 HDFS 操作,网址输入hadoop101:9870,出现如下界面:
如果后续有需要可以打开如下界面,进行拓展。
输入hadoop102:8088 ,出现如下界面:
输入hadoop103:9868 ,出现如下界面:
到这里,hadoop 集群环境已经安装完毕,后续我们可以把采集到的数据文件保存到HDFS,为以后的分析操作奠定数据基础。
后续直接在hadoop102这里cd sbin后使用下面代码,来停止 HDFS 服务以及YARN 资源管理服务。
./stop-all.sh
###或者在hadoop101使用./ stop-dfs.sh 以及在hadoop102使用 ./stop-yarn.sh 来停止 HDFS 服务以及YARN 资源管理服务。
版权归原作者 小白微秃 所有, 如有侵权,请联系我们删除。