疯狂Hadoop之分布式集群搭建(一)

Hadoop3集群搭建

Hadoop简介

Hadoop是apache旗下一个用java语言实现的开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量的计算机集群上对大型数据集进行分布式处理

 

Hadoop组件核心有

HDFS(分布式文件系统):解决海量数据存储

YARN(作业调度和集群资源管理的框架):解决资源任务调度

MAPREDUCE(分布式运算编程框架):解决海量数据计算

 

Hadoop特性优点

扩容能力:Hadoop是在可用的计算机集群间分配数据并完成计算任务,这些集群可以方便的扩展到数以千计的节点中

成本低:Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低

高效率:通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快

可靠性:能自动维护数据的多份复制,并且在任务失败后能自动的重新部署计算任务,所以Hadoop的按位存储和处理数据的能力值得人们信赖

 

集群简介

Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起

HDFS集群负责海量数据存储,集群中的主要角色有:

NameNode、DataNode、SecondaryNameNode

YARN集群负责海量数据运算时的资源调度,集群中的主要角色有:

ResourceManager、NodeManager

Mapreduce是一个分布式运算编程框架,是应用程序开发包,有用户按照编程规范进行程序开发后打包运行在HDFS集群上,并且受到YARN集群的资源调度管理

 

Hadoop部署方式分为三种:Standalone mode(独立模式)、Pseudo-Distributed mode(伪分布式模式)、Cluster mode(集群模式),其中前两种都是在单机部署

独立模式又称为单机模式,仅1个机器运行1个java进程,主要用于调试

伪分布式也是在1个机器上运行HDFS的Namenode和DataNode、YARN的ResourceManager和NodeManager,但分别启动单独的java进程,主要用于调试

集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上

疯狂Hadoop之分布式集群搭建(一)_第1张图片

服务器系统设置

同步时间

查看系统时间命令:date

手动同步集群各机器时间

命令:date -s “2020-02-15 13:10:33”

网络同步时间

命令

yum install ntpdate

ntpdate http://cn.pool.ntp.org

 

设置主机名

编辑文件命令:vi /etc/sysconfig/network

在文件中编写如下内容

NETWORKING=yes

HOSTNAME=node01

疯狂Hadoop之分布式集群搭建(一)_第2张图片

配置IP、主机名映射

编辑文件命令:vi /etc/hosts

在文件中配置如下内容:

192.168.149.101 node01

192.168.149.102 node02

192.168.149.103 node03

192.168.149.104 node04

疯狂Hadoop之分布式集群搭建(一)_第3张图片

配置ssh免密登录

一般配置主节点到从节点的免密登录

生成ssh免登录秘钥

命令:ssh-keygen -t rsa,输入完命令之后按四次enter键

执行完这个命令后,会生成id_rsa(私钥)、id_rsa.pub(公钥)

疯狂Hadoop之分布式集群搭建(一)_第4张图片

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

如:在node01机器上拷贝node02公钥:ssh-copy-id node02

疯狂Hadoop之分布式集群搭建(一)_第5张图片

拷贝完成之后,在node01上就可以免密登录node02

配置node03免密登录

疯狂Hadoop之分布式集群搭建(一)_第6张图片

同上操作配置node04免密登录

 

Hadoop安装包目录结构

bin包:Hadoop最基本的管理脚本和使用脚本的目录

etc包:Hadoop配置文件所在目录

include包:对外提供的编程库头文件(具体动态库和静态库在lib目录中)

lib包:该目录包含了Hadoop对外提供的编程动态库与静态库,与include目录中的 头文件结合使用

libexec包:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启 动参数等基本信息

sbin包:Hadoop管理脚本所在目录,主要包含HDFS和YARN中各类服务的启动/ 关闭脚本

share包:Hadoop各个模块编译后的.jar包所在目录

 

Hadoop3分布式安装

上传hadoop-3.2.1.tar.gz到node01服务器

解压安装包命令:tar -zxvf hadoop-3.2.1.tar.gz

删除hadoop-3.2.1.tar.gz压缩包命令:rm -f hadoop-3.2.1.tar.gz

疯狂Hadoop之分布式集群搭建(一)_第7张图片

Hadoop配置文件修改

Hadoop安装主要就是配置文件的修改,一般在主节点进行修改,修改完毕后下发给其他各个从节点机器

进入hadoop配置文件目录中去

命令:cd hadoop-3.2.1/etc/hadoop/

 

配置hadoop-env.sh文件

文件中设置的是Hadoop运行时需要的环境变量,JAVA_HOME是必须设置的

找到jdk安装路径地址

命令:echo $JAVA_HOME

/usr/java/jdk1.8.0_60

编辑hadoop-env.sh文件命令:vi hadoop-env.sh

在该文件中需要配置jdk的环境变量,并指定NameNode、DataNode、SecondaryNameNode使用的用户,一般是root

export JAVA_HOME=/usr/java/jdk1.8.0_60
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_NODEMANAGER_USER=root
export YARN_RESOURCEMANAGER_USER=root

疯狂Hadoop之分布式集群搭建(一)_第8张图片

配置core-site.xml文件

hadoop的核心配置文件,有默认的配置项core-default.xml

指定HADOOP所使用的文件系统schema,HDFS的老大(NameNode)的地址

如何配置?

打开hadoop-3.2.1---share----doc---hadoop----index.html文件

疯狂Hadoop之分布式集群搭建(一)_第9张图片

在打开的网页中点击Single Node Setup

疯狂Hadoop之分布式集群搭建(一)_第10张图片

找到core-site.xml的配置语句

疯狂Hadoop之分布式集群搭建(一)_第11张图片

 

修改成如下代码,hadoop3默认端口为9820

fs.defaultFS

hdfs://node01:9820

 

指定hadoop运行时产生文件的存储目录,默认/tmp/hadoop-&{user.name}

tmp目录会未经过同意,直接删除其中的文件,所以需要重新定义一个文件存储目录

hadoop.tmp.dir

/opt/hdata/hddata

 

配置hdfs-site.xml文件

指定HDFS副本的数量,默认备份3份

dfs.replication

2

dfs.namenode.secondary.http-address

node02:9868

 

 

配置workers文件

workers文件,里面写上从节点所在的主机名

编辑文件命令:vi workers

在改文件中配置hadoop集群的节点

node02

node03

node04

疯狂Hadoop之分布式集群搭建(一)_第12张图片

文件分发

使用scp命令下发hadoop-3.2.1到node02、node03、node04上

scp -r hadoop-3.2.1 root@node02:/root

scp -r hadoop-3.2.1 root@node03:/root

scp -r hadoop-3.2.1 root@node04:/root

 

配置hadoop3环境变量

编辑文件命令:vi /etc/profile

 

在文件中添加红色部分代码

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

export HADOOP_HOME=/root/hadoop-3.2.1

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

重新加载配置文件命令:source /etc/profile

 

文件分发

将/etc/profile配置文件分发到node02、node03、node04上

scp /etc/profile node02:/etc/

scp /etc/profile node03:/etc/

scp /etc/profile node04:/etc/

在node02、node03、node04上重新加载配置文件

source /etc/profile

 

Hadoop3集群启动、初体验

要启动Hadoop集群,需要启动HDFS和YARN两个集群

注意:首次启动HDFS时,必须对其进行格式化操作,本质上是一些清理和准备工作,因此此时的HDFS在物理上还是不存在的

格式化命令:hdfs namenode -format或者hadoop namenode -format

 

因为在配置core-site.xml文件的时候,配置了一个文件存储目录,该目录没有创建,在hadoop格式化的时候会自动创建,所以可以查看该目录是否创建来判断是否格式化成功

疯狂Hadoop之分布式集群搭建(一)_第13张图片

单个启动集群

如果配置了etc/hadoop/workers和ssh免密登录,则可以使用程序脚本启动所有hadoop两个集群的相关进程,在主节点所设定的机器上执行

启动HDFS集群命令:start-dfs.sh

通过jps可以查看每台虚拟机上启动的节点信息

node01

疯狂Hadoop之分布式集群搭建(一)_第14张图片

node02

 

疯狂Hadoop之分布式集群搭建(一)_第15张图片

node03

疯狂Hadoop之分布式集群搭建(一)_第16张图片

 

停止HDFS集群命令:stop-dfs.sh

疯狂Hadoop之分布式集群搭建(一)_第17张图片

 

 

启动YARN集群命令:start-yarn.sh

疯狂Hadoop之分布式集群搭建(一)_第18张图片

 

停止YARN集群:stop-yarn.sh

 

 

集群web-ui

一旦Hadoop集群启动并运行,可以通过web-ui进行集群查看,如下所述

Namenode:http://nn_host:port/ 默认9870

如:192.168.149.101:9870

疯狂Hadoop之分布式集群搭建(一)_第19张图片

YARN集群页面展示,默认端口号为8088。如:192.168.149.101:8088

疯狂Hadoop之分布式集群搭建(一)_第20张图片

脚本一键启动

接下来需要同时启动HDFS集群与YARN集群,启动命令在hadoop-2.6.5/sbin目录下

进入该目录命令:cd hadoop-2.6.5/sbin/

疯狂Hadoop之分布式集群搭建(一)_第21张图片

一键启动命令:start-all.sh

疯狂Hadoop之分布式集群搭建(一)_第22张图片

你可能感兴趣的:(疯狂Hadoop之分布式集群搭建(一))