IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop集群搭建 -> 正文阅读

[大数据]Hadoop集群搭建


前言

#博学谷IT学习技术支持#
想要了解Hadoop相关框架,首先就是搭建Hadoop集群,然后再学习Hadoop相关知识,边学习边实操,可以大大提高学习的效率。

一、Hadoop概述

Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。
Hadoop的核心组件有:
(1) HDFS 分布式文件存储系统,解决海量数据存储
(2)YARN 作业调度和集群资源管理的框架,解决资源任务调度
(3)MapReduce分布式运算编程框架,解决海量数据计算

二、Hadoop特性优点

(1)扩容能力强,Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可用方便的扩展到数以千计的节点中。
(2)成本低,Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低。
(3)高效,通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快。
(4)可靠性强,能自动维护数据的多份复制,并且在任务失败后能自动地重新部署计算任务。

三、Hadoop集群搭建

(一)集群简介

Hadoop集群主要包含两个集群:HDFS集群和Yarn集群,两者逻辑上分离,但物理上常在一起。
HDFS集群负责海量数据的存储,集群中的角色主要有:
NameNode、DataNode、SecondaryNameNode
Yarn集群负责海量数据运算时的资源调度,集群中的角色主要有:
ResourceManager、NodeManager
Hadoop中的MapReduce其实是一个分布式运算编程框架,是应用程序开发包,由用户按照编程规范进行程序开发,后打包运行在HDFS集群上,并且受到Yarn集群的资源调度管理。

(二)集群规划

本次主要搭建的是集群模式,集群模式主要用于生产环境部署,需要多台主机,并且这些主机之间可以相互访问,我们在之前搭建好基础环境的三台虚拟机上进行Hadoop的搭建,以下是集群规划:
在这里插入图片描述

(三)解压Hadoop安装包

上传解压hadoop 3.1.4安装文件
cd /export/software
rz
--------------------------------
解压
tar -zxvf hadoop-3.1.4-bin-snappy-CentOS7.tar.gz -C /export/server/

# 在每个节点中创建用于存放数据的data目录
mkdir -p /export/server/hadoop-3.1.4/data

(四)编辑配置文件

  1. 配置NameNode(core-site.xml)
cd /export/server/hadoop-3.1.4/etc/hadoop
vim core-site.xml
--------------------------------
在第19行下添加以下内容:
<!-- 默认文件系统的名称。通过URI中schema区分不同文件系统。-->
<!-- file:///本地文件系统 hdfs:// hadoop分布式文件系统 gfs://。-->
<!-- hdfs文件系统访问地址:http://nn_host:8020。-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
</property>
<!-- hadoop本地数据存储目录 format时自动生成 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/export/server/hadoop-3.1.4/data</value>
</property>
<!-- 在Web UI访问HDFS使用的用户名。-->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>
  1. 配置HDFS路径(hdfs-site.xml)
vim hdfs-site.xml

在第20行下添加以下内容:
<!-- 设定SNN运行主机和端口。-->
<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>node2:9868</value>
</property>
  1. 配置Yarn(yarn-site.xml)
vim yarn-site.xml
--------------------------------
在第18行下添加以下内容:

<!-- yarn集群主角色RM运行机器。-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率。-->
<property>
  <name>yarn.nodemanager.vmem-pmem-ratio</name>
  <value>4</value>
</property>
  1. 配置MapReduce(mapred-site.xml)
vim mapred-site.xml
----------------------------------
在第20行下添加以下内容:
<!-- mr程序默认运行方式。yarn集群模式 local本地模式-->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<!-- MR App Master环境变量。-->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR MapTask环境变量。-->
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask环境变量。-->
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property> <property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
  1. 修改workers文件
vim /export/server/hadoop-3.1.4/etc/hadoop/workers
----------------------------------
# 删除第一行localhost,然后添加以下三行
node1
node2
node3
  1. 修改hadoop.env环境变量
hadoop.env文件
vim /export/server/hadoop-3.1.4/etc/hadoop/hadoop-env.sh 
----------------------------------
修改第54行为:
export JAVA_HOME=/export/server/jdk1.8.0_241

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
  1. 配置环境变量
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.1.4
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

source /etc/profile
  1. 由于Hadoop集群中设置了三台主机,而以上只在一台主机上配置,所以需要将以上Hadoop安装文件和环境变量分发到其他两台主机上
在node1节点上执行:
	cd /export/server/
	scp -r hadoop-3.1.4 node2:$PWD
	scp -r hadoop-3.1.4 node3:$PWD
	scp /etc/profile node2:/etc
	scp /etc/profile node3:/etc
在每个节点上执行
	source /etc/profile
  1. 格式化HDFS
    首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的HDFS在物理上还是不存在的。只需要在node1上进行格式化,只能格式化一次
cd /export/server/hadoop-3.1.4
bin/hdfs namenode -format
  1. 一键启动HDFS集群和Yarn集群
-- 一键启动HDFS、YARN
start-all.sh
-- 一键关闭HDFS、YARN
stop-all.sh
  1. 配置windows域名映射
    (1)以管理员身份打开C:\Windows\System32\drivers\etc目录下的hosts文件
    (2)在文件最后添加以下映射域名和ip映射关系,然后保存文件并退出
192.168.88.161 node1
192.168.88.162 node2
192.168.88.163 node3
  1. 访问WebUI
    NameNode: http://node1:9870
    Yarn: http://node1:8088

总结

本次Hadoop集群主要用到三台Linux的主机,并且按照以上流程搭建好Hadoop集群;使用Shell命令即可一键开启Hadoop集群,开启集群后便可在浏览器上输入相关地址访问对应集群。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:16:02  更:2022-12-25 11:18:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 23:53:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码