百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Hadoop集群大数据平台搭建

bigegpt 2025-02-27 14:22 7 浏览

一、Hadoop集群环境搭建配置

1、前言

Hadoop的搭建分为三种形式:单机模式、伪分布模式、完全分布模式,只要掌握了完全分布模式,也就是集群模式的搭建,剩下的两种模式自然而然就会用了,一般前两种模式一般用在开发或测试环境下,Hadoop最大的优势就是分布式集群计算,所以在生产环境下都是搭建的最后一种模式:完全分布模式。

2、硬件选择

须知:

(1)、分布式环境中一个服务器就是一个节点

(2)、节点越多带来的是集群性能的提升

(3)、一个Hadoop集群环境中,NameNode,SecondaryNameNode和DataNode是需要分配不同的节点上,也就需要三台服务器

(4)、在Hadoop运行作业完成时,History Server来记录历史程序的运行情况,需要独立一台服务器

(5)、第一台:记录所有的数据分布情况,运行进程:NameNode
第二台:备份所有数据分布情况,因为当前面的那台服务器宕机(日常所说的死机)时,可通过该服务器来恢复数据。所以,该服务器运行的程序就是:SecondaryNameNode
第三台:存储实际数据,运行的进程就是;DataNode
第四台:记录应用程序历史的运行状况。运行的程序就是:History Server。(可选)
所以说,至少三台。

3、集群环境各个服务配置

  1. 在Hadoop集群环境中,最重要的就是NameNode运行的服务器是整个集群的调度和协调工作,还有一个很重要的进程是资源管理(真正的协调整个集群中每个节点的运行),所以配置要高于其他节点。

4、软件选择

关于Hadoop集群环境软件的选择,无非就是围绕这个几个软件产品去选择:OS操作系统,Hadoop版本,JDK版本,Hive版本、MySQL版本等。

5、节点配置信息的分配


提前规划出四台服务器用来搭建Hadoop集群,然后分别为其分配了机器名称、IP,IP需要设置为统一网段,可根据使用的情况,进行动态调整的。

另外说明:搭建了两台Ubuntu的服务器来单独安装MySQLServer,搭建了一个主从模式,Ubuntu是一个界面友好的操作系统,这里和Hadoop集群分离的目的是因为Mysql数据库是比较占内存资源的,所以我们单独机器来安装,当然,MySQL并不是Hadoop集群所需要的,两者没有必然的关系,这里搭建它的目的就为了后续安装Hive来分析数据应用的,并且我们可以在这个机器里进行开发调试,当然Window平台也可以,毕竟我们使用Windows平台是最熟练的。(hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。)

回到顶部

二、Hadoop集群环境安装

安装前需明了:

(一)、将Hadoop集群中的主节点分配2GB内存,然后剩余的三个节点都是1GB配置。

(二)、所有的节点存储都设置为50GB

1、CentOS安装

(1)、首先需要在VMWare中创建一个新的计算机,然后指定CentOS的镜像路径和用户名和密码。

(2)、指定当前虚拟机操作系统的存储大小(50GB)和内存大小(2GB)。

(3)、完成安装

(4)、至此,我们已经成功的安装上了CentOS操作系统,然后安装的过程中顺便创建了一个新用户Hadoop,这个账户就是我们后面安装Hadoop集群环境所使用的账号。

(5)、我们登录到CentOS操作系统,然后为了后续节点识别,要改计算机名。Master.Hadoop,然后重启。(不知理解是否有误)

(6)、切换到root用户

(7)、编辑/etc/sysconfig/network文件:vi /etc/sysconfig/network

  • 保存该文件,重启计算机(reboot)
  • 查看是否生效:hostname

(8)、设置固定IP(验证我们当前虚拟机是否能上网,IP是否能成功配置。),然后配置Host文件(添加集群对应ip与节点名)。(还有要改桥接模式(B):直接连接物理网络。现在用的是虚拟机,但是把它当成物理机一样,也给插上网线,连接到本地的网络中去。当然,如果选择这种方式的前提是要保证局域网的网段和之前规划的IP是一致的,必须都是192.168.1.* 这种网段,这样的目的就是宿主机和我们的虚拟机能够直接通信,那就意味这主机能联网,我们的虚拟机就能联网。)

(9)、固定IP设置:首先配置DNS,对/etc/resolv.conf 文件进行修改或查看

  • 配置固定IP地址:修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件
  • 重启网络:/etc/init.d/network restart或service network restart
    修改成功:
  • ping通网络。
  • 修改host文件
  • 重启服务器

2、Hadoop安装与配置

(1)、下载Hadoop安装包,然后进入Hadoop集群的搭建工作。
把jdk和Hadoop包下载或上传到/home/hadoop/Downloads/下


Hadoop环境的配置分为两步:1、Java环境配置;2、Hadoop配置。因为Hadoop就是Java语言编写的,所以一定要先配置好Java环境。

  • jdk的安装与配置:
    一般将安装的程序存到/usr目录下,所以创建Java目录:
    mkdir /usr/java
    更改权限
    chown hadoop:hadoop /usr/java/
    查看
    ll /usr
    更改系统的环境变量
    vim /etc/profile
    添加脚本
    # set java environment
    export JAVA_HOME=/usr/java/jdk1.8.0_121
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
    将解压好的jdk移到/usr/java目录中:cp -r jdk1.8.0_121 /usr/java/
    查看版本:
    java -version
  • Hadoop的安装与基本配置:
    与Jdk配置类似,--/usr目录下,创建hadoop目录
    mkdir /usr/hadoop
    --拷贝解压后的hadoop安装包
    cp -r hadoop-2.6.4 /usr/hadoop
    --赋权给Hadoop用户
    chown hadoop:hadoop /usr/hadoop/
    --查看确认
    ll /usr/
    对几个关键的文件进行配置:
    转到目录:
    cd /usr/hadoop/hadoop-2.6.4/
    配置第一个文件
    vim etc/hadoop/core-site.xml
    <configuration>


    <property>
    <name>fs.defaultFSname>
    <value>hdfs://192.168.1.50:9000value>
    property>

    <property>
    <name>io.file.buffer.sizename>
    <value>131072value>
    property>

    <property>
    <name>hadoop.tmp.dirname>
    <value>file:/usr/hadoop/hadoop-2.6.4/tmpvalue>
    <description>Abasefor other temporary directories.description>
    property>
    configuration>
    创建目录mkdir tmp
    配置第二个文件
    vim etc/hadoop/hdfs-site.xml
    <property>
    <name>dfs.namenode.secondary.http-addressname>
    <value>192.168.1.50:9001value>
    property>
    <property>
    <name>dfs.namenode.name.dirname>
    <value>file:/usr/hadoop/hadoop-2.6.4/dfs/namevalue>
    property>
    <property>
    <name>dfs.datanode.data.dirname>
    <value>file:/usr/hadoop/hadoop-2.6.4/dfs/datavalue>
    property>
    <property>
    <name>dfs.replicationname>
    <value>1value>
    property>
    <property>
    <name>dfs.webhdfs.enabledname>
    <value>truevalue>
    property>
    文件解释:


创建目录:
mkdir dfsmkdir dfs/namemkdir dfs/data
配置第三个文件:
cp
etc/hadoop/mapred-site.xml.template
etc/hadoop/mapred-site.xml
因为在这里Hadoop已经提供了一个模板,直复制创建,然后修改此文件:vim
etc/hadoop/mapred-site.xml


<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>
mapreduce.jobhistory.address
name>
<value>192.168.1.50:10020value>
property>
<property>
<name>
mapreduce.jobhistory.webapp.address
name>
<value>192.168.1.50:19888value>
property>
configuration>
配置第四个文件:vim etc/hadoop/yarn-site.xml

<property>
<name>
yarn.nodemanager.aux-services
name>
<value>mapreduce_shufflevalue>
property>
<property>
<name>
yarn.nodemanager.aux-services.mapreduce.shuffle.class
name>
<value>
org.apache.hadoop.mapred.ShuffleHandler
value>
property>
<property>
<name>
yarn.resourcemanager.address
name>
<value>192.168.1.50:8032value>
property>
<property>
<name>
yarn.resourcemanager.scheduler.address
name>
<value>192.168.1.50:8030value>
property>
<property>
<name>
yarn.resourcemanager.resource-tracker.address
name>
<value>192.168.1.50:8035value>
property>
<property>
<name>
yarn.resourcemanager.admin.address
name>
<value>192.168.1.50:8033value>
property>
<property>
<name>
yarn.resourcemanager.webapp.address
name>
<value>192.168.1.50:8088value>
property>
配置Hadoop的jdk路径,不指定是不能运行的,hadoop-env.sh 和 yarn-env.sh 在开头添加如下java环境变量:export JAVA_HOME=/usr/java/jdk1.8.0_73
vim etc/hadoop/hadoop-env.sh


vim etc/hadoop/yarn-env.sh


因为所有Hadoop用户都有执行权限,所以:
chown -R hadoop:hadoop /usr/hadoop/hadoop-2.6.4/

3、启动Hadoop

  • 格式化文件,来启动这个单节点的Hadoop集群
  • Hadoop 分布式存储系统的HDFS格式化,这个只能在初始化系统的时候用一次,一次就好了,要不执行一次数据就丢失一次。bin/hadoop namenode -format运行结果:
  • Hadoop 集群进行启动验证:启动HDFS:sbin/start-dfs.sh然后查看jps进程:


然后,查看状态
bin/hadoop dfsadmin -report


或者直接打开浏览器直接打开浏览器查看:

http://192.168.10.87:50070/dfshealth.html#tab-overview

回到顶部

回到顶部

三、Hadoop集群完全分布式坏境搭建

上一部分是单节点的安装,工作已经完成了一半,下面进行的是完全分布式的环境搭建

为了减少配置时间,直接对上一节点进行克隆

节点基本信息:


总共需要5台服务器来使用,四台用来搭建Hadoop集群使用,另外一台(可选)作为MySQL等外围管理Hadoop集群来使用。在开发的时候一般也是直接通过连接外围的这台机器来管理Hadoop整个集群

1、VMWare克隆节点和配置

(1)、首先需要在VMWare中将之前创建的单实例的计算机进行克隆。
注意:在克隆过程中一定要选择克隆一个完整的而不是创建链接克隆,也一定不要选择现有的快照。

(2)、配置各个Slave节点的机器信息。
(a)主节点Master的CUP处理器设置成多路多核,这里设成4,其他节点设成1
(b)手动更改各个从节点的计算机名和Hosts文件(必须!)
vim /etc/sysconfig/network
vim /etc/hosts


配置完之后,重启完各个机器之后,确保各个节点之间可以ping 通(重点!!!)

2、节点SSH无密码登录配置

(1)、进行sshd的配置文件的修改,去掉默认注释,开启SSH验证功能(以root用户进行操作)vim /etc/ssh/sshd_config


将上面的这三行数据的注释“#”去掉进行,保存。这里记住了!所有的机器都要这么依次进行设置。RSAAuthentication是指开启SSH验证,PubkeyAuthetication是指可以通过公钥进行验证,AuthorizedkeysFile则指的的是公钥存放的位置。

(2)、重启该服务:/sbin/service sshd restart

(3)、用本机验证一下:ssh localhost这个时候会让你输入密码,是因为没有生成密钥,下面进行设置

(4)、加工生成证书公私钥,分发到各个服务器(以Hadoop用户操作)在Master节点上生成Hadoop用户的公钥,然后将这个公钥分发给各个slave节点,然后这样在Master机器上就可以用Hadoop无密码登录到各个salve机器上面了

(5)、ssh-keygen -t rsa -P ''

红框勾出的路径就是公钥和私钥生成的默认路径

  • 下一步就是将这个公钥复制到各个slave节点中去,远程文件的复制:scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/复制的公钥文件存在默认的路径“/home/hadoop/.ssh”scp ~/.ssh/id_rsa.pub hadoop@192.168.1.51:~/

(这里需要注意的是,所有的机器都要这样配置。)

  • 回到Master机器上面进行,ssh验证SSH <远程IP && 域名>在master机器上登录slave01机器上实验下,看是否还需要进行密码输入ssh slave01.hadoop从Master机器上面无密码的登录到Slave01机器上面,那么说明刚才的配置生效了。
  • 参照上面的步骤将各个Slave节点配置完成
  • 注意:在Master生成密钥只需要生成一次就可以了,不要再次生成!因为每次生成以为着所有的节点都需要重新配置。
  • 参照上面的步骤将各个Slave节点SSH到Master机器(保证各个Slave节点能够无密码登录Master机器,各个Slave子节点干完Master分配的任务之后,需要有权限反馈至Master)
    注意:上面的步骤要一定完成验证,要不以后的Hadoop操作会很出现各种诡异的问题!!

3、Hadoop集群配置

(1)、配置Hadoop集群配置
将这个单节点的配置成一个真正的分布式集群,充分利用我们刚才搭建的几台Server进行性能的最大发挥

(2)、首先进行slaves文件的配置,指定该集群的各个Slave节点的位置(以hadoop用户进行操作)(只需要在Master的机器上面进行就可以了)vim
/usr/hadoop/hadoop-2.6.4/etc/hadoop/slaves
将各个Slave的IP或者机器名写入

(3)、更改hdfs-site.xml文件中的dfs.replication属性值为3(因为有另外3台虚拟机,记住:只能是奇数!)vim
/usr/hadoop/hadoop-2.6.4/etc/hadoop/hdfs-site.xml

(这里需要注意的是,所有的机器都要这样配置。)

(4)、启动Hadoop集群,验证是否成功
先来执行一个HDFS格式的命令(改成完全分布式的集群,所以这里需要重新格式)
bin/hadoop namenode -format

(5)、验证一下整个集群的HDFS是否正常可用,启动整个集群的HDFS,在Master机器上面,用hadoop用户操作start-dfs.sh
通过浏览器来查看整个集群的HDFS状态,地址为:
http://192.168.1.50:50070

(6)、验证一下整个集群的YARN分布式计算框架是否正常可用,启动Yarnstart-yarn.sh

通过浏览器来查看整个集群的Hadoop集群状态,地址为:http://192.168.1.50:8088/

可见当前的Hadoop集群已经存在四个正在运行的节点。

相关推荐

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

超专业解析!10分钟带你搞懂Linux中直接I/O原理

我们先看一张图:这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。这篇文章就以这张图为基础,介绍Linux在I/O上做了哪些事情。文件系统什么是...

linux入门系列12--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经...

Linux环境下如何设置多个交叉编译工具链?

常见的Linux操作系统都可以通过包管理器安装交叉编译工具链,比如Ubuntu环境下使用如下命令安装gcc交叉编译器:sudoapt-getinstallgcc-arm-linux-gnueab...

可算是有文章,把Linux零拷贝技术讲透彻了

阅读本文大概需要6.0分钟。作者:卡巴拉的树链接:https://dwz.cn/BaQWWtmh本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念...

linux软链接的创建、删除和更新

大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作。同样的,在系统级别也有。在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...

linux之间传文件命令之Rsync傻瓜式教程

1.前言linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说...

Linux下删除目录符号链接的方法

技术背景在Linux系统中,符号链接(symlink)是一种特殊的文件,它指向另一个文件或目录。有时候,我们可能需要删除符号链接,但保留其指向的目标目录。然而,在删除符号链接时可能会遇到一些问题,例如...

阿里云国际站注册教程:aa云服务器怎么远程链接?

在全球化的今天,互联网带给我们无以计数的便利,而云服务器则是其中的重要基础设施之一。这篇文章将围绕阿里云国际站注册、aa云服务器如何远程链接,以及服务器安全防护如Ddos防火墙、网站应用防护waf防火...

Linux 5.16 网络子系统大范围升级 多个新适配器驱动加入

Linux在数据中心中占主导地位,因此每个内核升级周期的网络子系统变化仍然相当活跃。Linux5.16也不例外,周一最新与网络相关的更新加入了大量的驱动和新规范的支持。一个较新硬件的驱动是Realt...

搭建局域网文件共享服务(Samba),手机电脑都能看喜欢的影视剧

作为一名影视爱好者,为了方便地观看自己喜欢的影视作品,在家里搞一个专门用来存放电影的服务器是有必要的。蚁哥选则用一台Ubuntu系统的电脑做为服务器,共享影音文件,其他同一个局域网内的电脑或手机可以...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Linux 中创建符号链接的方法

技术背景在Linux系统里,符号链接(SymbolicLink),也被叫做软链接(SoftLink),是一种特殊的文件,它指向另一个文件或者目录。符号链接为文件和目录的管理带来了极大的便利,比...

一文掌握 Linux 符号链接

符号链接(SymbolicLink),通常被称为“软链接”,是Linux文件系统中一种强大而灵活的工具。它允许用户创建指向文件或目录的“快捷方式”,不仅简化了文件管理,还在系统配置、软件开发和日...