• 2023_Spark_实验十六:编写LoggerLevel方法及getLocalSparkSession方法


    一、搭建Spark项目结构

    在SparkProject模块的pom.xml文件中增加一下依赖,并等待依赖包下载完毕,如上图。

    1. <properties>
    2. <scala.version>2.11scala.version>
    3. <spark.version>2.1.1spark.version>
    4. properties>
    5. <dependencies>
    6. <dependency>
    7. <groupId>com.thoughtworks.paranamergroupId>
    8. <artifactId>paranamerartifactId>
    9. <version>2.8version>
    10. dependency>
    11. <dependency>
    12. <groupId>org.apache.sparkgroupId>
    13. <artifactId>spark-core_${scala.version}artifactId>
    14. <version>${spark.version}version>
    15. dependency>
    16. <dependency>
    17. <groupId>org.apache.sparkgroupId>
    18. <artifactId>spark-sql_${scala.version}artifactId>
    19. <version>${spark.version}version>
    20. dependency>
    21. <dependency>
    22. <groupId>org.apache.sparkgroupId>
    23. <artifactId>spark-streaming_2.11artifactId>
    24. <version>${spark.version}version>
    25. dependency>
    26. <dependency>
    27. <groupId>org.apache.sparkgroupId>
    28. <artifactId>spark-mllib_2.11artifactId>
    29. <version>2.1.1version>
    30. dependency>
    31. <dependency>
    32. <groupId>org.apache.sparkgroupId>
    33. <artifactId>spark-streaming-kafka-0-10_2.11artifactId>
    34. <version>2.3.0version>
    35. dependency>
    36. <dependency>
    37. <groupId>org.apache.sparkgroupId>
    38. <artifactId>spark-streaming-kafka-0-8_${scala.version}artifactId>
    39. <version>2.3.0version>
    40. dependency>
    41. <dependency>
    42. <groupId>net.jpountz.lz4groupId>
    43. <artifactId>lz4artifactId>
    44. <version>1.3.0version>
    45. dependency>
    46. <dependency>
    47. <groupId>mysqlgroupId>
    48. <artifactId>mysql-connector-javaartifactId>
    49. <version>8.0.18version>
    50. dependency>
    51. <dependency>
    52. <groupId>org.apache.flume.flume-ng-clientsgroupId>
    53. <artifactId>flume-ng-log4jappenderartifactId>
    54. <version>1.7.0version>
    55. dependency>
    56. <dependency>
    57. <groupId>org.apache.sparkgroupId>
    58. <artifactId>spark-hive_2.12artifactId>
    59. <version>2.4.8version>
    60. dependency>
    61. dependencies>
    62. <build>
    63. <plugins>
    64. <plugin>
    65. <groupId>org.apache.maven.pluginsgroupId>
    66. <artifactId>maven-compiler-pluginartifactId>
    67. <version>3.8.1version>
    68. <configuration>
    69. <source>1.8source>
    70. <target>1.8target>
    71. configuration>
    72. plugin>
    73. <plugin>
    74. <groupId>org.apache.maven.pluginsgroupId>
    75. <artifactId>maven-assembly-pluginartifactId>
    76. <configuration>
    77. <descriptorRefs>
    78. <descriptorRef>jar-with-dependenciesdescriptorRef>
    79. descriptorRefs>
    80. configuration>
    81. plugin>
    82. plugins>
    83. build>

    二、解决无法创建scala文件问题

    三、编写LoggerLevel特质

    在特质  下增加如下代码

    1. Logger.getLogger("org").setLevel(Level.ERROR)

    这个时候需要导包

    完整代码如下:


     

    1. import org.apache.log4j.{Level, Logger}
    2. trait LoggerLevel {
    3. Logger.getLogger("org").setLevel(Level.ERROR)
    4. }

    四、编写getLocalSparkSession方法

    以下是完整代码:

    1. import org.apache.spark.sql.SparkSession
    2. object SparkUnit {
    3. /**
    4. * 一个class参数
    5. **/
    6. def getLocalSparkSession(appName: String): SparkSession = {
    7. SparkSession.builder().appName(appName).master("local[2]").getOrCreate()
    8. }
    9. def getLocalSparkSession(appName: String, support: Boolean): SparkSession = {
    10. if (support) SparkSession.builder().master("local[2]").appName(appName).enableHiveSupport().getOrCreate()
    11. else getLocalSparkSession(appName)
    12. }
    13. def getLocalSparkSession(appName: String, master: String): SparkSession = {
    14. SparkSession.builder().appName(appName).master(master).getOrCreate()
    15. }
    16. def getLocalSparkSession(appName: String, master: String, support: Boolean): SparkSession = {
    17. if (support) SparkSession.builder().appName(appName).master(master).enableHiveSupport().getOrCreate()
    18. else getLocalSparkSession(appName, master)
    19. }
    20. def stopSpark(ss: SparkSession) = {
    21. if (ss != null) {
    22. ss.stop()
    23. }
    24. }
    25. }

  • 相关阅读:
    【Vue面试题二十八】、vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
    【vscode】 unable to connect to github.com
    高可用系统架构——关于语雀宕机的思考
    asp.net乒乓球场地管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
    Typescript高级: 深入理解extends keyof语法
    Flink 的集群资源管理
    【django+vue】项目搭建、解决跨域访问
    易周金融分析 | 银行ATM机智能化改造提速;互联网贷款新规带来挑战
    [H5动画制作系列 ]变量,帧频,监听器等的生命周期基础测试
    R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值
  • 原文地址:https://blog.csdn.net/pblh123/article/details/133853856