【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)


集群配置

使用三节点,master、slave1、slave2,
jdk1.8.0_171
zookeeper-3.4.10
hadoop-2.7.3


一、基础配置

首先使用Xshell连接虚拟机,不知道怎么连接的同学可以参考文章底下的系列文章链接。

更改主机名

hostnamectl set-hostname master(在master执行)
hostnamectl set-hostname slave1(在slave1执行)
hostnamectl set-hostname slave2(在slave2执行)

更改完后输入bash进行生效

下载Vim(三台机器都执行)

yum -y install vim

配置hosts文件(三台机器都执行)

使用ifconfigip addr查看ip地址,接着将ip及其对应的主机名填入hosts文件中。

vim /etc/hosts

注意:使用tab间隔
【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第1张图片

无网络,无ip信息?

如果在正常开启网络后输入ip addr命令看不到本机ip时,
【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第2张图片

修改网卡的配置文件

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

(网卡名ens33可能会不一样,按上图框框里面的网卡名为准)
【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第3张图片

将ONBOOT从no改为yes后保存退出,

重启network服务

service network restart

最后再次输入ip addr即可获取ip信息。

关闭防火墙(三台机器都执行)

关闭防火墙:

systemctl stop firewalld

查看状态:

systemctl status firewalld

永久关闭防火墙:

systemctl disable firewalld

SSH免密(master节点执行)

生成 sshkey

ssh-keygen -t rsa

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第4张图片

分发密钥

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第5张图片

时间同步

下载ntp(三台机器都执行)

yum install -y ntp

修改ntp配置文件(master节点执行)

vim /etc/ntp.conf

在文件末尾添加:

server 	127.127.1.0
fudge	127.127.1.0	stratum	10

注意:使用tab间隔
【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第6张图片

重启ntp服务

systemctl restart ntpd

同步master时间(在slave1,slave2中执行)

ntpdate master 

在这里插入图片描述
在这里插入图片描述

二、JDK安装及配置(在master执行)

创建工作路径

mkdir /usr/java

解压JDK

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/

注意:jdk文件名以自己下载的为准

配置环境变量

vim /etc/profile

在文件末尾添加:

export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

保存退出

分发jdk

scp -r /usr/java root@slave1:/usr/
scp -r /usr/java root@slave2:/usr/

分发/etc/profile文件

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/

生效环境变量(三台机器都执行)

source /etc/profile

检验安装是否成功

java -version

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第7张图片
能看到版本信息说明安装配置成功

三、zookeeper安装及配置(在master执行)

创建工作路径

mkdir /usr/zookeeper

解压zookeeper

tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/zookeeper

创建zkdata和zkdatalog

在zookeeper的目录中,创建zkdata和zkdatalog两个文件夹

cd /usr/zookeeper/zookeeper-3.4.10
mkdir zkdata zkdatalog

配置zoo.cfg文件

cd /usr/zookeeper/zookeeper-3.4.10/conf/
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg

修改如下:

dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第8张图片

配置环境变量

vim /etc/profile

在文件末尾添加:

export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10 
export PATH=$PATH:$ZOOKEEPER_HOME/bin

分发zookeeper

scp -r /usr/zookeeper root@slave1:/usr/
scp -r /usr/zookeeper root@slave2:/usr/

创建myid文件

echo '1' > /usr/zookeeper/zookeeper-3.4.10/zkdata/myid(在master执行)
echo '2' > /usr/zookeeper/zookeeper-3.4.10/zkdata/myid(在slave1执行)
echo '3' > /usr/zookeeper/zookeeper-3.4.10/zkdata/myid(在slave2执行)

分发/etc/profile文件

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/

生效环境变量(三台机器都执行)

source /etc/profile

检验安装是否成功

启动zookeeper(三台机器都执行)

zkServer.sh start 

查看zookeeper状态(三台机器都执行)

zkServer.sh status 

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第9张图片
【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第10张图片
【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第11张图片
可以看到有follower和leader,说明安装配置成功。

四、hadoop安装及配置(在master执行)

创建工作路径

mkdir /usr/hadoop

解压hadoop

tar -zxvf hadoop-2.7.3.tar.gz -C /usr/hadoop

修改配置文件

文件列表如下:

hadoop-env.sh
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
master
slaves

进入配置文件所在目录:

cd /usr/hadoop/hadoop-2.7.3/etc/hadoop

hadoop-env.sh

vim hadoop-env.sh

修改java环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_171

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第12张图片

core-site.xml

vim core-site.xml

中加入以下代码:

<property>
	<name>fs.default.namename>
	<value>hdfs://master:9000value>
property>
<property>
	<name>hadoop.tmp.dirname>
	<value>/usr/hadoop/hadoop-2.7.3/hdfs/tmpvalue>
property>

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第13张图片

hdfs-site.xml

vim hdfs-site.xml

中加入以下代码:

<property>
	<name>dfs.replicationname>
	<value>2value>
 property>
 <property>
	<name>dfs.namenode.name.dirname>
	<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/namevalue>
	<final>truefinal>
property>
<property>
	<name>dfs.datanode.data.dirname>
	<value>file:/usr/hadoop/hadoop-2.7.3/hdfs/datavalue>
	<final>truefinal>
property>
<property>
	<name>dfs.namenode.secondary.http-addressname>
	<value>master:9001value>
property>
<property>
	<name>dfs.webhdfs.enabledname>
	<value>truevalue>
property>
<property>
	<name>dfs.permissionsname>
	<value>falsevalue>
property>

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第14张图片

yarn-site.xml

vim yarn-site.xml

中加入以下代码:

<property>
	<name>yarn.resourcemanager.addressname>
	<value>master:18040value>
property>
<property>
	<name>yarn.resourcemanager.scheduler.addressname>
	<value>master:18030value>
property>
<property>
	<name>yarn.resourcemanager.webapp.addressname>
	<value>master:18088value>
property>
<property>
	<name>yarn.resourcemanager.resource-tracker.addressname>
	<value>master:18025value>
property>
<property>
	<name>yarn.resourcemanager.admin.addressname>
	<value>master:18141value>
property>
<property>
	<name>yarn.nodemanager.aux-servicesname>
	<value>mapreduce_shufflevalue>
property>
<property>
	<name>yarn.nodemanager.auxservices.mapreduce.shuffle.classname>
	<value>org.apache.hadoop.mapred.ShuffleHandlervalue>
property>

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第15张图片

mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

中加入以下代码:

<property>
	<name>mapreduce.framework.namename>
	<value>yarnvalue>
property>

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第16张图片

master

vim master

输入:

master

在这里插入图片描述

slaves

vim slaves

清空原来的localhost,重新输入:

slave1
slave2

分发hadoop

scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/

配置环境变量

vim /etc/profile

在文件末尾添加:

export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存退出

分发/etc/profile文件

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/

生效环境变量(三台机器都执行)

source /etc/profile

检验安装是否成功(在master执行)

格式化hadoop

注意:首次搭建集群时才需格式化,下次使用时无需再次格式化,切勿多次格式化!

hadoop namenode -format

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第17张图片
返回0时,说明格式化成功。

启动hadoop集群

start-all.sh

查看状态(三台机器都执行)

jps

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第18张图片
【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第19张图片
【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第20张图片
当出现这些节点时,说明hadoop集群已经搭建成功了

五、运行hadoop官方实例–WordCount

本地创建数据文件

vim input.txt

输入一些单词,例如:

Hello World
Hello Hadoop
Hello zookeeper
I Love Hadoop
I Love BigData

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第21张图片

保存退出

上传input.txt到hdfs上

hdfs dfs -put input.txt /

运行wordcount

hadoop jar /usr/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input.txt /output

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第22张图片
可以看到已经成功了

打印结果

查看输出文件夹,其中的part-r-00000就是我们要的结果文件

hdfs dfs -ls -R /output

在这里插入图片描述

hdfs dfs -cat /out*/part*

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)_第23张图片
可以看到,词频统计运行成功了。

六、关闭集群

关闭hadoop

stop-all.sh(在master执行)

关闭zookeeper

zkServer.sh stop(三台机器都执行)

关闭虚拟机

shutdown -h now(三台机器都执行)

总结

需要注意的是,

1、以上所有路径如果要自定义的话,那么相同路径输入时应该保持一致。

2、xml中,一定要检查是否是一一对应的,切勿多敲出一个或少敲一个。

3、切勿多次格式化hadoop。

4、如果格式化之后发现配置文件没配好的话,首先停掉hadoop,然后删除临时文件:

rm -rf /usr/hadoop/hadoop-2.7.3/hdfs

接着修改配置文件,最后重新格式化一遍。

大数据环境搭建系列文章链接

【大数据环境搭建(一)】VMware虚拟机安装Centos7详细教程:
https://blog.csdn.net/weixin_45092204/article/details/118885153

【大数据环境搭建(二)】使用Xshell SSH连接虚拟机详细教程:
https://blog.csdn.net/weixin_45092204/article/details/118932663

【大数据环境搭建(三)】在Centos7上搭建Hadoop集群(完全分布式)
https://blog.csdn.net/weixin_45092204/article/details/119085553

【大数据环境搭建(四)】在Centos7上搭建Hive集群(Mysql远程模式)
https://blog.csdn.net/weixin_45092204/article/details/120218392

后续

此教程是大数据环境的第三篇文章,后续还会发布大数据各种组件的安装及配置教程,以及在安装过程中需要注意的问题。

刚刚要入手大数据的同学可以持续关注我,安装过程中遇到什么问题的同学也可以评论区留言。

要是本教程对你有帮助的话,希望大家能三连 三连 三连!

最后,祝各位同学学习顺利~

你可能感兴趣的:(大数据,大数据,分布式,hadoop,linux,centos)