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集群搭建 的相关文章

  • pyspark.sql.utils.AnalysisException:u'Path不存在

    我正在使用标准 hdfs 与 amazon emr 运行 Spark 作业 而不是 S3 来存储我的文件 我在 hdfs user hive warehouse 有一个配置单元表 但当我的 Spark 作业运行时找不到它 我配置了 Spar
  • Talend 和 Apache Spark?

    我对 Talend 和 Apache Spark 在大数据生态系统中的定位感到困惑 因为 Apache Spark 和 Talend 都可以用于 ETL 有人可以用一个例子解释一下吗 Talend 是一种基于工具的大数据方法 通过内置组件支
  • 从 Spark 访问 Hdfs 会出现令牌缓存错误 Can't get Master Kerberosprincipal for use as renewer

    我正在尝试运行测试 Spark 脚本 以便将 Spark 连接到 hadoop 脚本如下 from pyspark import SparkContext sc SparkContext local Simple App file sc t
  • 使用字符串数组在 Hive 表上加载 CSV 文件

    我正在尝试将 CSV 文件插入 Hive 其中一个字段是 string 数组 这是 CSV 文件 48 Snacks that Power Up Weight Loss Aidan B Prince Health Fitness Trave
  • java.io.IOException: EnsureRemaining: 仅剩余 0 个字节,尝试读取 1

    我在 giraph 中的自定义类方面遇到一些问题 我制作了 VertexInput 和 Output 格式 但总是收到以下错误 java io IOException ensureRemaining Only bytes remaining
  • Sqoop 导出分区的 Hive 表

    我在尝试导出分区的 Hive 表时遇到了一些问题 这是否完全受支持 我尝试用谷歌搜索并找到一张 JIRA 票证 sqoop export connect jdbc mysql localhost testdb table sales exp
  • 当我将文件存储在 HDFS 中时,它们会被复制吗?

    我是 Hadoop 新手 当我使用以下方式存储 Excel 文件时hadoop fs putcommoad 它存储在HDFS中 复制因子为3 我的问题是 是否需要3份并分别存储到3个节点中 这是 HDFS 工作的漫画 https docs
  • 将 Apache Zeppelin 连接到 Hive

    我尝试将我的 apache zeppelin 与我的 hive 元存储连接起来 我使用 zeppelin 0 7 3 所以没有 hive 解释器 只有 jdbc 我已将 hive site xml 复制到 zeppelin conf 文件夹
  • 公平调度器和容量调度器有什么区别?

    我是 Hadoop 世界的新手 想了解公平调度程序和容量调度程序之间的区别 另外我们什么时候应该使用每一个 请简单地回答一下 因为我在网上读了很多东西 但从中得到的不多 公平调度是一种为作业分配资源的方法 使得所有作业随着时间的推移平均获得
  • 覆盖hadoop中的log4j.properties

    如何覆盖hadoop中的默认log4j properties 如果我设置 hadoop root logger WARN console 它不会在控制台上打印日志 而我想要的是它不应该在日志文件中打印 INFO 我在 jar 中添加了一个
  • 为什么我们需要将外部表移动到托管 Hive 表?

    我是 Hadoop 新手 正在学习 Hive 在 Hadoop 权威指南第 3 版中 第 12 页 第428章 最后一段 我不明白下面关于 HIVE 中外部表的段落 一种常见的模式是使用外部表访问存储在 HDFS 中的初始数据集 由另一个进
  • 全部配对图表上的所有路径

    这可能是一个没有最佳解决方案的问题 假设我有一个有向图 不知道它是否有循环 循环检测将是这个问题的方面之一 给定一组顶点 可能是数百万个顶点 我需要计算给定图的所有唯一对之间的所有不同路径 没有重复顶点的路径 我该如何应对这种情况 让我们看
  • 如何对 RDD 进行分区

    我有一个文本文件 其中包含大量由空格分隔的随机浮动值 我正在将此文件加载到 scala 中的 RDD 中 这个RDD是如何分区的 另外 是否有任何方法可以生成自定义分区 以便所有分区都具有相同数量的元素以及每个分区的索引 val dRDD
  • 在 Apache Spark 上下文中,内存数据存储意味着什么?

    我读到 Apache Spark 将数据存储在内存中 然而 Apache Spark 旨在分析大量数据 又称大数据分析 在这种情况下 内存数据存储的真正含义是什么 它可以存储的数据是否受到可用 RAM 的限制 它的数据存储与使用HDFS的A
  • Hadoop - 直接从 Mapper 写入 HBase

    我有一个 hadoop 作业 其输出应写入 HBase 我并不真正需要减速器 我想要插入的行类型是在映射器中确定的 如何使用 TableOutputFormat 来实现此目的 从所有示例中 我看到的假设是 reducer 是创建 Put 的
  • AWS EMR 引导操作为 sudo

    我需要更新 etc hosts适用于我的 EMR 集群 EMR AMI 4 3 中的所有实例 整个脚本无非就是 bin bash echo e ip1 uri1 gt gt etc hosts echo e ip2 uri2 gt gt e
  • Hadoop 超立方体

    嘿 我正在启动一个基于 hadoop 的超立方体 具有灵活的维度数 有人知道这方面现有的方法吗 我刚刚发现PigOLAP草图 http wiki apache org pig PigOLAPSketch 但没有代码可以使用它 另一种方法是Z
  • 通过Oozie命令行指定多个过滤条件

    我正在尝试通过命令行搜索一些特定的 oozie 作业 我使用以下语法进行相同的操作 oozie jobs filter status RUNNING status KILLED 但是 该命令仅返回正在运行的作业 而不是已杀死的作业 需要帮助
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • Hadoop 减速器数量配置选项优先级

    以下3个设置reduce数量的选项的优先级是什么 换句话说 如果三者都设置了 会考虑哪一个呢 Option1 setNumReduceTasks 2 within the application code Option2 D mapredu

随机推荐

  • 华为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