window本地连接远程集群,执行spark任务
介绍: 看网上的博客对于本地联调spark任务整个部署流程都不是很全, 所以单独写了一个,同时加深一些影响,方便下次直接使用 功能: window电脑本地连接远程集群, 执行spark任务调试demo
第一步:demo代码
需要修改的参数:
- spark.sql.warehouse.dir ,该参数指定了 Hive 的数据存储目录;
- hive.metastore.uris;
- hive.exec.scratchdir,该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下;
package com.hzw.fdc.service
import org.apache.spark.internal.Logging
import org.apache.spark.sql.{DataFrame, SparkSession}
object MainFabIndicatorErrorReportService extends Logging{
def main(args: Array[String]): Unit = {
logWarning(s"----------解析 程序入参 args---------")
val warehouseLocation = "hdfs://116.63.158.113:8020/user/hive/warehouse"
val spark: SparkSession = SparkSession.builder()
.appName("MainFabIndicatorErrorReportService")
.master( "local[2]" )
.config("spark.sql.warehouse.dir",warehouseLocation)
.config("dfs.client.use.datanode.hostname", "true")
.config("hive.metastore.uris","thrift://139.9.228.88:9083")
.config("hive.exec.scratchdir", "hdfs://116.63.158.113:8020/user/hive/tmp")
.config("spark.sql.broadcastTimeout", "36000")
.config("spark.debug.maxToStringFields", "100")
.config("spark.sql.autoBroadcastJoinThreshold", "104857600")
.config("spark.sql.broadcastTimeout", "-1")
.enableHiveSupport()
.getOrCreate()
spark.sparkContext.setLogLevel("WARN")
val hiveResult: DataFrame = spark.sql("select * from default.indicator_error_report_day")
hiveResult.createTempView("indicator_error_report_day")
hiveResult.show(20, true)
spark.stop()
}
}
第二步: 本地window 环境配置
window 电脑上本地联调spark任务 , 需要 Hadoop :https://github.com/cdarlint/winutils

下载hadoop文件到window电脑 
配置变量添加   本地电脑配置远程的hosts, 需要把远程集群的服务器hostname在本地添加
修改C:\Windows\System32\drivers\etc\hosts 文件  需要使用管理员权限执行  执行notepad hosts 
第三步:执行spark任务调试

|