免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程内容 使用 idea 开发 spark 实战 使用 idea 开发 spark 的 Local 和 Cluster 一 配置开发环境 1 要在本地安装好 java 和 scala 由于 spark1 6 需要 scala 2 10 X 版本的 推荐 2 10 4 java 版本最好是 1 8 所以提前我 们要需要安装好 java 和 scala 并在环境变量中配置好 2 下载 IDEA 社区版本 选择 windows 版本并按照配置 安装完成以后启动 IDEA 并进行配置 默认即可 然后点击 ok 以后 设置 ui 风格 然后点击 next 会出现插件的选择页面 默认不需求修改 点击 next 选择安装 scala 语 言 点击 install 按钮 非常重要 以为要开发 spark 程序所以必须安装 等安装完 成以后点击 start 启动 IDEA 3 创建 scala 项目 点击 create new project 然后填写 project name 为 Wordcount 选择项目的保存 地址 project location 然后设置 project sdk 即 java 的安装目录 点击右侧的 new 按钮 选择 jdk 然后选 择 java 的安装路径即可 然后选择 scala sdk 点击右侧的 create 默认出现时 2 10 x 版本的 scala 点击 ok 即可 然后点击 finish 4 设置 spark 的 jar 依赖 点击 file project structure 来设置工程的 libraries 核心是添加 spark 的 jar 依赖 选 择 Libraries 点 击 右 侧 的 加 号 选 择java 选 择spark1 6 0 的 spark 1 6 0 bin hadoop2 6 lib spark assembly 1 6 0 hadoop2 6 0 jar 点击 ok 稍等片 刻后然后点击 ok Libraries 作用于 WordCount 然后点击 apply 点击 ok 这一步很 重要 如果没有无法编写 spark 的代码 二 编写代码 1 在 src 下建立 spark 程序工程包 在 src 上右击 new package 填入 package 的 name 为 com dt spark 2 创建 scala 的入口类 在包的名字上右击 选择 new scala class 在弹出框中 填写 Name 并制定 kind 为 object 点击 ok 3 编写 local 代码 package com dt spark import org apache spark SparkConf import org apache spark SparkContext import org apache spark rdd RDD 使用 Scala 开发本地测试的 Spark WordCount 程序 author DT 大数据梦工厂 新浪微博 object WordCount def main args Array String 第 1 步 创建 Spark 的配置对象 SparkConf 设置 Spark 程序的运行时 的配置信息 例如说通过setMaster来设置程序要链接的Spark集群的Master的URL 如果设置 为 local 则代表 Spark 程序在本地运行 特别适合于机器配置条件非 常差 例如 只有 1G 的内存 的初学者 val conf new SparkConf 创建 SparkConf 对象 conf setAppName Wow My First Spark in IDEA 设置应用程序的名称 在 程序运行的监控界面可以看到名称 conf setMaster local 此时 程序在本地运行 不需要安装 Spark 集群 第 2 步 创建 SparkContext 对象 SparkContext是Spark程序所有功能的唯一入口 无论是采用Scala Java Python R 等都必须有一个 SparkContext SparkContext核心作用 初始化Spark应用程序运行所需要的核心组件 包括 DAGScheduler TaskScheduler SchedulerBackend 同时还会负责 Spark 程序往 Master 注册程序等 SparkContext 是整个 Spark 应用程序中最为至关重要的一个对象 val sc new SparkContext conf 创建 SparkContext 对象 通过传入 SparkConf 实例来定制 Spark 运行的具体参数和配置信息 第 3 步 根据具体的数据来源 HDFS HBase Local FS DB S3 等 通过 SparkContext 来创建 RDD RDD 的创建基本有三种方式 根据外部的数据来源 例如 HDFS 根据 Scala 集合 由其它的 RDD 操作 数据会被 RDD 划分成为一系列的 Partitions 分配到每个 Partition 的数 据属于一个 Task 的处理范畴 val lines RDD String sc textFile D Big Data Software spark 1 6 0 bin hadoop2 6 README md 1 读取 本地文件并设置为一个 Partion val lines sc textFile D Big Data Software spark 1 6 0 bin hadoop2 6 README md 1 读取 本地文件并设置为一个 Partion 第 4 步 对初始的 RDD 进行 Transformation 级别的处理 例如 map filter 等高阶函数等的编程 来进行具体的数据计算 第 4 1 步 讲每一行的字符串拆分成单个的单词 val words lines flatMap line line split 对每一行的字符串进行单 词拆分并把所有行的拆分结果通过 flat 合并成为一个大的单词集合 第 4 步 对初始的 RDD 进行 Transformation 级别的处理 例如 map filter 等高阶函数等的编程 来进行具体的数据计算 第4 2步 在单词拆分的基础上对每个单词实例计数为1 也就是word word 1 val pairs words map word word 1 第 4 步 对初始的 RDD 进行 Transformation 级别的处理 例如 map filter 等高阶函数等的编程 来进行具体的数据计算 第 4 3 步 在每个单词实例计数为 1 基础之上统计每个单词在文件中 出现的总次数 val wordCounts pairs reduceByKey 对相同的 Key 进行 Value 的累计 包括 Local 和 Reducer 级别同时 Reduce wordCounts foreach wordNumberPair println wordNumberPair 1 wordNumberPair 2 sc stop 在代码去右击 选择点击 run wordCount 来运行程序 在生成环境下肯定是写自动 化 shell 脚本自动提交程序的 4 编写 Cluster 模式代码 import org apache spark SparkConf import org apache spark SparkContext import org apache spark rdd RDD 使用 Scala 开发集群运行的 Spark WordCount 程序 author DT 大数据梦工厂 新浪微博 object WordCount Cluster def main args Array String 第 1 步 创建 Spark 的配置对象 SparkConf 设置 Spark 程序的运行时的配置信息 例如说通过 setMaster 来设置程序要链接的 Spark 集群的 Master 的 URL 如果设置 为 local 则代表 Spark 程序在本地运行 特别适合于机器配置条件非常差 例如 只有 1G 的内存 的初学者 val conf new SparkConf 创建 SparkConf 对象 conf setAppName Wow My First Spark App 设置应用程序的名称 在程序运行的监 控界面可以看到名称 conf setMaster spark Master 7077 此时 程序在 Spark 集群 第 2 步 创建 SparkContext 对象 SparkContext 是 Spark 程序所有功能的唯一入口 无论是采用 Scala Java Python R 等都必须有一个 SparkContext SparkContext 核心作用 初始化 Spark 应用程序运行所需要的核心组件 包括 DAGScheduler TaskScheduler SchedulerBackend 同时还会负责 Spark 程序往 Master 注册程序等 SparkContext 是整个 Spark 应用程序中最为至关重要的一个对象 val sc new SparkContext conf 创建 SparkContext 对象 通过传入 SparkConf 实例来 定制 Spark 运行的具体参数和配置信息 第 3 步 根据具体的数据来源 HDFS HBase Local FS DB S3 等 通过 SparkContext 来创建 RDD RDD 的创建基本有三种方式 根据外部的数据来源 例如 HDFS 根据 Scala 集合 由其它的 RDD 操作 数据会被 RDD 划分成为一系列的 Partitions 分配到每个 Partition 的数据属于一个 Task 的处理范畴 val lines sc textFile hdfs Master 9000 library wordcount input Data 读取 HDFS 文件并切分成不同的 Partions val lines sc textFile library wordcount input Data 读取 HDFS 文件并切分成不同 的 Partions 第 4 步 对初始的 RDD 进行 Transformation 级别的处理 例如 map filter 等高阶 函数等的编程 来进行具体的数据计算 第 4 1 步 讲每一行的字符串拆分成单个的单词 val words lines flatMap line line split 对每一行的字符串进行单词拆分并把 所有行的拆分结果通过 flat 合并成为一个大的单词集合 第 4 步 对初始的 RDD 进行 Transformation 级别的处理 例如 map filter 等高阶 函数等的编程 来进行具体的数据计算 第4 2步 在单词拆分的基础上对每个单词实例计数为1 也就是word word 1 val pairs words map word word 1 第 4 步 对初始的 RDD 进行 Transformation 级别的处理 例如 map filter 等高阶 函数等的编程 来进行具体的数据计算 第 4 3 步 在每个单词实例计数为 1 基础之上统计每个单词在文件中出现的总 次数 val wordCountsorderd pairs reduceByKey map pair pair 2 pair 1 sortByKey false map pair pair 1 pair 2 对相同的 Key 进行 Value 的累计 包括 Local 和 Reducer 级别同时 Reduce wordCountsorderd collect foreach wordNumberPair println wordNumberPair 1 wordNumberPair 2 sc stop 将程序达成 jar 包 点击 file project structure 在弹出的页面点击 Artifacts 点击右侧的 选择 jar from modules with dependencies 在弹出的页面中 设置好 main class 然后点击 ok 在弹出页面修 改 Name 系统生成的 name 不规范 导出位置并删除 scala 和 spark 的 jar 因为集群环 境中已经存在 点击 ok 然后在菜单栏中点击 build Artifacts 在弹出按钮中 点击 bulid 会自动开始打包 在 hadoop 中执行 wordcount 方法 将 jar 放到 linux 系统某个目录中 执行 spark submit class com dt spark WordCount Cluster master spark ma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2476-2026腹膜透析机校准规范
- T/SHATCMI 0002-2023藏红花质量规范
- T/NAHIEM 158-2025日夜分护婴儿纸尿裤
- T/CECCEDA 3-2025企业文化建设指南
- T/CHAA 037-2024医疗机构特殊医学用途配方食品运营管理规范
- T/CSMT YB023-2026动态公路车辆自动衡器期间核查技术规范
- GB/T 3102.7-2026量和单位第7部分:光和辐射
- 2025~2026学年河北省保定市涞水县人教版六年级上册11月期中数学试卷【附答案】
- 2027届四川省绵阳市游仙区数学八上期末综合测试模拟试题含解析
- PHP工程师笔试真题(含详细答案·企业实操版)
- 2026年广西北部湾国际港务集团有限公司人员招聘笔试参考试题及详细答案解析
- 自考 08257 舆论学・重点精简版(速记 + 考点)
- 2026年校招:太平洋保险笔试题及答案
- 2026国企招聘考试公共基础知识考试题(含答案)
- 2025年银行考试-银行间本币市场交易员资格笔试考试历年典型考题及考点
- 安徽省2026年中考数学试题(解析版)
- 【万科集团财务风险防范措施研究8400字(论文)】
- 重庆市康德卷2025-2026学年高二下学期期末考试+政治试题(含答案)
- 管道巡线管理办法培训
- 汽车制造工艺基础+车身冲压+课件
- 产后出血的识别与紧急处理
评论
0/150
提交评论