虚拟机本地搭建Hadoop集群教程

news2025/1/11 7:56:24

Hadoop概述

狭义下Hadoop是Apache的一套开源软件,用java实现,广义上是围绕Hadoop打造的大数据生态圈

http://hadoop.apache.org

Hadoop核心组件:

  • HDFS(分布式文件存储系统):解决海量数据存储
  • YARN(集群资源管理和任务调度框架):解决资源任务调度
  • MapReduce(分布式计算框架):解决海量数据计算

三个组件在逻辑分离,物理可能不分离,有HDFS集群、YARN集群,但没有MapReduce集群

HDFS集群主角色是NameNode,主角色辅助角色是SecondaryNameNode,从角色是DataNode
YARN集群主角色是ResourceManager,从角色是NodeManager
HDFS和YARN组合在一起形成了Hadoop集群

安装Hadoop集群

  • 集群规划

    主机角色
    node1NN DN RM NM
    node2SNN DN NM
    node3DN NM

安装并配置虚拟机

安装VirtualBox,下载centos镜像包,安装虚拟机,配置密码等,启动三台虚拟机

查看主机ip地址 https://www.cnblogs.com/Kalashnikov/p/16175608.html

虚拟机设置为双网卡:网络地址转换NAT、host only使得虚拟机可联外部网并内部访问

设置虚拟机可ssh连接 https://blog.csdn.net/qq_35760825/article/details/127187154 然后就可以通过xshell连接三台主机

主机名配置

# 将host1的该文件内容改为node1.itcast.cn,其他两台类推
vi /etc/hostname
# 修改主机映射文件
vi /etc/hosts
# 在文件末端添加以下内容
192.168.56.101 node2.itcast.cn node2
192.168.56.102 node1.itcast.cn node1
192.168.56.103 node3.itcast.cn node3

主机间免密登录

# 只需要配置node1至node1、node2、node3即可
  
#node1生成公钥私钥 (一路回车)
ssh-keygen  
  	
#node1配置免密登录到node1 node2 node3
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

安装hadoop

  • 安装jdk
    https://blog.csdn.net/weixin_45853881/article/details/123402891

    将官网下载的压缩包上传到/export/software目录

    解压

     tar -xvf /export/software/jdk-8u241-linux-x64.tar.gz -C /export/server/
    
    #配置环境变量
    vi /etc/profile
    
    export JAVA_HOME=/export/server/jdk1.8.0_241
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    #重新加载环境变量文件
    source /etc/profile
    
  • 安装hadoop http://t.zoukankan.com/theyang-p-12336391.html

    hadoop官网下载.tar.gz源码包,传到/export/software并解压

    tar -xvf /export/software/hadoop-3.3.4.tar.gz -C /export/server/
    
  • 配置环境变量

    • 修改配置文件(配置文件路径 hadoop-3.3.4/etc/hadoop)

    • hadoop-env.sh

      #文件最后添加
      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 
      
    • core-site.xml

      <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://node1:8020</value>
      </property>
      
      <!-- 设置Hadoop本地保存数据路径 -->
      <property>
          <name>hadoop.tmp.dir</name>
          <value>/export/data/hadoop-3.3.0</value>
      </property>
      
      <!-- 设置HDFS web UI用户身份 -->
      <property>
          <name>hadoop.http.staticuser.user</name>
          <value>root</value>
      </property>
      
      <!-- 整合hive 用户代理设置 -->
      <property>
          <name>hadoop.proxyuser.root.hosts</name>
          <value>*</value>
      </property>
      
      <property>
          <name>hadoop.proxyuser.root.groups</name>
          <value>*</value>
      </property>
      
      <!-- 文件系统垃圾桶保存时间 -->
      <property>
          <name>fs.trash.interval</name>
          <value>1440</value>
      </property>
      
    • hdfs-site.xml

      <!-- 设置SNN进程运行机器位置信息 -->
      <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>node2:9868</value>
      </property>
      
    • mapred-site.xml

      <!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
      
      <!-- MR程序历史服务地址 -->
      <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
      </property>
       
      <!-- MR程序历史服务器web端地址 -->
      <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
      </property>
      
      <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
      </property>
      
      <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
      </property>
      
      <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
      </property>
      
    • yarn-site.xml

      <!-- 设置YARN集群主角色运行机器位置 -->
      <property>
      	<name>yarn.resourcemanager.hostname</name>
      	<value>node1</value>
      </property>
      
      <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
      </property>
      
      <!-- 是否将对容器实施物理内存限制 -->
      <property>
          <name>yarn.nodemanager.pmem-check-enabled</name>
          <value>false</value>
      </property>
      
      <!-- 是否将对容器实施虚拟内存限制。 -->
      <property>
          <name>yarn.nodemanager.vmem-check-enabled</name>
          <value>false</value>
      </property>
      
      <!-- 开启日志聚集 -->
      <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
      </property>
      
      <!-- 设置yarn历史服务器地址 -->
      <property>
          <name>yarn.log.server.url</name>
          <value>http://node1:19888/jobhistory/logs</value>
      </property>
      
      <!-- 历史日志保存的时间 7天 -->
      <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
      </property>
      
    • workers

      node1.itcast.cn
      node2.itcast.cn
      node3.itcast.cn
      
  • 分发同步hadoop安装包

    cd /export/server
    
    scp -r hadoop-3.3.4 root@node2:$PWD
    scp -r hadoop-3.3.4 root@node3:$PWD
    
  • 将修改后的环境变量同步其他机器

    scp /etc/profile root@node2:/etc/
    scp /etc/profile root@node3:/etc/
    # 再分别在三台机器上启用新的配置
    source /etc/profile
    
  • 验证是否成功安装

    #能够成功查看版本说明安装成功
    hadoop version
    

    NameNode format格式化操作

    首次启动HDFS时,必须对其进行格式化操作

    hdfs namenode -format
    
    # 出现2023-01-18 00:39:48,704 INFO common.Storage: Storage directory /export/data/hadoop-3.3.0/dfs/name has been successfully formatted. 这样的字样说明格式化成功
    

    启动集群并查看进程

    # 启动hdfs集群
    start-dfs.sh 
    # 启动yarn集群
    start-yarn.sh
    # jps分别查看一下三台的java进程
    
    • node1
      在这里插入图片描述
    • node2
      在这里插入图片描述
    • node3
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/170253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring 常用组件

一. Spring 解决了什么问题 Spring 核心功能是整合&#xff0c;提供一个管理组件的容器&#xff0c; 以 Bean的形式管理组件及对象。Spring 采用分层架构和组件化设计&#xff0c;允许分层&#xff0c;插件化选择组件。二. Spring 整体架构 Spring4架构图 三. Spring 组件 1.…

Spring | 整合MyBatis中SqlSessionTemplate和MapperScannerConfigurer类的使用

0️⃣初始配置&#x1f6a9;pom.xml导入依赖<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"ht…

大数据开发工程师考试分享

在2022年年尾伴随着疫情政策的放开&#xff0c;压抑了3年的活力与生机正在悄然地蓄势待发。回顾这一整年&#xff0c;我们经历了核酸考验&#xff0c;互联网裁员危机&#xff0c;以及正面面对新冠等等。总之&#xff0c;在这一年无论是生活还是工作&#xff0c;大家都面临了不同…

大公司VS小公司,怎样选择更有前途?

你好&#xff0c;我是王喆。 学完上一讲&#xff0c;你已经知道了如何选择一个有前景的职业方向。在大方向确定好之后&#xff0c;接下来的问题就是如何在这个方向上进行具体的职业发展规划了。 我想你一定听说过很多牛人的“职场升级”故事&#xff1a;工作3年升到P7&#x…

春节不打烊,这份安全应急指南请收好!

春节作为中国的传统节日&#xff0c;不仅是各个企业的营销重点周期&#xff0c;也是黑灰产高发节点之一。尤其是伴随着互联网的兴起&#xff0c;春节红包逐渐成为主流营销节目&#xff0c;从支付宝的集五福到各种各样的红包活动&#xff0c;不断翻新的营销花样让黑灰产们赚的盆…

JUC面试(三)——CAS

CAS CAS的全称是Compare-And-Swap&#xff0c;它是CPU并发原语&#xff0c;自旋锁 它的功能是判断内存某个位置的值是否为期望值&#xff0c;如果是则更改为新的值&#xff0c;这个过程是原子的 CAS并发原语体现在Java语言中就是sun.misc.Unsafe类的各个方法。调用UnSafe类中…

深度学习 GAN生成对抗网络-1010格式数据生成简单案例

一、前言 本文不花费大量的篇幅来推导数学公式&#xff0c;而是使用一个非常简单的案例来帮助我们了解GAN生成对抗网络。 二、GAN概念 生成对抗网络&#xff08;Generative Adversarial Networks&#xff0c;GAN&#xff09;包含生成器&#xff08;Generator&#xff09;和鉴…

HyperLogLog和Set比较 !!!

HyperLogLog和Set比较 HyperLogLog HyperLogLog常用于大数据量的统计&#xff0c; 比如页面访问量统计或者用户访问量统计&#xff0c;作为一种概率数据结构&#xff0c;HyperLogLog 以完美的精度换取高效的空间利用率。Redis HyperLogLog 实现最多使用 12 KB&#xff0c;并提…

docker推送镜像至阿里私有镜像仓库

文章目录一、注册阿里私有镜像仓库二、将公共镜像推送至私有镜像仓库1、首先拉取到mysql镜像2、登录阿里云Docker Registry&#xff08;这里的信息要更换成自己的&#xff09;3、将mysql镜像推送至Registry4、查看5、拉取镜像三、将正在启动的容器导出并推送至私有仓库1、将启动…

二分查找的最多比较次数

答案 对于二分搜索次数最多的问题&#xff0c;计算公式为&#xff0c;其中a , b , n 均为整数 当顺序表有n个关键字时候&#xff0c;查找失败&#xff0c;至少需要比较a次关键字 查找成功&#xff0c;至少需要b次 举例 已有从小到大排序的10000个数据&#xff0c;用二分查…

密码框限制xxs注入字符处理

<template><a-form-model-item ref"password" prop"password"><a-input-passwordplaceholder"请输入登录密码"v-model"cusForm.password"/></a-form-model-item> </template><script> export def…

「自控原理」3.2 二阶系统时域分析

本节介绍二阶系统的时域分析&#xff0c;主要介绍欠阻尼情况下的时间响应与动态性能指标 文章目录概述极点的表示方法无阻尼响应临界阻尼响应过阻尼响应欠阻尼响应欠阻尼系统的单位阶跃响应动态性能与极点分布的关系例题改善二阶系统动态性能的措施概述 二阶系统时间响应比较重…

elementUI如何设置input不可编辑

打开一个vue文件&#xff0c;添加一个input标签。如图&#xff1a; 添加disabled设置不可编辑。如图&#xff1a; 保存vue文件后使用浏览器打开&#xff0c;页面上显示的input已经实现不可编辑效果。如图&#xff1a; 参考&#xff1a;elementUI如何设置input不可编辑-百度…

出现死锁的场景分析及解决方法

在上一篇互斥锁的时候最后使用Account.class作为互斥锁&#xff0c;来解决转载问题&#xff0c;所有的账户转账操作都是串行的&#xff0c;性能太差。 我们可以考虑缩小锁定的范围&#xff0c;使用细粒度的锁&#xff0c;来提高并行度。例如用两把锁&#xff0c;转出账本一把&…

Python - 数据容器set(集合)

目录 集合的定义 集合的常用操作 添加新元素 add 移除元素 remove 从集合中随机取出元素 pop 清空集合 clear 取出2个集合的差集 difference 消除2个集合的交集 difference_update 2个集合合并 union for循环遍历 set的实用应用 集合的定义 不支持元素的重复&#…

软件设计师学习笔记-程序设计语言基础知识

前言 备战2023年5月份的软件设计师考试&#xff0c;在此记录学习之路。 知识点总结&#xff0c;具体内容请查看对应的模块。 提示&#xff1a;这里有软件设计师资料&#xff0c;包含软件设计师考试大纲、软件设计师第五版官方教程、历年考试真题。 通过百度网盘分享的文件&am…

好好学习,天天向上——“C”

各位uu们我又来啦&#xff0c;今天小雅兰来给大家分享一个有意思的东西&#xff0c;是为&#xff1a;天天向上的力量 基本问题&#xff1a;持续的价值 一年365天&#xff0c;每天进步1%&#xff0c;累积进步多少呢&#xff1f; 1.01^365 一年365天&#xff0c;每天退步1%&#…

python(运算符,顺序,选择,循环语句)

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;本专栏主要更新一些python的基础知识&#xff0c;也会实现一些小游戏和通讯录&#xff0c;学时管理系统之类的&#xff0c;有兴趣的朋友可以关注一下。 python基础语法2前言一、输入输出1.通过控制台输…

CSS 伪类

CSS 伪类 CSS 伪类是添加到选择器的关键字&#xff0c;用于指定所选元素的特殊状态。例如&#xff0c;伪类 :hover 可以用于选择一个按钮&#xff0c;当用户的指针悬停在按钮上时&#xff0c;设置此按钮的样式。 举例说明: button:hover {color: blue; }伪类由冒号&#xff…

【应用】SpringBoot -- Webflux + R2DBC 操作 MySQL

SpringBoot -- Webflux R2DBC 操作 MySQLWebflux 概述Webflux 基本使用Webflux R2DBC 操作 MySQLController ServiceRoute Handler参考文章Webflux 概述 简单来说&#xff0c;Webflux 是响应式编程的框架&#xff0c;与其对等的概念是 SpringMVC。两者的不同之处在于 Webf…