栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop全分布式集群(3.3.1版本)CentOS7

大数据系统 更新时间:发布时间: 百科书网 趣学号

参考了林子雨的教程Hadoop集群安装配置教程_Hadoop3.1.3_Ubuntu_厦大数据库实验室博客

但他使用的是ubuntu 的,在一些方面和centos还是不同

Hadoop的安装同样可以参考:Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0_厦大数据库实验室博客

Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)_厦大数据库实验室博客e

但是centos版本的太过时了,我同样通过查询学习,整理了一份

使用的软件:

vm15

centos7

hadoop3.3.1

jdk1.8.0

准备工作:

1.选定一台作为master,需要在master创建hadoop用户,安装ssh服务端,安装java环境,安装hadoop并且完成配置

2.这里我是选择一主二从,在两个slave上创建hadoop用户,安装SSH服务端,安装java环境

开始:

1.网络配置:需改为桥接模式

并且查看三台机子的的MAC地址是否一样,一样的话需要随机生成以至不一样

2.修改主机名:

Centos7通过hostname来查看主机名,而通过hostnamectl set-hostname slave来修改主机名,然后重启即可

3.修改IP映射:

输入以下命令:

sudo vim /etc/hosts

在加如映射关系前先通过ifconfig来查到三个主机的IP地址,查到后建立如下映射关系:

同样的,在两个slave1和slave2里面同样进行配置,配置完成后重新启动slave节点的Linux系统

4.完成后还需要检查是否顺利配置:

在master节点上:

$ ping slave1 -c 3  #只会ping三次
$ ping slave2 -c 3  

在两个slave节点上:

$ ping master -c 3

如果出现如下结果,则ping通了

特别注意,每一次更换了网络之后,IP就会发生变化,则需要重新改一下映射关系

5.SSH无密码登录节点:

必须要让Master节点可以SSH无密码登录到各个Slave节点上,首先,Master节点的公匙,如果之前已经生成过公钥,必须要删除原来生成的公钥,重新生成一次:

$ cd ~/.ssh              # 如果没有该目录,先执行一次ssh localhost
$ rm ./id_rsa*           # 删除之前生成的公匙(如果已经存在)
$ ssh-keygen -t rsa  

为了让Master节点能够无密码SSH登录本机,需要在Master节点上执行如下命令:

$ cat ./id_rsa.pub >> ./authorized_keys

然后将master节点将公钥传输到slave节点:

$ scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

然后再slave节点上,将SSH公钥加入授权:

$ mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在,则忽略
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ rm ~/id_rsa.pub    # 用完以后就可以删掉

然后进行检验:

$ ssh slave1         #slave2同样需要

若成功切换到slave1节点则成功(以上需要对slave1和slave2两个节点进行操作)

6.配置集群和分布式环境:

在配置集群/分布式模式时,需要修改“/usr/local/hadoop/etc/hadoop”目录下的配置文件,这里仅设置正常启动所必须的设置项,包括workers 、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml共5个文件

(1)centos7下修改workers

先进入目录:

$ cd /usr/local/hadoop/etc/hadoop

修改文件workers:

$ gedit workers

将workers文件中的原来的localhost删除,添加上:

slave1
slave2

(如果你有更多的从节点,则需同样加进去)

(2)修改同样目录下的core-site.xml文件:


        
                fs.defaultFS
                hdfs://Master:9000
        
        
                hadoop.tmp.dir
                file:/usr/local/hadoop/tmp
                Abase for other temporary directories.
        

(3)修改文件hdfs-site.xml


        
                dfs.namenode.secondary.http-address
                Master:50090
        
        
                dfs.replication
                2
        
        
                dfs.namenode.name.dir
                file:/usr/local/hadoop/tmp/dfs/name
        
        
                dfs.datanode.data.dir
                file:/usr/local/hadoop/tmp/dfs/data
        

注意第九行的value值,两个slave则改为2,三个则3

(4)“/usr/local/hadoop/etc/hadoop”目录下有一个mapred-site.xml.template,需要修改文件名称,把它重命名为mapred-site.xml,然后,把mapred-site.xml文件配置成如下内容:


        
                mapreduce.framework.name
                yarn
        
        
                mapreduce.jobhistory.address
                Master:10020
        
        
                mapreduce.jobhistory.webapp.address
                Master:19888
        
        
                yarn.app.mapreduce.am.env
                HADOOP_MAPRED_HOME=/usr/local/hadoop
        
        
                mapreduce.map.env
                HADOOP_MAPRED_HOME=/usr/local/hadoop
        
        
                mapreduce.reduce.env
                HADOOP_MAPRED_HOME=/usr/local/hadoop
         

(5)修改文件yarn-site.xml


        
                yarn.resourcemanager.hostname
                Master
        
        
                yarn.nodemanager.aux-services
                mapreduce_shuffle
        

配置完成以上五个文件后,需要把Master节点上的“/usr/local/hadoop”文件夹复制到各个节点上。如果之前已经运行过伪分布式模式,建议在切换到集群模式之前首先删除之前在伪分布式模式下生成的临时文件。具体来说,需要首先在Master节点上执行如下命令:

$ cd /usr/local
$ sudo rm -r ./hadoop/tmp     # 删除 Hadoop 临时文件
$ sudo rm -r ./hadoop/logs/*   # 删除日志文件
$ tar -zcf ~/hadoop.master.tar.gz ./hadoop   # 先压缩再复制


$ cd ~
$ scp ./hadoop.master.tar.gz Slave1:/home/hadoop

然后在两个Slave节点上执行如下命令:

$ sudo rm -r /usr/local/hadoop    # 删掉旧的(如果存在)
$ sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
$ sudo chown -R hadoop /usr/local/hadoop

同样,如果有其他Slave节点,也要执行将hadoop.master.tar.gz传输到Slave节点以及在Slave节点解压文件的操作。 首次启动Hadoop集群时,需要先在Master节点执行名称节点的格式化(只需要执行这一次,后面再启动Hadoop时,不要再次格式化名称节点),命令如下:

$ hdfs namenode -format

注意格式化只有一次,之后启动不需要再格式化

然后可以启动Hadoop了:

$ start-dfs.sh
$ start-yarn.sh
$ mr-jobhistory-daemon.sh start historyserver

通过jps来查看是否成功

master节点:

slave节点:

注意:我用的是Hadoop3.3.1版本的,所以如果需要通过web端查看

名称节点和数据节点的状态,则需要再虚拟机网址中输入:

http://master:9870

而不是之前网上很多教程里面的50070

综上Hadoop的全分布式完成安装,安装Java环境以及遇到的一些问题在其他笔记中得以解答,Hadoop的安装同样

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/280607.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号