在Hadoop YARN之上配置Spark集群(一)

如何搭建spark yarn模式的集群 推荐使用 CentOS、Ubuntu 等 Linux 发行版。:确保集群中各节点网络互通,主机名和 IP 地址已正确配置。:将 Hadoop 解压到指定目录,例如。将主节点的 Spark 安装目录(例如。:安装 JDK 1.8 或以上版本。下载预编译好的 Spark 安装包。确保所有节点的环境变量一致,修改。文件,添加所有从节点的主机名。下载合适版本的 Hadoop。文件,配置 HDFS。文件,配置 YARN。修改 Hadoop 的。文件分发到所有节点。 阅读详情
前言

最近刚接触Spark,想在实验室配一个小规模的Spark分布式集群做实验。虽说只配一个单机版(standalone)的伪分布式集群也可以做实验,但感觉意义不大,同时也为了逼真还原真实的生产环境,查阅了一番资料之后,知道Spark的运行需要外部的资源调度系统来支持,主要有:Standalone Deploy mode、Amazon EC2、Apache Mesos、Hadoop YARN。因为YARN比较流行的缘故,于是,我决定在Hadoop YARN之上配置Spark分布式集群。

对于Hadoop和Spark的一些比较浅显的,初步的认识,大家可以看我写的这篇博文《对于Hadoop和Spark的一些浅显认识》。说的不对的地方或有补充的地方还请各位博友多多提出~我也会在今后的学习当中不断地修改和更新。

本篇文章主要介绍的是在Ubuntu14.04下Hadoop2.7.2的集群配置。

环境介绍
  • 系统:Ubuntu14.04 64位
  • JDK版本:jdk 1.7
  • Hadoop版本:hadoop 2.7.2
  • 集群环境:

    角色hostnameIP
    masterwlw192.168.1.103
    slavezcq-pc192.168.1.105
创建hadoop用户

需要特别注意的是,hadoop集群要求每个master和slave节点上的用户名是相同的。在这里我统一使用名为“hadoop”的用户。

如果你的节点上用户还不统一,则可以使用如下命令来新建用户:

  • 创建用户,名为“hadoop”
    sudo adduser hadoop

  • 设置密码
    sudo passwd hadoop

  • 给hadoop用户创建目录,方可登陆
    sudo mkdir /home/hadoop

  • 将指定目录的拥有者改为hadoop用户
    sudo chown hadoop /home/hadoop

  • 可考虑为hadoop用户增加管理员权限,方便部署,避免一些权限不足的问题
    sudo adduser hadoop sudo

  • 切换到hadoop用户登录

安装ssh server、配置ssh无密码登陆
  • ubuntu默认安装好了ssh client,我们还需要安装ssh server。
    sudo apt-get install openssh-server

  • Hadoop集群需要用到ssh无密码登陆,我们进行设置
    cd ~/.ssh
    ssh-keygen -t rsa #一直按回车就可以
    cp id_rsa.pub authorized_keys

  • 设置完之后,我们无密码登录本机进行测试
    ssh localhost

网络配置
  • 在 /etc/hosts 中添加如下集群信息:

    192.168.1.103 wlw
    192.168.1.105 zcq-pc

    需要注意的是,该集群信息需要在所有主机(master和slave)上都添加

  • 常规的配置jdk就不说了,唯一需要注意的是在 /ect/environment 中添加JAVA_HOME,否则会出错:

    export JAVA_HOME=/opt/jdk1.7.0_75

    同样的,需要在所有主机(master和slave)上都添加

ssh无密码登录节点

只有在各节点之间设置了无密码登录,才能让hadoop实现master节点map任务给slave节点,进行分布式计算。
在上文中已经讲述过了,在master节点上生成公钥了,在这里仍然再赘述一遍。

  • 首先生成 Master 的公匙,在 Master 节点终端中执行:
    cd ~/.ssh
    ssh-keygen -t rsa # 一直按回车就可以

  • master节点需要无密码登录(ssh)本机,还是在master节点上执行命令:
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    完成之后可以用 ssh localhost 进行测试

  • 将公钥从master(wlw)节点上传输到slave(zcq-pc)节点中:
    scp ~/.ssh/id_rsa.pub hadoop@zcq-pc:/home/hadoop/

  • 在 slave(zcq-pc)节点 上将ssh公匙保存到相应位置:
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

    如果你还有其他slave节点的话,同样的道理也需要将master节点的公钥传输到其他的slave节点中去,步骤与上面的相同。或者你也可以在slave节点上生成公钥,将slave节点的公钥传输到master节点中,使他们之间能够互相无密码登录。

  • 最后在master(wlw)节点上测试一下,看能否无密码登录到slave(zcq-pc)节点上:
    ssh zcq-pc

配置集群/分布式环境(关键步骤)

集群/分布式模式需要修改 etc/hadoop 中的5个配置文件,后四个文件可点击查看官方默认设置值,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

  1. slaves文件
    cd /opt/hadoop-2.7.2/etc/hadoop
    vim slaves

    将原来 localhost 删除,把所有slave的主机名写上,每行一个。因为我只有一个 slave(zcq-pc)节点,所以该文件中就只有一行内容: zcq-pc

  2. core-site.xml文件

    <property>
    </property>

    改为:

    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://wlw:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/opt/hadoop-2.7.2/tmp</value>
    <description>A base for other temporary directories.</description>
    </property>

    请参照我的配置信息,根据你自身的路径和master节点的hostname名进行更改

  3. hdfs-site.xml文件

    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>wlw:50090</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/opt/hadoop-2.7.2/tmp/dfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/opt/hadoop-2.7.2/tmp/dfs/data</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>

    其中,dfs.replication是设置备份文件的数量,默认为3,我这里将其设置为2

    同样的,请参照我的配置信息,根据你自身的路径和master节点的hostname名进行更改

  4. mapred-site.xml文件
    这个文件不存在,首先需要从模板中复制一份:

    • cp mapred-site.xml.template mapred-site.xml

    然后配置修改如下:

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

    使Hadoop基于YARN资源调度系统

  5. yarn-site.xml文件

    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>wlw</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>

  • 配置好后,将 master(wlw)节点上的 Hadoop-2.7.2 文件打包复制到各个slave节点上:
    cd /opt
    sudo tar -zcf ./hadoop-2.7.2.tar.gz ./hadoop-2.7.2
    scp ./hadoop-2.7.2.tar.gz zcq-pc:/home/hadoop

  • 在slave(zcq-pc)节点上执行:
    sudo tar -zxf ~/hadoop-2.7.2.tar.gz -C /opt/
    sudo chown -R hadoop:hadoop /opt/hadoop-2.7.2

  • 如上都配置完成之后,在master节点上就可以启动hadoop了:
    cd /opt/hadoop-2.7.2
    ./bin/hdfs namenode -format # 首次运行需要执行初始化,后面不再需要
    ./sbin/start-dfs.sh
    ./sbin/start-yarn.sh

  • 通过 jps 命令查看master(wlw)节点的Hadoop进程:
    可以看到master节点启动了NameNode、SecondrryNameNode、ResourceManager进程,此外还有jps命令的进程

    NameNode指的就是master节点

  • 通过 jps 命令查看slave(zcq-pc)节点的Hadoop进程:
    slave节点则启动了DataNode和NodeManager进程,此外还有jps命令的进程

    DataNode指的就是slave节点

  • 通过Web页面看到查看DataNode和NameNode的状态:

    http://wlw:50070/
    这里写图片描述


    或者你也也可以通过http://wlw:8088来查看:
    这里写图片描述

执行WordCount实例
  • 在本地硬盘上创建 file 文件夹:
    mkdir ~/file

  • 进入该目录,创建一个 file1.txt 文件:
    cd file
    echo “hello hadoop” > file1.txt

  • 在HDFS上创建输入文件夹目录 input :
    cd /opt/hadoop-2.7.2
    ./bin/hadoop fs -mkdir /input

  • 把本地硬盘上创建的 file1.txt 文件传进 input 里面:
    ./bin/hadoop fs -put ~/file/file1.txt /input

  • 用Hadoop自带的jar 包运行 wordcount 例子 :
    ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input/ /output/wordcount1

  • 查看运行结果:
    ./bin/hdfs dfs -cat /output/wordcount1/*

  • 最后,关闭Hadoop集群也是在Master节点上执行:
    ./sbin/stop-dfs.sh
    ./sbin/stop-yarn.sh


注意事项
  • 更改 /etc/profile 之后一定要让其生效
    source /etc/profile
  • 由于我的jdk是放在 /opt 目录下的,应给他赋予执行的权限
    sudo chmod u+x -R /opt/jdk1.7.0_75
在启动Hadoop中出现的问题

(1)Warning: the ECDSA host key for “zcq-pc”differs from the key for the IP address “192.168.1.105”
解决方案:remove the cached key for “192.168.1.105” on master machine

ssh-keygen -R 192.168.1.105

(2) WARNING: POSSIBLE DNS SPOOFING DETECTED!
解决方案:删除 .ssh/known_hosts文件中对应的行(“offending key in /home/wlw/.ssh/known_hosts:”行号)

vim 显示行号:
:set number


PS:在下一篇博文中我会真正讲到在Hadoop YARN之上配置Spark集群

Spark集群安装(spark on yarn/statndalone) Spark有三种运行模式,分别为: local模式-只运行在本地,相当于伪分布式 standalone模式-这种模式只需要安装Spark即可,使用自带的资源管理器 Spark on yarn/mesos模式-这种模式Spark将使用yarn/mesos作为资源管理器   一般来说,standalone适合只想体验一把Spark集群的人,如果想将Spark应用于生产环境,还需要借助第三方的... 阅读详情

相关推荐

搭建 Spark YARN 模式集群指南

搭建 Spark YARN 模式集群为处理大规模大数据提供了强大的支持。通过合理的配置和优化,可以充分发挥 Spark 和 YARN 的优势,实现高效、稳定的数据处理。在实际应用中,不断探索和尝试新的配置策略和优化方法,以适应不断变化的业务需求。同时,随着技术的发展,关注 Spark 和 YARN 的最新动态,及时引入新的特性和功能,进一步提升集群的性能和可靠性。如果你在搭建过程中遇到任何问题,可以参考 Spark 和 Hadoop 的官方文档,或者在相关的技术社区寻求帮助。

2301_80870395的博客 1911

Spark yarn集群搭建

yarn是hadoop的一个子项目,用于管理分布式计算资源,在yarn上面搭建spark集群需要配置好hadoop和spark。集群是有3台虚拟机组成,都是centos系统的。 下面一步一步进行集群搭建。 一.配置hosts文件 为了方便地查找主机,hosts文件是主机名到ip的映射,不用去记各个主机的IP地址. 在以后的url中就可以用master代替192.168.128.135。 192.1...

jiedaodezhuti的博客 586

基于Hadoop的Spark集群搭建

title: Spark集群搭建 date: 2020-03-19 19:30:31 tags: Hadoop 基于Hadoop的Spark集群搭建 准备 Spark三种运行模式简介 Local模式 Local 模式是最简单的一种Spark运行方式,它采用单节点多线程(cpu)方式运行,local模式是一种OOTB(开箱即用)的方式,只需要在spark-env.sh导出JAVA_HOME,无需其他任何配置即可使用,因而常用于开发和学习 方式:./spark-shell - -master loca.

qq_45703204的博客 1702

Spark本地模式和集群模式安装配置

1.下载地址:这里下载的是spark-2.0.1-bin-hadoop2.7.tgz ,别的版本可以自行选择前提:Linux需配置jdk环境,比较简单,自行百度。

m0_67401499的博客 767

Spark集群环境搭建

实验目的: 通过该实验后,能掌握以下知识: 1 能够手动搭建Spark集群 2 能使用Spark Shell 实验说明: 本实验环境中已经配置好Hadoop集群环境和spark on yarn的运行环境,只需要在主服务器(namenode)上执行hdfs namenode -format 格式化命令后启动Hadoop集群。 本次搭建的Spark将使用Hadoop YARN作为集群的资源管理器。所以其需要基于Hadoop集群环境。 实验步骤: 步骤一:启动Hadoop集群 进入到hadoop

m0_63528892的博客 4686

Hadoop和spark集群搭建详解

hadoop与spark集群搭建,了解hadoop分布式、伪分布式等方式集群搭建

大数据开发:剖析Hadoop和Spark的Shuffle过程差异

一、前言 对于基于MapReduce编程范式的分布式计算来说,本质上而言,就是在计算数据的交、并、差、聚合、排序等过程。而分布式计算分而治之的思想,让每个节点只计算部分数据,也就是只处理一个分片,那么要想求得某个key对应的全量数据,那就必须把相同key的数据汇集到同一个Reduce任务节点来处理,那么Mapreduce范式定义了一个叫做Shuffle的...

weixin_34186950的博客 238

海上AI导航系统:技术架构与行业应用解析

计算机视觉与强化学习技术在海上导航系统中的应用正逐步改变传统航运业。通过多模态传感器融合技术,现代AI导航系统能够实现高精度的物体识别与实时路径规划,有效解决能见度依赖、决策延迟等核心痛点。以Orca AI的SeaPod系统为例,其结合了NVIDIA GeForce RTX 4070的边缘计算能力与多光谱协同识别技术,在恶劣环境下仍能保持稳定性能。这类系统不仅提升了航行安全性,还通过优化航线显著降低燃油消耗,在东京湾、马六甲海峡等繁忙水域展现出巨大价值。随着毫米波雷达融合方案的测试推进,未来海上导航将突破极

weixin_33597080的博客 354

Spark的本机、独立部署、Yarn集群部署模式

Spark一般有四种安装模式: Local、Standalone、Yarn、Mesos/K8S部署模式; 这里讲解前三种模式的部署和安装方式: 本文讲解内容以Spark-3.0.0版本为例: 本文内容参照尚硅谷Spark-3.0.0版本安装资料,在自己的集群上搭建完成;仅供复习时使用,如有搭建需求,请根据自己的集群修改对应文件名。 1.1、Local(本地)模式 1.1.1、 解压缩文件 将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux 并解压缩,放置在指定位置,路径中

日句灬的博客 950

GD32 TLI+IPA实战:5分钟搞定RGB888屏幕显示,并开启2D图形加速

本文详细介绍了如何使用GD32微控制器的TLI和IPA功能快速驱动RGB888屏幕并开启2D图形加速。通过硬件配置、时序设置和显存管理,开发者可以高效实现图形界面渲染,并利用IPA加速器提升性能,适用于嵌入式GUI开发等场景。

weixin_29163797的博客 230

深入理解HanLP1.x,填平可能遇到的坑

提取指定数量的摘要。自定义词典为什么要单独领出来讲呢?因为在我们的业务开发中,可能分词的效果并不理想,需要定制自己的词库,索引更加常用。例如:小米su7特斯拉modelY比亚042025款6575767670908我们需要分出小米su72025款等词。我们分别看看用字典和不用字典的效果。

static_coder的博客 977

Spark集群安装部署

Spark安装部署

momo898821的博客 1439

在SAP系统中创建物料 860000000000000082(物料描述为“8680月球广寒宫坦克车”)时,系统报出了一个错误

摘要:SAP系统创建物料"8680月球广寒宫坦克车"时出现"C+020"错误,提示评估区域C916未在物料分类账中设置为生产性。解决方案需进入"会计-控制-产品成本控制-实际成本核算"路径,将评估区域C916手动设置为生产性状态。该操作需由具备权限的系统管理员或FICO顾问执行,建议操作前进行数据备份或在测试环境验证。完成设置后即可重新创建物料。

金牌架构师 391

在Hadoop YARN之上配置Spark集群(二)

在上一篇中,我介绍了关于Hadoop完全分布式的配置,从上一篇博文到现在,这期间由于种种原因一直未能记录Spark集群的配置,今天补上。上篇博文中只是一个简单的测试实验,集群数目也不多,今天增加了一台。由于Spark集群的配置需要在Hadoop的基础之上,所以没配Hadoop的同学请看上一篇博文。环境介绍 系统:Ubuntu14.04 64位 JDK版本:jdk 1.7 Hadoop版本:hadoo

predict_wise的博客 898

Python 爬虫实战:爬取去哪儿网酒店评价,提取住宿体验关键词

本文介绍了基于去哪儿网酒店评价数据的爬取与分析方法。首先通过分析网页结构和数据加载机制,定位到评价数据的JSON接口及关键参数。然后使用Python搭建爬虫环境,实现多页评价数据的批量采集与存储,并通过反爬策略确保数据获取的稳定性。在文本分析环节,采用jieba分词和TF-IDF算法提取高频关键词,结合词云可视化展示用户关注点。分析结果显示位置、服务、卫生是核心关注维度,同时识别出好评与差评的关键驱动因素。该方法为酒店服务优化和消费者决策提供了数据支持,并可通过扩展实现更深入的情感分析和竞品对比。

2503_91057718的博客 999

SIMULINK开发项目实例 1000 例专栏之第847例--基于飞行控制与稳定性的场景实例:多旋翼无人机在风扰动下的稳定性分析

本文介绍了使用Simulink进行多旋翼无人机风扰动稳定性分析的完整流程。首先建立包含动力学模型、控制系统和环境模拟三大模块的仿真系统,其中动力学模型基于牛顿-欧拉方程,控制系统采用PID调节器。重点展示了MATLAB函数实现的风扰动模型和姿态控制算法,通过设置输入信号和输出显示模块完成闭环仿真。最后通过多次风速条件下的仿真测试评估控制系统的抗干扰能力和稳定性表现,为无人机控制系统设计提供了有效的仿真验证方法。

xiaoheshang_123的博客 322

如何搭建spark yarn 模式的集群

Spark on YARN模式允许Spark作业在Hadoop YARN资源管理器上运行,这样可以更好地与Hadoop生态系统集成并共享集群资源。

2401_85414079的博客 1721

【Burp入门第三十一篇】Burp+SwitchyOmega实现本地localhost代理

在部分情况下(如本地靶场),当我们需要在Burp中查看、修改本地流量包的时候,按以下三个配置是不能得到本地流量包的。

等风来 3214

在Spark集群搭建之Yarn模式

1.上传并解压spark-3.1.2-bin-hadoop3.2.tgz,重命名解压之后的目录为spark-yarn。5. /opt/module/spark-standalone/examples/jars/spark-examples_2.12-3.1.1.jar:指定了包含应用程序代码的 JAR 文件的路径。NodeManager:部署在集群中的每个节点上,负责管理该节点上的资源使用情况,监控容器的运行状态,并且与 ResourceManager 保持通信,汇报节点的资源使用信息。

2401_87129116的博客 1837

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(二)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 1659

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spark集群部署

2.4) 修改spark-env.sh文件,添加JAVA_HOME环境变量和集群对应的master节点 [root@qianfeng01 local]# vi /usr/local/spark-3.1.2/conf/spark-env.sh。2)修改hadoop中的配置文件/usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml vi /usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml。

HYSliuliuliu的博客 9312

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

基于YARN模式部署Spark集群

一、部署YARN 请读者参考我的另外一篇博文Hadoop安装及环境配置 二、部署Spark 1、修改Hadoop配置文件 如果Hadoop处于运行中,则修改配置后需要重启Hadoop相关服务来保证配置生效。个人建议最好停掉Hadoop相关服务,待部署成功在启动相关服务。 1.1、编辑Hadoop安装目录下的 yarn-site.xml文件 进入Hadoop安装目录下 cd /usr/hadoop/hadoop-2.10.0/etc/hadoop/ vi yarn-site.xml 添加如下配置 <

冷锋的博客 967

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spark 配置 YARN

将修改后的 Spark 相关配置文件以及软连接等,分发到集群中的所有节点,确保各节点配置一致。已安装并配置好 Hadoop 集群 ,且集群中的所有节点都具备 Python 环境。指定应用程序运行在 YARN 模式 ,后面跟具体的应用程序路径及参数。将 Spark 安装目录下。分发给集群中的其他节点。

2301_77565891的博客 1049
上一篇: 对于Hadoop和Spark的一些浅显认识
下一篇: 在Hadoop YARN之上配置Spark集群(二)
predict_wise
博客等级 码龄11年 13粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值