hadoop集群搭建

2023-11-05

文章目录

一、基本配置(所有节点)

(一)配置静态网络
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcgf-ens192

在这里插入图片描述
开启网卡服务

[root@localhost ~]# service network start
(二)修改主机名和修改host文件
[root@localhost ~]# hostnamectl --static set-hostname master
[root@localhost ~]# hostnamectl

在这里插入图片描述

[root@localhost ~]# vi /etc/hosts

在这里插入图片描述
在master直接将hosts文件发送给其他两个节点

[root@localhost ~]# scp -r /etc/hosts slave1:/etc/hosts
[root@localhost ~]# scp -r /etc/hosts slave2:/etc/hosts
(三)禁用SELINUX
[root@localhost ~]# vi /etc/sysconfig/selinux

在这里插入图片描述
同样将文件发给其他两个节点

[root@localhost ~]# scp -r /etc/sysconfig/selinux slave1:/etc/sysconfig/
[root@localhost ~]# scp -r /etc/sysconfig/selinux slave2:/etc/sysconfig/
(四)关闭防火墙、并取消开机自启动
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# systemctl disable firewalld.service

在这里插入图片描述

(五)配置NTP时间同步(集群所有节点)
[root@localhost ~]# yum install chrony -y

下载完成后 修改chrony.conf配置文件

[root@localhost ~]# vi /etc/chrony.conf

master 节点
在这里插入图片描述
slave1和slave2 节点
在这里插入图片描述
启动服务并设置开机自启动

[root@localhost ~]# systemctl start chronyd.service
[root@localhost ~]# systemctl enable chronyd.service

删除本地时间分区: rm /etc/localtime
创建时间分区链接文件: ln -s /usr/share/zoneinfo/Universal /etc/localtime
查看时间: timedatectl status

[root@localhost ~]#  rm /etc/localtime
rm:是否删除符号链接 "/etc/localtime"?y
[root@localhost ~]# ln -s /usr/share/zoneinfo/Universal /etc/localtime
[root@localhost ~]#  timedatectl status

在这里插入图片描述

(六)下载一下vim编辑器
[root@localhost ~]#  yum install vim
(七)安装JDK1.8
[root@localhost ~]# yum install java-1.8.0-openjdk* -y

查看java安装目录
之后环境变量JAVA_HOME时会用到这个路径

[root@localhost ~]# ll /etc/alternatives/java
(八)创建hadoop用户(所有节点)

(1)创建用户:useradd hdfs
(2)修改密码:passwd hdfs
(3)配置sudo 免密权限:
在root 用户下,编辑文件/etc/sudoers
增加以下一行

[root@localhost ~]#useradd hdfs
[root@localhost ~]#passwd hdfs
[root@localhost ~]#vi /etc/sudoers

在这里插入图片描述

二、开始安装hadoop

(一)hdfs用户下的ssh免密登录(所有节点)
[hdfs@master root]$ ssh-keygen -t rsa

一直默认回车
在这里插入图片描述
将密钥发送到其它主机:

[hdfs@master root]$ ssh-copy-id -i ~/.ssh/id_rsa.pub master
[hdfs@master root]$ ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
[hdfs@master root]$ ssh-copy-id -i ~/.ssh/id_rsa.pub slave2

在这里插入图片描述

(二)下载hadoop(主节点)

1.wget没有下载的话可以用 yum install wget
如果权限不够的话可以用sudo

[hdfs@master root]$sudo wget http://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

2.解压到/home/hdfs/bigdata/opt/目录下

[hdfs@master root]$ sudo tar -zxvf hadoop-2.6.0.tar.gz -C /home/hdfs/bigdata/opt/
(三)配置jdk1.8和hadoop2.6的环境变量
[hdfs@master root]$ sudo vim /etc/profile
export JAVA_HOME='/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64'
export HADOOP_HOME='/home/hdfs/bigdata/opt/hadoop-2.6.0'
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使环境变量生效并且查验

[hdfs@master root]$ source /etc/profile   #使环境变量生效
[hdfs@master root]$ echo $HADOOP_HOME
/home/hdfs/bigdata/opt/hadoop-2.6.0
[hdfs@master root]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
(四)创建一些hadoop 数据存放的目录
(1)临时数据存放目录:
[hdfs@master root]$ mkdir -p /home/hdfs/bigdata/hadoopData/tmp
(2)namenode 上存储hdfs 名字空间元数据
[hdfs@master root]$ mkdir -p /home/hdfs/bigdata/hadoopData/hdfs/namenode
(3)datanode 上数据块的物理存储位置
[hdfs@master root]$ mkdir -p /home/hdfs/bigdata/hadoopData/hdfs/datanode
(五)修改hadoop 配置文件

关于配置文件以及参数说明

进入到hadoop的配置文件夹中

[hdfs@master root]$ cd $HADOOP_HOME/etc/hadoop

(1)修改配置文件hadoop-env.sh
[hdfs@master hadoop]$ ll /etc/alternatives/java
[hdfs@master hadoop]$ sudo vim hadoop-env.sh 

在这里插入图片描述

(2)修改配置文件core-site.xml
[hdfs@master hadoop]$ sudo vim core-site.xml

fs.defaultFS 参数配置的是HDFS 的地址,hdfs://主机名:端口号
hadoop.tmp.dir 参数配置的是hadoop 临时数据存放的目录

        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hdfs/bigdata/hadoopData/tmp</value>
        </property>

在这里插入图片描述

(3)修改配置文件hdfs-site.xml
[hdfs@master hadoop]$ sudo vim hdfs-site.xml

dfs.replication 参数配置的是备份副本的数量,这个数量不能大于datanode 的数量。系统默
认是3 份
dfs.name.dir 参数配置的是namenode 上存储hdfs 名字空间元数据
dfs.data.dir 参数配置的是datanode 上数据块的物理存储位置

        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.dir</name>
                <value>/home/hdfs/bigdata/hadoopData/hdfs/namenode</value>
        </property>
        <property>
                <name>dfs.datanode.dir</name>
                <value>/home/hdfs/bigdata/hadoopData/hdfs/datanode</value>
        </property>

在这里插入图片描述

(4)修改配置文件mapred-site.xml

因为配置文件mapred-site.xml 是不存在的,但有一个mapred-site.xml.temple 文件,所以我
们可以复制一个mapred-site.xml 出来

[hdfs@master hadoop]$ sudo cp mapred-site.xml.template mapred-site.xml
[hdfs@master hadoop]$ sudo vim mapred-site.xml

mapreduce.framework.name 参数配置的是mapreduce 的运行框架,这里使用的yarn 框架

        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>

在这里插入图片描述

(5)修改配置文件yarn-site.xml
[hdfs@master hadoop]$ sudo vim yarn-site.xml 

yarn.nodemanager.sux-services 参数配置的是yarn 的默认混洗方式,这里配置的是mapreduce
的默认混洗算法

        <property>
                <name>yarn.nodemanager.sux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>

在这里插入图片描述

(6)配置文件slaves
[hdfs@master hadoop]$ sudo vim slaves

在里面写上所有datanode 节点的主机名
在这里插入图片描述

(六)将hadoop 文件发送到其它节点
(1)将bigdata整个文件夹给slave节点(包含创建一些hadoop 数据存放的目录)
[hdfs@master bigdata]$ scp -r /home/hdfs/bigdata/ slave1:/home/hdfs/
[hdfs@master bigdata]$ scp -r /home/hdfs/bigdata/ slave2:/home/hdfs/


(2)slave节点的环境变量记得配

三、启动服务

(一)格式化HDFS(主节点)
[hdfs@master bigdata]$ hdfs namenode -format

只需要格式化一次就行,出现successfully 就代表格式化成功
在这里插入图片描述

(二)启动HDFS(所有节点)

(1)启动NameNode
(2)启动Datanode
(3)启动SecondaryNamenode

[hdfs@master bigdata]$ hadoop-daemon.sh start namenode
[hdfs@master bigdata]$ hadoop-daemon.sh start datanode
[hdfs@master bigdata]$ hadoop-daemon.sh start secondarynamenode
(三)启动YARN(所有节点)

(1)启动Resourcemanager
(2)启动nodemanager

[hdfs@master bigdata]$ yarn-daemon.sh start resourcemanager
[hdfs@master bigdata]$ yarn-daemon.sh start nodemanager

也可以使用start-all.sh 一起启动所有的服务

(四)访问HDFS和YARN

在浏览器输入:http://10.18.16.110:50070,hadoop2.x hdfs 的默认访问端口是50070,
hadoop3.x hdfs 的默认访问端口是9870

在这里插入图片描述
在浏览器输入http://10.18.16.110:8088,8088 是YARN 的默认访问端口

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hadoop集群搭建 的相关文章

随机推荐

  • 华为OD机试 - 找车位(Java)

    题目描述 停车场有一横排车位 0代表没有停车 1代表有车 至少停了一辆车在车位上 也至少有一个空位没有停车 为了防剐蹭 需为停车人找到一个车位 使得距停车人的车最近的车辆的距离是最大的 返回此时的最大距离 输入描述 一个用半角逗号分割的停车
  • Zookeeper 基本数据模型

    介绍 ZooKeeper是一个树形结构 类似于前端开发中的tree js组件 ZooKeeper的数据模型也可以理解为linux unix的文件目录 usr local 每个节点都称为znode 它可以有子节点 也可以有数据 每个节点分为临
  • 正则表达式-分组与后向引用

    前文中 已经总结了正则表达式中的常用字符 次数匹配 位置匹配等 这篇文章中 我们来了解一下正则中的 分组 与 后向引用 什么是分组 什么是后向引用 我们慢慢聊 先来说说什么是分组 算了 思考了半天 我也不知道从何说起 先看个示例吧 根据示例
  • 对NetBackup 问题进行故障排除的步骤

    错误消息通常是指出哪里出现故障的手段 如果在界面上没有看到错误消息 但仍怀疑有问题 请检查报告和日志 NetBackup提供了各种报告和日志记录工具 这些工具可提供错误消息 直接为您指出解决方案 日志还可显示什么运行良好以及当发生问题时Ne
  • html设置 元素最小宽度,css如何让元素宽度自适应屏幕大小

    如今 手机的快速发展使得越来越多的人开始使用手机上网 那么就会出现一个问题 如何才能让PC端的网页在手机上正常显示 让元素能够自动适应不同的屏幕大小呢 css如何让元素宽度自适应屏幕大小 1 在网页代码的头部 加入一行viewport元标签
  • Unity中SLua、Tolua、XLua和ILRuntime效率评测

    Unity脚本效率评测 对SLua Tolua XLua和ILRuntime四个脚本插件进行效率测试 对框架脚本进行选型 本文项目 https github com cateatcatx UnityScriptPTest tolua htt
  • Apache Shiro(三)——Spring Boot 与 Shiro的 整合

    在了解了Apache Shiro的架构 认证 授权之后 我们来看一下Shiro与Web的整合 下面以Spring Boot为例 介绍一下Spring Boot 与 Shiro的 整合 一 创建一个Spring Boot项目 可以使用IDEA
  • asio(十二)、 异步tcp、udp服务器

    官网教程 https think async com Asio asio 1 26 0 doc asio tutorial tutdaytime7 html asio 异步tcp udp服务器 int main try asio io co
  • 【vue】vue3中状态管理Pinia(Vuex5)使用快速上手

    Pinia和Vuex一样都是是vue的全局状态管理器 其实Pinia就是Vuex5 只不过为了尊重原作者的贡献就沿用了名字Pinia 关于vuex的介绍可以查看我之前的文章前端状态管理之Vuex全解析 一 安装 npm i pinia S
  • 好文转载 Elasticsearch扫盲篇

    Elasticsearch扫盲篇 编程芝士 于 2023 05 01 22 29 09 发布 507 收藏 4 分类专栏 Elasticsearch 文章标签 elasticsearch 数据库 大数据 原力计划
  • Android开发 指纹识别

    1 添加指纹识别权限
  • Java Map集合知识点整理(疯狂Java讲义读书笔记)

    JDK文档 http tool oschina net apidocs apidoc api jdk zh Map Map用于保存具有映射关系的数据 因此Map集合里保存着两组值 一组值用于保存Map中的Key值 另一组值用于保存Map中的
  • VSCode 集成chatGPT插件

    VSCode 是一款常用的编辑器 可以通过安装插件来扩展其功能 ChatGPT 是一款基于 OpenAI 的 GPT 3 语言模型的聊天机器人插件 可以让 VSCode 具备聊天机器人的功能 要在 VSCode 中集成 ChatGPT 插件
  • qt下实现文件的拖拽打开

    引言 此文用于记录按下鼠标左键不放 拖动文件到程序中打开 该示例中只设置了可以拖动的文件类型为 h cpp txt这三种文件类型 程序运行的效果 示例 下面是具体的实现 项目的结构 具体的实现代码 如下 main cpp include d
  • 网络层之IP协议详解

    网络层 说简单点 就是在复杂的网络环境中确定一个合适的路径 我们来了解一下网络层中一个重要的协议 IP协议 IP协议 1 概念 IP协议是TCP IP协议簇中的核心协议 也是TCP IP的载体 所有的TCP UDP ICMP及IGMP数据都
  • 自定义期间查询数据库

    Python连接数据库匹配 import pandas as pd import numpy as np import pymysql import datetime 连接mysql conn pymysql connect host xx
  • KyLin的网页界面使用

    1 美图 上一篇 http blog csdn net qq 21383435 article details 75198823 1 根据上一张分析的内容得知 涉及到的字段是 pro表的 字段 ID 商品名称 价格 购买数量 付款 类别ID
  • 快速基于nodeJS+vue+vuex+mysql+redis建立一个后台管控系统

    structure admin structure admin是一个后台管控系统的架子 技术栈 nodeJS vue vuex mysql redis 前端使用vue的element ui的组件库 后端使用nodeJS的服务 数据库mysq
  • 求一行字符串的长度。(C语言)

    代码 include
  • hadoop集群搭建

    文章目录 一 基本配置 所有节点 一 配置静态网络 二 修改主机名和修改host文件 三 禁用SELINUX 四 关闭防火墙 并取消开机自启动 五 配置NTP时间同步 集群所有节点 六 下载一下vim编辑器 七 安装JDK1 8 八 创建h