CentOS7搭建hadoop完全分布式集群

集群节点信息
master 192.168.120.10
slave1 192.168.120.11
slave2 192.168.120.12
slave3 192.168.120.13

使用到的资源
Centos7
hadoop-2.7.7
jdk8_201
Xshell6
Xftp6
Virtualbox
日志文件email_log.txt

以上所述资源均已上传至百度云盘共享,可自行获取
链接:https://pan.baidu.com/s/1iD32P1Q4wtXA36eC9JH0OQ
提取码:z71l
复制这段内容后打开百度网盘手机App,操作更方便哦

集群搭建步骤:

进入并查看网卡文件,修改ifcfg-enp0s3和ifcfg-enp0s8网卡文件中的“ONBOOT=no”为“ONBOOT=yes”,设置网卡随虚拟机启动而开启,否则无法连接外网,修改后输入命令“reboot”重启虚拟机
在这里插入图片描述
在这里插入图片描述
输入命令“yum update”更新一下系统
在这里插入图片描述
输入命令“yum install net-tools vim”,安装net-tools和vim工具,以便后续查看IP地址和文本编辑操作
在这里插入图片描述
输入命令“ifconfig -a”查看ip地址,记录IP信息:192.168.120.10,后续远程连接虚拟机需要使用
在这里插入图片描述
使用Xshell远程连接工具连接master虚拟机,点击“新建”创建虚拟机连接,输入刚刚获取的ip信息
在这里插入图片描述
点击左侧列表中的“用户身份验证”,输入虚拟机的用户名和登录密码,然后点击“连接”
在这里插入图片描述
选择“接受并保存”
在这里插入图片描述
成功连接界面如下
在这里插入图片描述
同样,使用Xftp工具远程连接虚拟机,用于本地文件上传到虚拟机文件系统
在这里插入图片描述
直接拖拽文件即可实现文件传输,此处将hadoop、jdk安装文件以及测试日志email_log.txt文本文件传输到虚拟机的/opt目录下
在这里插入图片描述
进入/opt目录,查看接收的文件,并解压jdk文件
在这里插入图片描述
查看解压后的文件,并修改文件名为jdk8
在这里插入图片描述
修改java环境配置,保存后输入命令“source ~/.bashrc”令环境配置生效
在这里插入图片描述
输入命令“java -version”查看java版本信息,若显示则说明环境配置成功
在这里插入图片描述
解压hadoop文件在/opt目录下
在这里插入图片描述
查看并修改解压后的文件名为hadoop
在这里插入图片描述
输入命令“cd /opt/hadoop/etc/hadoop”,进入hadoop配置文件目录

修改core-site.xml文件,修改内容如下

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:8020</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoop_tmp</value>
        </property>
</configuration>

修改hadoop-env.sh文件,找到JAVA_HOME所在行,修改为jdk安装路径
在这里插入图片描述
修改hdfs-site.xml文件,修改内容如下

<configuration>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:///opt/hadoop_tmp/hdfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:///opt/hadoop_tmp/hdfs/data</value>
        </property>
        <property>
                 <name>dfs.namenode.secondary.http-address</name>
                 <value>master:50090</value>
        </property>
        <property>
                 <name>dfs.replication</name>
                 <value>3</value>
        </property>
</configuration>

修改mapred-site.xml文件,由于mapred-site.xml文件是通过复制mapred-site.xml.template文件得到的
输入命令“cp mapred-site.xml.template mapred-site.xml”即可
修改内容如下

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <!-- jobhistory properties -->
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
        </property>
</configuration>

修改yarn-site.xml文件,修改内容如下

	<property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>${yarn.resourcemanager.hostname}:8032</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>${yarn.resourcemanager.hostname}:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>${yarn.resourcemanager.hostname}:8088</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.https.address</name>
                <value>${yarn.resourcemanager.hostname}:8090</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>${yarn.resourcemanager.hostname}:8031</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>${yarn.resourcemanager.hostname}:8033</value>
        </property>
        <property>
                <name>yarn.nodemanager.local-dirs</name>
                <value>/opt/hadoop_tmp/yarn/local</value>
        </property>
        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
        </property>
        <property>
                <name>yarn.nodemanager.remote-app-log-dir</name>
                <value>/opt/hadoop_tmp/logs</value>
        </property>
        <property>
                <name>yarn.log.server.url</name>
                <value>http://master:19888/jobhistory/logs/</value>
                <description>URL for job history server</description>
        </property>
        <property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
                <name>yarn.nodemanager.resource.memory-mb</name>
                <value>2048</value>
        </property>
	<property>
                <name>yarn.scheduler.minimum-allocation-mb</name>
                <value>512</value>
        </property>
        <property>
                <name>yarn.scheduler.maximum-allocation-mb</name>
                <value>4096</value>
        </property>
        <property>
                <name>mapreduce.map.memory.mb</name>
                <value>2048</value>
        </property>
        <property>
                <name>mapreduce.reduce.memory.mb</name>
                <value>2048</value>
        </property>
        <property>
                <name>yarn.nodemanager.resource.cpu-vcores</name>
                <value>1</value>
        </property>

修改yarn-env.sh文件,找到被注释的JAVA_HOME所在行,在下方添加JAVA_HOME路径
在这里插入图片描述
修改slaves文件,修改为如下内容,删除原有的localhost
在这里插入图片描述
修改/etc/hosts文件中的IP地址映射,修改内容如下
在这里插入图片描述
完成以上操作,输入命令“shutdown now”关闭虚拟机,重复以下操作复制出三个子节点虚拟机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动所有虚拟机,并使用Xshell远程登录所有虚拟机
修改机器名,所有节点都需要改成相应的节点名
在这里插入图片描述
所有虚拟机均执行命令“vim /etc/hostname”,清空原有内容,添加相应主机名字master、slave1、slave2、slave3

修改后输入命令“reboot”重启所有虚拟机,令修改的配置生效,输入命令“ping slave1”测试是否机器名是否修改成功
按Ctrl+C终止ping命令执行
在这里插入图片描述
在主节点master上输入命令“ssh-keygen -t rsa”产生公钥与私钥对
在这里插入图片描述
依次执行以下命令将主节点master的公钥复制到子节点虚拟机上

ssh-copy-id -i /root/.ssh/id_rsa.pub master
ssh-copy-id -i /root/.ssh/id_rsa.pub slave1
ssh-copy-id -i /root/.ssh/id_rsa.pub slave2
ssh-copy-id -i /root/.ssh/id_rsa.pub slave3

依次验证SSH是否能够免密登录子节点虚拟机

在这里插入图片描述
所有虚拟机均输入命令“yum install -y ntp”,下载NTP服务用于同步时间
在这里插入图片描述
在主节点master输入命令“vim /etc/ntp.conf”打开/etc/ntp.conf文件,注释掉以server开头的行,并添加如下所示内容:
在这里插入图片描述

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

在三个子节点分别输入命令“vim /etc/ntp.conf”打开/etc/ntp.conf文件,注释掉以server开头的行,并添加内容“server master”
在这里插入图片描述
所有虚拟机均永久关闭防火墙
执行关闭命令:

systemctl stop firewalld.service

再次执行查看防火墙命令:

systemctl status firewalld.service

执行开机禁用防火墙自启命令 :

systemctl disable firewalld.service

在这里插入图片描述
在主节点master执行命令“service ntpd start & chkconfig ntpd on”,如下所示说明成功

service ntpd start & chkconfig ntpd on

在这里插入图片描述
在子节点上均执行一遍命令“ntpdate master”,出现如下信息说明时间同步时间成功

ntpdate master

在这里插入图片描述
在子节点分别执行命令“service ntpd start & chkconfig ntpd on”,即可永久启动NTP服务

service ntpd start & chkconfig ntpd on

在这里插入图片描述
所有虚拟机均执行命令“vim /etc/profile”配置HADOOP_HOME环境变量,修改后执行命令“source /etc/profile”令配置生效,在末尾添加配置内容如下

export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$PATH:/opt/jdk8/bin

所有虚拟机进入/opt中新建文件夹hadoop_tmp
在这里插入图片描述
以下操作均只在主节点master上执行即可
格式化namenode
在这里插入图片描述
显示如下信息说明格式化成功
在这里插入图片描述
启动HDFS和YARN相关服务
在这里插入图片描述
启动日志相关服务
在这里插入图片描述
查看主节点master的进程信息
在这里插入图片描述
查看子节点的进程信息(在子节点虚拟机执行)
在这里插入图片描述
在本地文件夹找到该路径下的hosts文件,修改IP映射文件添加如下内容,以便本地浏览器能够打开hadoop资源监控网站
在这里插入图片描述
在这里插入图片描述
在浏览器输入网址http://master:50070
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在浏览器输入网址http://master:8088
在这里插入图片描述
在这里插入图片描述
在浏览器输入网址http://master:19888
在这里插入图片描述
通过命令行方式查看HDFS信息,输入命令“/opt/hadoop/bin/hdfs dfsadmin -report”即可,如下显示
在这里插入图片描述
在hdfs文件系统中新建input文件夹,用于存放测试日志文件email_log.txt
输入命令

/opt/hadoop/bin/hdfs dfs -mkdir /input

在这里插入图片描述上传在/opt目录下的email_log.txt文件到HDFS文件系统中的input目录下
执行命令

/opt/hadoop/bin/hdfs dfs -put /opt/email_log.txt /input/

在这里插入图片描述
任务一:统计用户登录次数

使用hadoop jar命令提交MapReduce任务,命令如下

 /opt/hadoop/bin/hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input/email_log.txt /output

执行过程
在这里插入图片描述
执行成功结果
在这里插入图片描述
在这里插入图片描述
执行命令查看部分统计结果

/opt/hadoop/bin/hdfs dfs -tail /output/part-r-00000

在这里插入图片描述任务作业的详细信息
在这里插入图片描述
在这里插入图片描述

任务二:管理多个MapReduce任务
以执行多个估算PI值的任务管理为例
执行命令
示例作业1:估算PI值

/opt/hadoop/bin/hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar pi 30 5000

示例作业2:统计用户登录次数

 /opt/hadoop/bin/hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input/email_log.txt /temp/output_1

上述两个任务执行时,查看集群计算资源的使用情况:
在这里插入图片描述
查看执行时,集群上的作业列表
在这里插入图片描述
查看作业1的当前状态在这里插入图片描述
选择界面上的选项“Kill Application”,并在弹出的新对话框中,单击“确定”
在这里插入图片描述
查看被中断的任务详细信息在这里插入图片描述

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值