首页 > 其他分享 >12.18

12.18

时间:2024-12-31 10:31:22浏览次数:8  
标签:hdfs hadoop sc spark hadoop102 Spark 12.18

选择要添加的模块

Step9、新建一个 Scala class,类型为 Object

Step10、编写 spark 程序
示例代码如下:  

package com.atguigu.sparkdemo

import org.apache.spark.{SparkConf, SparkContext}
import org.slf4j.LoggerFactory

object WordCountDemo {
  val logger = LoggerFactory.getLogger(WordCountDemo.getClass)

  def main(args: Array[String]): Unit = {
    // 创建 SparkConf() 并设置 App 名称
    val sparkConf = new SparkConf().setAppName("WC")
    // 创建 SparkContext,该对象是提交 Spark App 的入口
    val sc = new SparkContext(sparkConf)
    // 使用 sc 创建 RDD 并执行相应的 transformation 和 action
    sc.textFile(args(0)).flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _, 1).sortBy(_._2, false).saveAsTextFile(args(1))
    // 停止 sc,结束该任务
    logger.info("complete!")
    sc.stop()
  }
}

Step11、使用 Maven 打包:首先修改 pom.xml 中的 main class


Step12、点击 idea 右侧的 Maven Project 选项,点击 “闪电”图表,表示跳过测试,然后点击 Lifecycle,再分别双击 clean 和 package

Step13、选择编译成功的 jar 包,并将该 jar 上传到 Spark 集群中的某个节点上

Step14、首先启动 hdfs 和 Spark 集群
启动 hdfs  
/opt/module/hadoop-2.7.3/sbin/start-dfs.sh

启动 spark

 
/opt/module/spark-2.1.1-bin-hadoop2.7/sbin/start-all.sh

Step15、使用 spark-submit 命令提交 Spark 应用(注意参数的顺序)

 
$ /opt/module/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \
--class com.atguigu.sparkdemo.WordCountDemo \
--master spark://hadoop102:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/opt/software/sparkdemo-1.0-SNAPSHOT-jar-with-dependencies.jar \
hdfs://hadoop102:9000/RELEASE \
hdfs://hadoop102:9000/out1

Step16、查看程序执行结果

 
$ /opt/module/hadoop-2.7.2/bin/hdfs dfs -cat hdfs://hadoop102:9000/out1/p*

如下图所示:


--master 后面跟的参数小结:

传入参数说明:  
hdfs://hadoop102:9000/RELEASE           输入文件路径
hdfs://hadoop102:9000/out1              输出文件路径

如果在 spark 程序中写死了这两处路径,则这两个参数就不需要了。

3.5 在 IDEA 中本地调试 WordCount 程序

本地 Spark 程序调试需要使用 local 提交模式,即将本机当做运行环境,Master 和 Worker 都为本机。运行时直接加断点调试即可。如下:

如果本机操作系统是 windows,如果在程序中使用了 hadoop 相关的东西,比如写入文件到 HDFS,则会遇到如下异常:


出现这个问题的原因,并不是程序的错误。在 windows 下调试 spark 的时候,用到了 hadoop 相关的服务。

解决办法1:本项目生效,是将一个 hadoop 相关的服务 zip 包(hadoop-common-bin-2.7.3-x64.zip)解压到任意目录。
点击 Run -> Run Configurations
然后在 IDEA 中配置 Run Configuration,添加 HADOOP_HOME 变量即可:

解决办法2:所有项目生效,windows 系统中配置 hadoop 的环境变量,如下图所示:

3.6 在 IDEA 中远程调试 WordCount 程序

通过 IDEA 进行远程调试,主要是将 IDEA 作为 Driver 来提交应用程序,配置过程如下:
修改 sparkConf,添加最终需要运行的 Jar 包、Driver 程序的地址,并设置 Master 的提交地址:

3.7 Spark 核心概念

  每个 Spark 应用都由一个驱动器程序(driver program)来发起集群上的各种并行操作。驱动器程序包含应用的 main 函数,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作。
  驱动器程序通过一个 SparkContext 对象来访问 Spark。这个对象代表对计算集群的一个连接。shell 启动时已经自动创建了一个 SparkContext 对象,是一个叫作 sc 的变量。
  驱动器程序一般要管理多个执行器(executor)节点。
  

标签:hdfs,hadoop,sc,spark,hadoop102,Spark,12.18
From: https://www.cnblogs.com/luoqingci/p/18643387

相关文章

  • 12.18
    项目范围管理”是项目成功的重要保障。明确项目的范围,即确定项目要做什么和不要做什么,是避免项目失控的关键。在项目初期,我们要和利益相关者一起界定项目的边界,防止范围蔓延。例如,在开发一个手机应用程序时,如果一开始没有明确规定只支持某些特定的操作系统版本,随着项目的推进,可能......
  • 2024.12.18(周三)
    namespaceDatabase{partialclassManage{///<summary>///Requireddesignervariable.///</summary>privateSystem.ComponentModel.IContainercomponents=null;///<summary>///C......
  • 2024.12.18 周三
    2024.12.18周三Q1.1000Youhaveanarrayofzerosa1,a2......
  • 12.18学习内容
    目录1、三角形画法2、消除图片间留白2.1  图片大小独占一行时①给元素设display:block②给元素设浮动:float:left2.2  一行有多张图片时①给父级设font-size:0②给父级设display:flex③给元素设浮动:float:left3、蒙层4、超出文本显示“...”5......
  • 12.18《代码大全2》读后感3
    进入阅读《代码大全2》的第三阶段,在代码世界中开启一场深度寻宝之旅。书中强调代码构建的系统性思维,使我认识到编写代码前规划架构的重要性,不能盲目堆砌功能。例如在大型项目里,合理分层与模块划分能避免混乱。其对变量命名、代码布局等细节的阐述也极为关键。清晰准确的变量命名......
  • 2024.12.18做题,对AI的提问记录,拓扑排序和图的关键活动
    什么是拓扑排序拓扑排序(TopologicalSorting)是一种用于有向无环图(DAG,DirectedAcyclicGraph)的线性排序。对于图中的每一个有向边u->v,顶点u在排序中都出现在顶点v之前。拓扑排序可以用于解决依赖关系的问题,例如任务调度、编译顺序等。拓扑排序的常见算法有两种:Kahn's......
  • 12.18随笔
    这里是12.18随笔题目留档:6-4快速排序分数10作者DS课程组单位临沂大学本题要求实现快速排序的一趟划分函数,待排序列的长度1<=n<=1000。函数接口定义:intPartition(SqListL,intlow,inthigh);其中L是待排序表,使排序后的数据从小到大排列。类型定义:typedefin......
  • 12.18
    JavaWeb前端常用的代码复用总结servlet声明定义message信息传给前天界面判断输出message;if(booknamelist.size()==0){message="根据书名查询没有结果!";}<%Stringmessage=(String)request.getAttribute("message");if(message!=null){%><%}%>查......
  • 12.18
    实验5MapReduce初级编程实践 1.实验目的(1)通过实验掌握基本的MapReduce编程方法;(2)掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04)(2)Hadoop版本:3.1.33.实验步骤(一)编程实现文件合并......
  • 12.18
    任何运行于现代操作系统中的程序都会与同时运行的其他程序、检查磁盘或者新的 Java 和Flash 版本的定期维护进程以及控制网络接口、磁盘、声音设备、加速器、温度计和其他外设的操作系统的各个部分共享计算机。每个程序都会与其他程序竞争计算机资源。程序不会过多在意这些事......