hadoop启动_疯狂Hadoop之分布式集群搭建(一)

1c9b45cb1d42ae1660f9a2dd6139089b.png

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集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上

bf1a65a92482e6aea1bbc8496d2a3bb6.png

服务器系统设置

同步时间

查看系统时间命令:date

8f16818fb7690bae6adf1e17c9d680c6.png

手动同步集群各机器时间

命令: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

62310f2dc88dcaf10701cc6c7bf2e879.png

配置IP、主机名映射

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

在文件中配置如下内容:

192.168.149.101 node01

192.168.149.102 node02

192.168.149.103 node03

192.168.149.104 node04

f40039057243cfa8a27670648d1cea34.png

配置ssh免密登录

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

生成ssh免登录秘钥

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

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

bc014459a1d34f4ea0e9782a9171c22c.png

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

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

2edc85a6a6f07fd1aa5d4f6e91207f4d.png

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

配置node03免密登录

817e6e3b185326c4f6f1173f78880557.png

同上操作配置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

69ed2cffbf09869a1ebe425eff7e344e.png

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

8d7d0f3e82fd5f2e4e0bfc1699b4206b.png

编辑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

2bdb79a673225f7aaea419892faf2e90.png

配置core-site.xml文件

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

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

如何配置?

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

01995ab2b6e6cf65db67ea5c88d70630.png

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

2c8f1b3a66cac86dce9604a280632aa7.png

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

d120f9b1a02a50c464e47ba79a345f89.png

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

<property>

<name>fs.defaultFS</name>

<value>hdfs://node01:9820</value>

</property>

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

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

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/hdata/hddata</value>

</property>

配置hdfs-site.xml文件

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

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>node02:9868</value>

</property>

配置workers文件

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

编辑文件命令:vi workers

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

node02

node03

node04

33692fb5d93d4495bcd3a32be39b2782.png

文件分发

使用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格式化的时候会自动创建,所以可以查看该目录是否创建来判断是否格式化成功

c57383d2b0cc3807c0ba5471843cd25d.png

单个启动集群

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

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

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

node01

ead291ce9e77784b80cdcb5e29097181.png

node02

298028cb4201bdccffb5750f37139ad1.png

node03

27efc49dcc8c56784c96ee760d5522c9.png

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

38da65daea9ac69023179bb37f5cdea0.png

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

e17aa3dd9536671b6482d06d6ec01bc9.png

停止YARN集群:stop-yarn.sh

集群web-ui

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

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

如:192.168.149.101:9870

fab742551825af5dd080b93655fda578.png

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

bac46fb045f79b9e9bb557a6e359ed32.png

脚本一键启动

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

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

ec778dc8e5f1258326065c32dafd1727.png

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

3981821c5c4d212209a25317487f4ce9.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值