手把手教你hadoop集群配置(详细)

2023-11-08

在这里插入图片描述
本博客用到的虚拟机客户机已将前五步完成,从6)开始
现有三台客户机,hadoop112,hadoop113,hadoop114。其中hadoop112已完成JDK、Hadoop的安装以及环境变量的配置。所以需要将112上的两者复制到113和114上。

1、将JDK用scp方法从112复制到113上
在这里插入图片描述

scp -r jdk1.8.0_212/ dlw@hadoop113:/opt/module/

从113上查看结果,显示出JDK已存在则证明复制成功。
在这里插入图片描述

2、将hadoop用scp方法从112上拉到113中。
在这里插入图片描述

scp -r dlw@hadoop112:/opt/module/hadoop-3.1.3 ./

从113上查看结果,显示出hadoop已存在则证明113从112上拉取相应的数据已成功。
在这里插入图片描述

将JDK和hadoop复制到其他客户机上有两种方式1、从a复制到b。(JDK所用方法)2、b向a拉取数据。(Hadoop所用方法)hadoop114与上方操作一样。

xsync集群分发脚本

循环复制文件到所有节点的相同目录之下。(xsync 要同步的文件名称。)

1、在~目录下创建bin文件并打开
在这里插入图片描述
在这里插入图片描述
创建脚本
在这里插入图片描述

#!/bin/bash
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in hadoop112 hadoop113 hadoop114
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
        #4. 判度胺文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)
                #6. 获取当前文件得名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

之后再修改脚本xsync具有的执行权限:
在这里插入图片描述

chmod +x xsync

执行完之后即可同步bin文件到113和114
在这里插入图片描述
113中显示bin文件,表示xsync执行成功。
在这里插入图片描述
利用xsync经JDK和Hadoop的环境变量快速分发到113和114上。
在这里插入图片描述
分发完环境变量之后,分别在113和114中进行source指令
在这里插入图片描述

source /etc/profile

ssh免密登录配置

在/root/.ssh路径下输入并不断回车
在这里插入图片描述在这里插入图片描述
会出现112的公钥和私钥
在这里插入图片描述
将112的公钥拷贝到113和114上
在这里插入图片描述

ssh-copy-id hadoop113

在这里插入图片描述

在113和114上重复以上操作。

完成ssh免密登录之后再应用xsync分发脚本往其他服务器传送数据的时候就可以不用输入密码了(限于一完成ssh免密登录的用户

集群配置

配置核心文件
1、配置core-site.xml
在这里插入图片描述

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop112:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>
    <!-- 配置HDFS网页登录使用的静态用户为dlw -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>dlw</value>
        <value>root</value>
    </property>

2、配置hdfs-site.xml
在这里插入图片描述

	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>

3、配置yarn-site.xml
在这里插入图片描述

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop113</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA HOME,HADOOP COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://192.168.10.112:19888/jobhistory/logs</value>
    </property>
    <!-- 设置日志保留时间为7-->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>

4、配置mapred-site.xml
在这里插入图片描述

    <!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.10.112:10020</value>
    </property>
    
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.10.112:19888</value>
    </property>

当前四部仅仅在112上完成了配置,然后使用xsync脚本将hadoop分发到113和114
在这里插入图片描述

群起集群

1、配置workers
在/opt/module/hadoop-3.1.3/etc/hadoop路径下编辑workers
在这里插入图片描述
workers中不能有任何多余的空格,不能有多余的空行。
之后用xsync脚本分发到113和114
2、启动集群
在第一次启动集群的时候需要将hadoop112的NameNode节点格式化。
在这里插入图片描述配置一下root用户启动权限(112,113,114都需要进行相应的操作)
在/opt/module/hadoop-3.1.3/etc/hadoop路径下修改hadoop-env.sh文件。
在hadoop-env.sh文件的最上方加上

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

然后启动dfs
在这里插入图片描述
然后输入jps查看进程
在这里插入图片描述
启动yarn
在hadoop113上启动yarn在这里插入图片描述
启动完成之后分别查看hadoop112,hadoop113,hadoop114的进程看是否与下表所含的进程一致。
在这里插入图片描述

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

手把手教你hadoop集群配置(详细) 的相关文章

  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 如何从hdfs读取文件[重复]

    这个问题在这里已经有答案了 我在 project1目录下的hadoop文件系统中有一个文本文件名mr txt 我需要编写 python 代码来读取文本文件的第一行 而不将 mr txt 文件下载到本地 但我无法从 hdfs 打开 mr tx
  • 更改 Spark Streaming 中的输出文件名

    我正在运行一个 Spark 作业 就逻辑而言 它的性能非常好 但是 当我使用 saveAsTextFile 将文件保存在 s3 存储桶中时 输出文件的名称格式为 part 00000 part 00001 等 有没有办法更改输出文件名 谢谢
  • 处理 oozie 工作流程中的循环

    我有一个 oozie 用例 用于检查输入数据可用性并根据数据可用性触发 MapReduce 作业 所以我编写了一个 shell 脚本来检查输入数据 并在 oozie 中为其创建了一个 ssh 操作 输入数据检查的重试次数和重试间隔应该是可配
  • 如何跟踪hadoop中哪个数据块在哪个数据节点?

    如果复制一个数据块 会复制到哪个数据节点 是否有任何工具可以显示复制块存在的位置 如果您知道文件名 则可以通过 DFS 浏览器查找 转到您的 namenode Web 界面 说 浏览文件系统 并导航到您感兴趣的文件 在页面底部 将列出文件中
  • Apache hadoop 版本 2.0 与 0.23

    Hadoop 的版本和发行版太多 让我很困惑 我有几个问题 Apache Hadoop 1 x 是从 0 20 205 开始的 Apache Hadoop 2 0 是从 0 22 还是 0 23 开始 根据这个blogpost http b
  • 将 Spark 添加到 Oozie 共享库

    默认情况下 Oozie 共享 lib 目录提供 Hive Pig 和 Map Reduce 的库 如果我想在 Oozie 上运行 Spark 作业 最好将 Spark lib jar 添加到 Oozie 的共享库 而不是将它们复制到应用程序
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • 公平调度器和容量调度器有什么区别?

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

    是否可以使用 Python 3 x 连接到 hadoop 并运行 hive 查询 我正在使用Python 3 4 1 我发现可以按照这里写的方式完成 https cwiki apache org confluence display Hiv
  • 使用 org.apache.hadoop/* 依赖项离线编译 sbt 时遇到的问题

    使用依赖于 org apache hadoop 包的 sbt 进行离线编译时遇到很多麻烦 一个简单的build sbt name Test version 1 0 scalaVersion 2 10 4 libraryDependencie
  • Impala:如何查询具有不同模式的多个镶木地板文件

    在 Spark 2 1 中我经常使用类似的东西 df spark read parquet path to my files parquet 即使具有不同的模式 也可以加载镶木地板文件的文件夹 然后我使用 SparkSQL 对数据帧执行一些
  • 以不同用户身份运行 MapReduce 作业

    我有一个与 Hadoop 交互的 Web 应用程序 Cloudera cdh3u6 特定的用户操作应在集群中启动新的 MapReduce 作业 该集群不是一个安全集群 但它使用简单的组身份验证 因此 如果我以自己的身份通过 ssh 连接到它
  • 错误 hive.HiveConfig:无法加载 org.apache.hadoop.hive.conf.HiveConf。确保 HIVE_CONF _DIR 设置正确

    我正在尝试将数据从 sqoop 导入到 hive MySQL use sample create table forhive id int auto increment firstname varchar 36 lastname varch
  • sqoop 通过 oozie 导出失败

    我正在尝试将数据导出到mysql from hdfs通过sqoop 我可以通过 shell 运行 sqoop 并且它工作正常 但是当我通过调用oozie 它出现以下错误并失败 我还包括了罐子 没有描述性日志 sqoop脚本 export c
  • 如何用snappy解压hadoop的reduce输出文件尾?

    我们的 hadoop 集群使用 snappy 作为默认编解码器 Hadoop作业减少输出文件名就像part r 00000 snappy JSnappy 无法解压缩文件 bcz JSnappy 需要以 SNZ 开头的文件 归约输出文件以某种
  • Protobuf RPC 在 Hadoop 2.2.0 单节点服务器上不可用?

    我正在尝试在按照本教程安装的本地单节点集群上运行 hadoop 2 2 0 mapreduce 作业 http codesfusion blogspot co at 2013 10 setup hadoop 2x 220 on ubuntu
  • 没有函数映射到名称“coord:formatTime”

    我正在尝试使用 oozie 中的以下内容获取当前时间戳
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113

随机推荐

  • IDEA 创建web项目

    IntelliJ IDEA 13 新版本发布 第一时间去官网看了下 黑色的主题 很给力 大体使用了下 对于一开始就是用eclipse的童鞋们 估计很难从eclipse中走出来 当然 我也很艰难的走在路上 首先要说一点 在IntelliJ I
  • 不如来试试看这个AI大模型 感觉速度飞快,真的还挺不错呢!

    个人主页 极客小俊 作者简介 web开发者 设计师 技术分享博主 希望大家多多支持一下 我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 介绍 它是国产新一代AI智能模型 拥有跨领域的知识和语言理解能力 能够基于自然对话方
  • SpringBoot热部署 新版idea找不到Onupdate action

    改动到了这里
  • .metadata是什么项目文件_部署springboot+vue项目文档

    一 部署linux nginx 1 部署后台代码 1 1由于本人采用的是idea工具开发 所以在terminal中mvn clean package生成对应的jar包 此jar包可去对应文件所在目录的target查找 1 2将jar复制到l
  • Java中死锁问题如何排查

    问题描述 在java程序中碰到运行未停止 如何证明是死循环还是死锁问题呢 可以使用Java中自带的命令jps l 用来查看当前运行的进程号 在使用jstack 进程号命令查看当前进程的堆栈信息 死锁代码 class DeadLockRes
  • 二进制安装K8S--etcd

    大致步骤 1 准备lunix 虚拟机两台 一台用来部署etcd apiserver 管理组建 另外一台部署worker 节点 2 操作系统初始化 3 为etcd 和APIserver 准备自签名证书 4 部署etcd 集群 5 部署mast
  • 青橙项目问题Cannot access defaults field of Properties和A child container failed during start

    项目场景 在学习黑马青橙电商项目时 用到了代码生成器 生成完代码后 再往下做的时候就出现了问题 Cannot access defaults field of Properties和A child container failed duri
  • JMeter压力测试 5分钟让你学会如何并发压测接口

    文章目录 地址 下载 启动 使用 地址 JMeter官网下载 https jmeter apache org download jmeter cgi 下载 最新款的jmeter需要java8 的支持 请自行安装jdk8或以上的版本 根据系统
  • Hive sql数据倾斜及性能优化

    一 数据倾斜问题剖析 数据倾斜是分布式系统不可避免的问题 任何分布式系统都有几率发生数据倾斜 当然数据倾斜问题是在亿级数据造成机器无法应付这么多数据 这时发生数据倾斜 最后很难算出结果 hive的原理机制是MR 在MR中最容易出现数据倾斜的
  • 《拖延心理学》

    一 拖延处理技巧汇编 1 确立一个可操作性的目标 可观察 具体而实在的 而不是那种模糊而抽象的目标 不是 我要停止拖延 而是 我要在9月1日之前打扫和整理我的车库 2 设定一个务实的目标 不要异想天开 而要从小事做起 不要过于理想化 而是要
  • mysql mariadb 创建mysql mariadb用户,登录报错

    mysql mariadb 创建energy普通用户 登录mysql报错 access denied GRANT REPLICATION CLIENT PROCESS SELECT ON TO mysqld exporter identif
  • 图像超分算法

    图像超分算法旨在将低分辨率 LR 图像转换为高分辨率 HR 图像 例如将480p分辨率的视频转换为1080p分辨率的视频 常见的图像超分算法包括插值法 基于统计的算法和基于学习的算法 1 插值法 最简单的图像超分方法是插值法 它将LR图像中
  • 【mybatis】mybatis访问报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)...

    mybatis访问报错 org apache ibatis binding BindingException Invalid bound statement not found 需要检查的步骤 1 是否mapper java文件上使用了注解
  • L298N芯片驱动电机

    L298N芯片驱动电机 一 控制原理 L298N可以控制两个电机 具体原理为IN1 IN2 IN3 IN4四个输入端口接收控制器发出的电信号 两个输出端分别控制两组直流电机转动 输入端的逻辑控制表如下 GPIO GPIO 0 GPIO 1
  • dos命令之远程桌面

    echo off 开启服务 net start SessionEnv net start TermService 开机手动启动 sc config SessionEnv start demand sc config TermService
  • Qt的getOpenFileName()函数使用

    Qt的getOpenFileName 函数使用 为了说明QFileDialog getOpenFileName 函数的用法 首先要清楚函数的完整定义 QString QFileDialog getOpenFileName QWidget p
  • 2012淘宝校园招聘笔试

    川大站笔试 本人亲手经历 1个小时的笔试时间 人还是非常多 快没有位置了 选择题考察的面非常广 我记得住的只有下面几道题 1 进程死锁 2 双链表插入节点 3 插座问题 用树的知识解决 4 平衡树的概念 红黑树 B数 AVL树 5 ICMP
  • (转)快速安全的往mysql里插入千万条数据

    来源 ksfzhaohui juejin im post 5da5b568f265da5b6c4bc13d 概述 有个需求解析一个订单文件了 并且说明文件可达到千万条数据 每条数据大概在20哥字段左右 每个字段使用逗号分隔 需要尽量在半小时
  • 安装和建立Oracle18c数据库过程中的一些实践问题

    最近遇到了一个从Visual Studio 2017 中建立tabular project调取Oracle数据库的问题 一 下载并安装Oracle18c 我们可以从Oracle的官网上下载最新的Oracle Database 18c htt
  • 手把手教你hadoop集群配置(详细)

    本博客用到的虚拟机客户机已将前五步完成 从6 开始 现有三台客户机 hadoop112 hadoop113 hadoop114 其中hadoop112已完成JDK Hadoop的安装以及环境变量的配置 所以需要将112上的两者复制到113和