我的编程空间,编程开发者的网络收藏夹
学习永远不晚

浅析Hadoop完全分布式集群搭建问题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

浅析Hadoop完全分布式集群搭建问题

一、Hadoop是什么

  • Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
  • 主要解决,海量数据的存储和海量数据的分析计算问题。
  • Hadoop并不只是单单一个技术,而是一个生态圈,里面包括Spark、Flume、HBase、Kafka、Sqoop、Hive、Oozie、Azkaban、Zookeeper。

二、Hadoop组成

1、Hadoop1.x

        ①:MapReduce(计算+资源调度)
②:HDFS(数据存储)
③:Common(辅助工具)

2、Hadoop2.x

        ①:MapReduce(计算)
②:Yarn(资源调度)
③:HDFS(数据存储)
④:Common(辅助工具)

三、Hadoop集群搭建所需工具(链接如下,自行下载)

  • JDK1.8
  • Hadoop2.7

四、Hadoop集群配置前期准备

1.克隆虚拟机(克隆三台,首先配置第一台,剩下两台由于篇幅有限,不再复述,步骤和第一台一样)

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

修改主机名,我设置为hadoop102

hostnamectl set-hostname 你要设置的主机名

关闭防火墙

systemctl stop firewalld.service # 关闭防火墙

systemctl disable firewalld.service # 禁止开机自启

配置虚拟机网络,可以连通外网和主机
①:修改虚拟机网络为NAT模式

在这里插入图片描述

②:打开虚拟网络编辑器,将我框起来的ip地址和子网掩码记下来,继续点击NAT配设置,同样记下来框起来的,后面要用。

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

③:从这里开始进入root模式,首先使用如下命令进入网络配置,然后按照我的图修改您的配置,请和我保持一致,没有的东西就自己写上,然后按照我的配置。

vim /etc/sysconfig/network-scripts/ifcfg-ens32 #电脑不同最后面的ens32可能不一样,但是就找差不多的就行

在这里插入图片描述

④:重启网络(配置到这里可以ping一下百度之类的,但是还没全部完成,完全按照我的做,应该没问题,我们还需要配置虚拟机之间的连通,所以另外两台虚拟机请按照上面的操作配置。)

systemctl start network.service

    ⑤:配置和另外两台的连通(我三台分别叫hadoop102、hadoop103、hadoop104)

vim /etc/hosts

在这里插入图片描述

⑥:测试连接,我们分别ping百度、主机、和另外两台虚拟机,如果如下图,则证明配置成功。

在这里插入图片描述

五、Hadoop运行环境搭建

    ①:在/opt下面新建module和software,分别用来存放安装包和程序

在这里插入图片描述

②:使用连接工具将上面我提供的安装包放入software,然后开始安装jdk,首先卸载之前的jdk,命令如下


rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64

    ③:然后解压jdk到module中


tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

    ④:然后配置jdk环境变量,首先获取jdk路径(在解压后的目录运行pwd命令,如下,将这个目录保存下来)


[root@hadoop102 jdk1.8.0_144]$ pwd

/opt/module/jdk1.8.0_144

    ⑤:打开/etc/profile文件


vim /etc/profile

    ⑥:在profile文件末尾添加JDK路径,保存后退出


#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

    ⑦:安装hadoop,前面的步骤一样,将安装包解压到module中,然后使用pwd获取路径保存,然后打开/etc/profile文件,在profile文件末尾添加JDK路径,保存后退出。


##HADOOP_HOME
export
HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

    ⑧:让修改后的文件生效


source/etc/profile

    ⑨:如下图所示,即生效

在这里插入图片描述

至此,一台机器的前期准备工作已完成,另外两台完全按照一样的步骤操作,按照我的一步一步来,肯定没问题,该踩的坑我都踩过了hh~

六、Hadoop完全分布式集群环境正式搭建

1、编写集群分发脚本xsync

    ①:在/home/atguigu目录下创建bin目录,并在bin目录下创建xsync文件


mkdir bin
cd bin/
touch xsync
vi xsync

    ②:文件内容如下


#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=103; host<105; host++)); do
echo ------------------- hadoop$host --------------   
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

    ③:修改脚本 xsync 具有执行权限


chmod 777 xsync

    ④:调用脚本形式:xsync 文件名称


xsync /home/ironmanjay/bin

注:如果将xsync放到/home/atguigu/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下。

2、集群配置

    这里我们首先配置hadoop102一个主机,配置好之后我们把配置文件使用上面的功能分发下去,这样就实现了集群的配置。
①:配置core-site.xml,在文件中编写如下配置(在hadoop目录下)


vim core-site.xml

<!-- 指定HDFS中NameNode的地址-->
<property>
     <name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录–>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

    ②:配置hadoop-env.sh


[root@hadoop102 hadoop]$ vim hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

    ③:配置hdfs-site.xml,在该文件中编写如下配置


vim hdfs-site.xml

<property>
     <name>dfs.replication</name>
     <value>3</value>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 –>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>

    ④:配置yarn-env.sh


[root@hadoop102 hadoop]$ vim yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

    ⑤:配置yarn-site.xml,在该文件中增加如下配置


vim yarn-site.xml

<!-- Reducer获取数据的方式-->
<property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址–>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>

    ⑥:配置mapred-env.sh


[root@hadoop102 hadoop]$ vim mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

    ⑦:配置mapred-site.xml,在该文件中增加如下配置


[root@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[root@hadoop102 hadoop]$ vim mapred-site.xml

<!-- 指定MR运行在Yarn上
-->
<property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
</property>

    ⑧:在集群上分发配置好的Hadoop配置文件


xsync /opt/module/hadoop-2.7.2/

    ⑨:查看文件分发情况


cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

3、SSH无密登录配置

    ①:生成公钥和私钥,然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)


[root@hadoop102 .ssh]$ ssh-keygen -t rsa

    ②:将公钥拷贝到要免密登录的目标机器上


ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

注:还需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
还需要在hadoop103上采用atguigu账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。

4、群起集群

    ①:配置slaves,向文件中增加如下内容,注意,严格按照我的格式,不允许有空格,文件中不允许有空行


cd /opt/module/hadoop-2.7.2/etc/hadoop/slaves

vim slaves

hadoop102

hadoop103

hadoop104

  ②:同步所有节点配置文件

xsync slaves

    ③:如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)


[root@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -format

    ④:(hadoop102) 启动HDFS,终端输入jps出现下图即成功启动HDFS


[root@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh

在这里插入图片描述

⑤:(hadoop103) 启动YARN,终端输入jps出现下图即成功启动YARN


[root@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

在这里插入图片描述

注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
⑥:Web端查看SecondaryNameNode
浏览器中输入:http://hadoop102:50090/status.html
查看OverView信息,如下图所示,即配置成功

在这里插入图片描述

5、集群启动/停止方式总结

    ①:各个服务组件逐一启动/停止


# 分别启动/停止HDFS组件
hadoop-daemon.sh start / stop  namenode / datanode /secondarynamenode
# 启动/停止YARN
yarn-daemon.sh start / stop  resourcemanager / nodemanager

    ②:各个模块分开启动/停止(配置ssh是前提)常用


# 整体启动/停止HDFS
start-dfs.sh  /  stop-dfs.sh
# 整体启动/停止YARN
start-yarn.sh  /  stop-yarn.sh

6、集群时间同步(必须root用户)

    ①:检查ntp是否安装,如下图即安装


rpm -qa|grep ntp

在这里插入图片描述

②:修改ntp配置文件,修改内容如下


vim /etc/ntp.conf

a)修改1(授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间)


#restrict 192.168.1.0

mask 255.255.255.0 nomodify notrap为

restrict 192.168.1.0 mask

255.255.255.0 nomodify notrap

b)修改2(集群在局域网中,不使用其他互联网上的时间)
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst为
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

c)添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10

    ③:修改/etc/sysconfig/ntpd 文件,增加内容如下(让硬件时间与系统时间一起同步)


vim /etc/sysconfig/ntpd

SYNC_HWCLOCK=yes

    ④:重新启动ntpd服务


service ntpd restart

    ⑤:设置ntpd服务开机启动


chkconfig ntpd on

到此这篇关于浅析Hadoop完全分布式集群搭建问题的文章就介绍到这了,更多相关Hadoop集群搭建内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

浅析Hadoop完全分布式集群搭建问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Hadoop完全分布式集群搭建

Hadoop的运行模式Hadoop一般有三种运行模式,分别是:单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统。,用于开发和调试。伪分布式模式(Pseudo Distrubuted Mod
Hadoop完全分布式集群搭建
2021-07-05

CentOS 7如何搭建Hadoop 2.7.3完全分布式集群环境

这篇文章将为大家详细讲解有关CentOS 7如何搭建Hadoop 2.7.3完全分布式集群环境,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。(一)软件准备1,hadoop-2.7.3.tar.gz(包)2
2023-06-03

Apache Hadoop 2.8 完全分布式集群搭建过程是怎样的

这期内容当中小编将会给大家带来有关Apache Hadoop 2.8 完全分布式集群搭建过程是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。最近在自己的笔记本电脑上搭建了Apache Hadoop分
2023-06-19

如何使用Centos7系统搭建Hadoop-3.1.4完全分布式集群

本篇内容主要讲解“如何使用Centos7系统搭建Hadoop-3.1.4完全分布式集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Centos7系统搭建Hadoop-3.1.4完全分布
2023-06-15

hadoop完全分布式怎么搭建

要搭建Hadoop完全分布式集群,需要按照以下步骤进行操作:准备环境:首先需要准备多台服务器,至少需要3台以上的服务器来搭建Hadoop集群。每台服务器需要安装Linux操作系统(推荐使用CentOS或Ubuntu),并且要保证服务器之间能
hadoop完全分布式怎么搭建
2024-03-13

CentOS 6.4如何安装Hadoop-2.5.1完全分布式集群

这篇文章主要介绍了CentOS 6.4如何安装Hadoop-2.5.1完全分布式集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境介绍:在两台装有CentOS 6.4(3
2023-06-03

完全分布式hadoop搭建的步骤是什么

搭建完全分布式Hadoop集群通常包括以下步骤:准备环境:确保所有节点都有相同的操作系统和Java版本,并且具有网络互通的能力。安装Hadoop软件:在每个节点上下载并安装Hadoop软件包。配置Hadoop集群:编辑Hadoop配置文件,
完全分布式hadoop搭建的步骤是什么
2024-03-05

ubantu 16.4下Hadoop完全分布式搭建实战教程

前言 本文主要介绍了关于ubantu 16.4 Hadoop完全分布式搭建的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 一个虚拟机 1.以 NAT网卡模式 装载虚拟机2.最好将几个用到的虚拟机修改主机名
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录