spark集群搭建与mysql元数据管理

2023-11-16

找个spark集群搭建是针对于上一篇hadoop的基础上搭建的。
所以spark的版本也是要按照着hadoop版本进行下载。

1.解压spark,修改spark的/etc/profile的home目录。

2.安装SCALA,并配置SCALA_HOME。

3.修改spark conf目录下的spark-env.sh文件,并添加下列配置    
    export JAVA_HOME=/root/java/jdk1.8.0_181
    export HADOOP_HOME=/root/hadoop/hadoop-2.7.6
    export HADOOP_CONF_DIR=/root/hadoop/hadoop-2.7.6/etc/hadoop
    export SCALA_HOME=/root/scala/scala-2.11.8
    export SPARK_MASTER_IP=192.168.124.132

4.修改spark conf目录下的slavers文件配置:
    centos01
    centos02
    centos03

5.分发spark到其它节点,包括/etc/profile文件
    scp -r /etc/profile root@centos02:/etc/
    scp -r ~/spark root@centos02:/root/

5.测试spark yarn提交模式,在spark example目录下有个PI运算jar包
    spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster spark-examples_2.11-2.3.0.jar 10

    利用spark-shell --master yarn进行测试,会出现异常:
    2018-08-27 01:01:30 ERROR SparkContext:91 - Error initializing SparkContext.
    org.apache.spark.SparkException: Yarn application has already ended! It might have been killed or unable to launch application master.

at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.waitForApplication(YarnClientSchedulerBackend.scala:89)
    at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:63)
    at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:164)
    利用http://192.168.124.132:8088/cluster/app/application_1535337995441_0003:
    查看Diagnostics(诊断)发现报错虚拟内存超过了:
    is running beyond virtual memory limits.
    Current usage: 40.9 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.

    配置yarn-site.xml:
    <!--以下为解决spark-shell 以yarn client模式运行报错问题而增加的配置,估计spark-summit也会有这个问题。2个配置只用配置一个即可解决问题,当然都配置也没问题-->
    <!--虚拟内存设置是否生效,若实际虚拟内存大于设置值 ,spark 以client模式运行可能会报错,"Yarn application has already ended! It might have been killed or unable to l"-->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description>Whether virtual memory limits will be enforced for containers</description>
    </property>
    <!--配置虚拟内存/物理内存的值,默认为2.1,物理内存默认应该是1g,所以虚拟内存是2.1g-->
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>4</value>
        <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
    </property>


6.配置spark sql的metastore到mysql进行管理
    查看机器是否安装过mysql:rpm -qa|grep -i mysql
    wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
    rpm -ivh mysql57-community-release-el7-8.noarch.rpm
    yum install mysql-community-server

    安装完成后,重启mysql:service mysqld restart
    然后查看初始密码:grep "password" /var/log/mysqld.log
    登陆mysql,修改密码~!:alter user 'root'@'localhost' identified by 'xxxx2018@spark';
    刷新权限:flush privileges;

7.把jdbc的jar包复制到spark jars目录下:(注意:使用5版本的可以避免出现时区问题)
    网上下载mysql jdbc驱动,需要注意驱动和mysql的版本~!
    网上下载https://dev.mysql.com/downloads/connector/j/
    rpm包解压:rpm2cpio mysql-connector-java-8.0.12-1.el7.noarch.rpm | cpio -div
    把jdbc驱动复制到spark jars目录:cp mysql-connector-java-8.0.12.jar ~/sparkapp/spark-2.3.0-bin-hadoop2.7/jars/

8.在spark conf目录下创建一个hive-site.xml文件:
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hiveMetastore?createDatabaseIfNotExist=true&amp;characterEncoding=utf8&amp;useSSL=false</value>
    <description>hiveMetastore:Metastore sive in mysql</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>e
    <description>mysql account</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>xxxx2018@spark</value>
    <description>mysql password</description>
  </property>
</configuration>

9.在mysql上创建相关的spark元数据数据库,和视图:
    mysql:
    create database sparkmetastore;
    use sparkmetastore;

    create view databases_v 
    as select DBS.* 
    from hiveMetastore.DBS;

    create view tables_v 
    as select TBLS.*, DBS.NAME 
    from hiveMetastore.DBS, hiveMetastore.TBLS 
    where TBLS.DB_ID=DBS.DB_ID AND TBLS.TBL_TYPE!='VIRTUAL_VIEW';

    create view views_v 
    as select TBLS.*, DBS.NAME 
    from hiveMetastore.DBS, hiveMetastore.TBLS 
    where TBLS.DB_ID=DBS.DB_ID AND TBLS.TBL_TYPE='VIRTUAL_VIEW';

    create view columns_v 
    as select COLUMNS_V2.*, TBLS.TBL_NAME, DBS.NAME 
    from hiveMetastore.DBS, hiveMetastore.TBLS, hiveMetastore.COLUMNS_V2
    where DBS.DB_ID = TBLS.DB_ID AND COLUMNS_V2.CD_ID = TBLS.TBL_ID;

10.再在mysql上创建一个用户,该用户为spark-sql jdbc元数据查询用户:
    CREATE USER 'spark'@'%' IDENTIFIED BY 'xxxx2018@spark';
    GRANT SELECT ON sparkmetastore.* TO 'spark'@'%';

11.在spark-sql中进行反向查询元数据:
    create database spark;
    CREATE TABLE databases_v USING org.apache.spark.sql.jdbc OPTIONS("url" "jdbc:mysql://192.168.124.132:3306", "dbtable" "sparkmetastore.databases_v","user" "spark", "password" "xxxx2018@spark")
    CREATE TABLE tables_v USING org.apache.spark.sql.jdbc OPTIONS("url" "jdbc:mysql://192.168.124.132:3306", "dbtable" "sparkmetastore.tables_v","user" "spark", "password" "xxxx2018@spark")
    CREATE TABLE views_v USING org.apache.spark.sql.jdbc OPTIONS("url" "jdbc:mysql://192.168.124.132:3306", "dbtable" "sparkmetastore.views_v","user" "spark", "password" "xxxx2018@spark")
    CREATE TABLE columns_v USING org.apache.spark.sql.jdbc OPTIONS("url" "jdbc:mysql://192.168.124.132:3306", "dbtable" "sparkmetastore.columns_v","user" "spark", "password" "xxxx2018@spark")

12.打开spark sbin./start-thriftserver.sh服务。

13.在远程root访问hdfs的时候,会出现权限问题:
    在hdfs-site.xml加入找个配置
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>xxxx.com:50090</value>
    </property>
    <!-- hdfs用root登陆的时候会出现权限错误>
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
        <description>
        If "true", enable permission checking in HDFS.
        If "false", permission checking is turned off,
        but all other behavior is unchanged.
        Switching from one parameter value to the other does not change the mode,
        owner or group of files or directories.
    </description>

14.配置spark-default.conf:(一定要把spark-warehouse设置存储到hdfs上,不然会出现错误)
    spark.master yarn

   spark.sql.warehouse.dir hdfs://centos01:9000/spark-warehouse

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

spark集群搭建与mysql元数据管理 的相关文章

  • 易点易动固定资产管理系统:集成飞书,助力企业全生命周期固定资产管理

    易点易动固定资产管理系统 集成飞书 助力企业全生命周期固定资产管理 在现代商业环境中 固定资产管理对企业的运营和发展至关重要 为了提高管理效率和降低成本 我们引入了易点易动固定资产管理系统 该系统集成了飞书 为企业提供全生命周期的固定资产管
  • CRM软件对企业发展起着哪些作用?CRM的功能解析

    虽然不少科技成果昙花一现 但CRM管理系统作为销售和营销领域的核心技术 已经牢牢占据了不可撼动的地位 拥有一个部署得当的CRM系统能为企业带来诸多好处 它可以跟踪和管理销售人员与潜在 现有客户的所有互动和沟通 并帮助他们识别出需要重点培养或
  • 客户数量众多,CRM管理系统如何帮助高效客户管理

    随着中型企业客户关系的不断扩大和发展 高效管理日益庞大的客户群体变得至关重要 CRM管理系统就是管理大量客户 维护客户关系的重要工具 然而 市面上CRM系统太多了 想要快速 准确找到一款适合您业务的CRM系统是一项艰巨的任务 多客户中型企业
  • S281 LoRa网关在智能电力监测系统中的应用

    随着能源消耗的增加和环境保护的要求 智能电力监测系统在电力行业得到了广泛的应用 作为一家领先的科技公司 钡铼技术有限公司推出的S281 LoRa网关为智能电力监测系统提供了强大的支持和解决方案 本文将重点介绍S281 LoRa网关在智能电力
  • 现在还有人使用Excel表格做进销存管理吗?

    当然还是有人在使用Excel表格做进销存管理的 比如一些规模小的个体户或小微企业 使用Excel做进销存对这部分群体来说是合理的选择 然而 需要注意的是 随着 企业规模的扩大 Excel的局限性也会显现出来 容易出错 人为操作和数据输入错误
  • 天猫数据分析工具推荐(天猫第三方数据平台)

    在电商迅速发展的大背景下 做好天猫数据分析能够在多方面帮助品牌商家更好地运营店铺 塑造品牌 如通过数据分析了解消费者的需求 购买偏好 这有利于品牌商家及时调整商品结构 产品推广 商品宣传等等 灵活制定品牌的销售策略 那么 天猫平台行业 品牌
  • Spark 中 BroadCast 导致的内存溢出(SparkFatalException)

    背景 本文基于 Spark 3 1 1 open jdk 1 8 0 352 目前在排查 Spark 任务的时候 遇到了一个很奇怪的问题 在此记录一下 现象描述 一个 Spark Application Driver端的内存为 5GB 一直
  • API接口:技术、应用与实践

    随着数字化时代的到来 API接口在软件开发和数据交互中扮演着越来越重要的角色 本文深入探讨了API接口的基本概念 技术原理 设计方法 最佳实践以及在各行业的应用案例 关键词 API接口 软件开发 数据交互 技术原理 设计方法 一 引言 随着
  • 从不同维度的调研数据,看企业数字化转型

    数字化转型逐渐成为企业增长和价值创造的新引擎 然而 在复杂的背景下 企业数字化转型也面临着前所未有的挑战和机遇 未来 我们还能做些什么 怎么做 这成为了各企业高管当前亟需厘清的问题 企业做数字化转型的原因 总体来看 大部分受访企业做数字化转
  • AI大模型应用入门实战与进阶:深入理解Transformer架构

    1 背景介绍 自从2017年的 Attention is All You Need 一文发表以来 Transformer架构已经成为自然语言处理 NLP 领域的主流模型 这篇文章将深入探讨Transformer架构的核心概念 算法原理以及实
  • 心灵与计算机:解密情感处理

    1 背景介绍 情感处理是人工智能领域中一个重要的研究方向 它旨在使计算机能理解 识别和处理人类的情感 情感处理的主要应用包括情感分析 情感识别 情感挖掘等 随着大数据 深度学习和自然语言处理等技术的发展 情感处理技术已经取得了显著的进展 然
  • 慢思维大脑:SOP流程的心理学背景

    1 背景介绍 慢思维大脑 SOP流程的心理学背景 慢思维是指人类大脑在处理复杂问题 做出重要决策时所采用的思考方式 它与快速 自动的快思维相对 主要通过以下几种方式表现 深入思考 慢思维会让人类大脑深入思考问题的本质 从而找出更深层次的解决
  • AI大模型应用入门实战与进阶:从AI模型应用到商业转化

    1 背景介绍 人工智能 AI 已经成为当今世界最热门的技术话题之一 其在各个领域的应用也不断拓展 大型AI模型是人工智能领域的核心 它们在自然语言处理 图像识别 语音识别等方面的表现力和性能都有着重要的作用 然而 如何将这些大型AI模型应用
  • 流程管理的未来:人工智能如何改变业务运行

    1 背景介绍 流程管理是企业在实现业务目标时所采取的一系列有序 连贯的活动 它涉及到许多领域 如生产 销售 研发 财务等 随着企业规模的扩大和市场竞争的激烈 流程管理的复杂性也不断增加 人工智能 AI 技术的发展为流程管理提供了新的机遇 有
  • spark相关

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • 用CHAT如何写大学生会计综合模拟实训报告

    CHAT回复 标题 大学生会计综合模拟实训报告 一 前言 随着信息化时代的发展 现代会计工作不再只依赖手动运算和记录 而是更加倚重电脑软件系统的配合运用 因此 对我们大学生来说 把握会计理论知识的同时 积极掌握相关的实践应用技能变得非常重要
  • 如何利用CHAT做简单的总结体会?

    问CHAT 在测试过程中使用appium python自动化的优点和体会 CHAT回复 使用 Appium 配合 Python 进行自动化测试主要有以下几点优点 1 跨平台性 Appium 支持 iOS 和 Android 平台的应用自动化
  • 大数据毕业设计:python微博舆情分析系统+可视化+情感分析+爬虫+机器学习(源码)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • 问CHAT很繁琐的问题会不会有答案呢?

    问CHAT 什么已有的基于极值理论的极端温度重现期主要针对极端高温事件 对极端低温事件研究较少 CHAT 回复 为这主要可能是由于以下几个原因 1 气候变化与全球变暖 当前 全球变暖和气候变化的问题备受关注 这导致科研者更加关注极端高温事件
  • Soul App:来一场始于“兴趣”,轻松自在的“零糖”社交吧

    岁末年终 回顾2023年 这一年你都做了什么呢 记不清楚没关系 互联网都帮你记录好了 2023年 B站的年轻人当 所见所闻 刷新自身认知时 往往会发送弹幕 啊 来抒发惊叹 这一年 支付宝 小荷包 的用户中00后占了4成 近一半更开启了 自动

随机推荐

  • [Cryptography]1.对称密钥和非对称密钥 2.计算modulo inverse 3.计算possible key

    对称密钥和非对称密钥 对称密钥顾名思义就是两个end users使用同一个key Secret Key来进行加密解密 最大的问题就是如何安全的传输SK给另一方 非对称密钥就是说每个人都拥有一个public key和一个private key
  • AC配置文件

    AC1 sh run no service password encryption hostname AC1 sysLocation China sysContact 400 810 9119 username admin privileg
  • 谁能成为真正的「以太坊Killer」?公链aelf准备从经济模型入手

    由于底层技术差异不大 许多公链在基础设施建设 性能标新 以及跨链互操作等方面的实力并没有太多距离 因此 如果想在公链赛道上胜出 成为真正的 以太坊Killer 就需要 另辟蹊径 从经济模式上入手 继而形成差异竞争优势 作者 碳6 编辑 黑土
  • transformers之中mt5和t5的区别

    为了查看transformers结构之中mt5结构和t5结构的区别 这里采用代码对比法 相同的程序分别调用mt5结构和t5结构 使用mt5的结构 from transformers import T5Tokenizer T5ForCondi
  • 一份 Go 开发者学习路线图

    Go 开发者路线图 如何成为一名 Go 开发者的路线图 参考 Go 开发者路线图
  • deepin更新到15.10后任务栏(dde-dock)消失

    两个提示 libdde disk mount plugin so 和系统不兼容 libsystem tray so 和系统不兼容 在终端运行dde dock后 DockPlugin load plugin failed 无法加载库 usr
  • 开源图片文件服务器,XImageServer

    软件简介 XImageServer 一个超级简单的PHP图片服务器 适用对象 中小型网站 图片存储在自己的服务器 并且毫无预见性的时候会使用同一图片的 不同尺寸 特点 1 核心只有一个PHP文件 2 前端图片服务器惰性从NFS等其他文件系统
  • 【STM32标准库】【基础知识】时钟系统

    文章目录 时钟 时钟的作用 时钟的产生 F4系列的时钟系统 时钟源 总线 标准库的时钟设置 内部高速时钟设置 外部高速时钟设置 AHB时钟设置 APB1 2时钟设置 默认值 文章基于适用于STM32F4系列 作者使用STM32F401CCU
  • Linux MISC 驱动实验

    目录 一 MISC 设备驱动简介 misc deregister 函数 二 MISC驱动编写 1 编写框架 2 platform结构体对应的函数 2 宏定义和miscbeep设备结构体 3 定义miscdevice结构体 字符设备操作集 4
  • 浅谈Nginx主配置文件

    浅谈Nginx主配置文件 1 Nginx配置文件组成部分 2 Nginx主配置文件结构 3 Nginx 全局配置 1 正常运行必备的配置 2 性能优化相关的配置 3 事件驱动相关的配置 4 调试和定位配置 1 Nginx配置文件组成部分 N
  • 【Mac使用系列】Mac锁屏及快捷键

    mac锁屏办法 我有所尝试 可用系统自带锁屏快捷键 Ctrl Command Q 或者参考方法2 直接设置TouchBar 这两种办法 亲测可用 我直接设置了TouchBar 锁屏解锁离得很近 比较方便 随你选 Ctrl Shift Pow
  • Python3,selenium动态下载某库PPT文档,省下的钱可以撸串了!!!

    selenium动态下载某库PPT文档 1 引言 2 代码实战 2 1 思路分析 2 2 页面分析 2 3 代码展示 2 4 代码解析 3 总结 1 引言 小鱼 你看啥嘞 把显示屏亮度调的这么暗 小屌丝 这 没有你想的那样 我这是再学习算法
  • property_get函数使用

    在 域的使用方法 int property get const char key char value const char default value int property set const char key const char
  • 设置div中的背景颜色及div中的字体颜色

    div style background black color white 菜单3 div 这样就设置了这个div的背景颜色为黑色 即background属性的颜色 字体颜色为白色 即color属性的颜色 效果如下图
  • C语言学习开头以及个人目标

    一 自我介绍 本人是一个来自某末流211大学的本科生 因为高考的时候发挥失常了 原本可以去一些末985垫底专业或中211的热门专业 最后只能是双非一本随便挑 但是因为不甘心失败就冲了好学校的差专业 最终还是调剂了材料专业 后来好好学习想转专
  • vi/vim 设置tab为4个空格

    vim 编辑器中 tab 有时不是4个空格 代码看起来比较凌乱 配置文件位置 etc vim vimrc Kali linux set ts 4 set softtabstop 4 set shiftwidth 4 set expandta
  • 转帖:DirectShow 在VS2005中环境配置

    转载请标明是引用于 http blog csdn net chenyujing1234 baseclasses参考代码 VS2005下编译通过 http www rayfile com zh cn files 12ac1b0c 7335 1
  • 关于QQ的技巧

    让电脑只能上到自己的QQ 任何QQ都无法登陆 首先把自己的QQ设置为自动登陆模式 接下来最关键的就是移动或删除QQ主目录下的WizardCtrl dll文件 这样就算别的QQ怎么样也登陆不了的了 如果你想上两个QQ的话就把QQ整个目录复制多
  • 2022年 IEEE VIS 科学可视化与体渲染论文整理与分析

    因为最近工作的关系 需要研究一下IEEE VIS中2017年以后的与我之前主要方向 体渲染 医学可视化 有关的论文 我把这些年全部的论文进行了筛选和梳理 总共筛选出57篇论文 打算写一个文章来记录这些内容 这个栏目是2022年的6篇论文的介
  • spark集群搭建与mysql元数据管理

    找个spark集群搭建是针对于上一篇hadoop的基础上搭建的 所以spark的版本也是要按照着hadoop版本进行下载 1 解压spark 修改spark的 etc profile的home目录 2 安装SCALA 并配置SCALA HO