网站优化电话/app推广拉新

网站优化电话,app推广拉新,创新驱动发展战略意义,网站推广计划包含的主要内容熬了四个大夜才搞明白,最晚一天熬到早上十点/(ㄒoㄒ)/~~,最后发现只要加个参数就解决了。。。抱头痛哭 问题描述: Hadoop集群部署在docker容器中,宿主机执行pyspark程序读取hive表 问题一:当master(local[*])时&…

熬了四个大夜才搞明白,最晚一天熬到早上十点/(ㄒoㄒ)/~~,最后发现只要加个参数就解决了。。。抱头痛哭

问题描述:

Hadoop集群部署在docker容器中,宿主机执行pyspark程序读取hive表

问题一:当master('local[*]')时,docker容器返回给driver端datanode节点的内网ip地址,修改hosts只能将域名转发到ip地址,不能将ip地址转发给ip地址。

问题二:当master('spark://localhost:7077'),因为容器做了端口映射,这里使用的时localhost。driver端为宿主机,spark会把driver端的hostname传到spark集群worker节点上,spark work容器无法识别宿主机hostname

解决方法:

在宿主机配置好hosts,格式为:127.0.0.1 容器hostname(eg:datanode)

问题一:SparkSession加参数config("dfs.client.use.datanode.hostname", "true")//客户端(如 Spark Driver)通过主机名访问 DataNode。

问题二:SparkSession加参数config("spark.driver.host", "192.168.1.5") //宿主机ip地址

就是这么简单。。。哭死(;´༎ຶД༎ຶ`) 

当时试了好多种办法,nginx反向代理、DNSmasq自定义DNS、NPS内网穿透、Macvlan网络模式,SNAT、最后甚至还装了k8s集群外加k8s监控界面,真的哭死。看看现在时间吧,已经4:03了。。。😭😭😭

最后附上完整代码:

import string
import random
from pyspark.sql import SparkSession
import pyspark.sql.functions as F
from pyspark.sql.types import IntegerType, StringType, StructType, ArrayType
if __name__ == '__main__':# =============================== spark local模式 ===============================# 想要读写数据必须要配置windows下的Hadoop环境(不一定,未验证)# 想要使用Hive元数据必须添加enableHiveSupport()这行代码# 无论spark集群配置文件中有没有配置spark元数据信息,都要在代码工程中配置元数据信息,因为本地读取不到集群中的环境变量,创建hive-site.xml文件或代码中定义config都行# 如果不指定spark.sql.warehouse.dir信息则默认为: file:/C:/Users/yelor/spark-warehouse# 如果不知道hive.metastore.uris的值则找不到hive元数据,但不会报错,只是无法使用hive元数据# spark.sql.warehouse.dir和hive.metastore.uris的值可以在代码工程中配置hive-site.xml文件来指定# 容器外需要注意ip地址互通问题,需要配置hosts# 如果Hadoop集群部署在docker容器中,dfs.client.use.datanode.hostname=true在本地local模式下必须要加,不然spark会使用datanode的内网ip来通信import os# 这里可以选择本地win系统的PySpark环境执行pySpark代码,也可以使用虚拟机中PySpark环境,通过os可以配置。# os.environ['SPARK_HOME'] = r'D:\software2\spark-3.1.2-bin-hadoop3.2' # 暂时不写也行PYSPARK_PYTHON = r"D:\AnacondaCache\envs\mspro\python" #python.exe或者简写为python都行# 当存在多个python版本环境时(如使用conda),不指定python环境会报错os.environ["PYSPARK_PYTHON"] = PYSPARK_PYTHON# 配置指定提交作业至HDFS的用户 不然上传文件到 HDFS 的时候会报权限错误 参考文章:https://zhuanlan.zhihu.com/p/538265736# os.environ["HADOOP_USER_NAME"] = "yelor" # 暂时不写也行# 在local模式下,如果想使用hive元数据,以下参数是必须要配置的:spark.sql.warehouse.dir、hive.metastore.urisspark = SparkSession.builder.\appName('udf_define').\master('local[*]').\config('spark.sql.shuffle.partitions', 2).\config('spark.sql.warehouse.dir', 'hdfs://localhost:9000/user/hive/warehouse').\config('hive.metastore.uris', 'thrift://localhost:9083').\config("spark.executor.memory", "1g").\config("spark.driver.memory", "1g").\config("dfs.client.use.datanode.hostname", "true").\config("spark.driver.host", "192.168.1.5").\enableHiveSupport(). \getOrCreate() # =============================== spark master集群模式 ===============================# 如果要连接spark集群,需要保证pyspark包的版本与集群的spark版本一致# 查看spark版本:spark-submit --version# 就算是使用集群执行作业,也必须要配置hive-site.xml文件中的信息,因为还是读取driver端的环境变量# 必须添加enableHiveSupport()这行代码# spark.driver.host保证代码传到spark容器中时以指定的ip地址为driver地址,不然会使用本机的hostname# import os# os.environ['PYSPARK_PYTHON']=r"D:\\AnacondaCache\\envs\\mspro\\python.exe"# spark = SparkSession.builder.\#     appName('udf_define').\#     master('spark://localhost:7077').\#     config('spark.sql.warehouse.dir', 'hdfs://localhost:9000/user/hive/warehouse').\#     config('hive.metastore.uris', 'thrift://localhost:9083').\#     config("spark.executor.memory", "512m").\#     config("spark.driver.memory", "512m").\#     config("spark.driver.host", "192.168.1.5").\#     enableHiveSupport(). \#     getOrCreate() # 如果spark配置文件中没有配置spark元数据信息,就不能使用enableHiveSupport().\ 直接在代码中配置元数据信息也能脸上hive元数据sc = spark.sparkContext# 设置日志级别为 DEBUG# sc.setLogLevel("DEBUG")# 查看表的存储位置warehouse_dir = spark.conf.get("spark.sql.warehouse.dir")print(f"Spark SQL warehouse directory: {warehouse_dir}")# 指定要使用的数据库database_name = "tb"spark.sql(f"USE {database_name}")# 执行 SQL 查询# query = "show databases"# query = "SELECT * FROM orders"# query = "SELECT * FROM students"# df = spark.sql(query)# # 显示查询结果# df.show()# 生成 10000 条模拟数据data = []for _ in range(1000):# 生成随机的姓名和年龄name = ''.join(random.choices(string.ascii_letters, k=5))age = random.randint(18, 60)data.append((name, age))# 定义 DataFrame 的列名columns = ["name", "age"]# 创建 DataFramedf = spark.createDataFrame(data, columns)# 创建临时视图# df.createOrReplaceTempView("test_table")try:# 创建持久化表(可选)df.write.saveAsTable("testaa_table", mode="overwrite")# 验证数据插入spark.sql("SELECT * FROM testaa_table LIMIT 5").show()# 加入循环,保持 SparkSession 一直运行,方便看 Spark UIwhile True:try:import timetime.sleep(1)except KeyboardInterrupt:breakexcept Exception as e:print(f"An error occurred: {e}")finally:spark.stop()# 停止 SparkSession# spark.stop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringMVC】深入解析使用 Postman 和浏览器模拟将单个与多个参数传递到后端和后端接收过程

SpringMVC—请求(Request) 访问不同的路径,就是发送不同的请求;在发送请求时,可能会带一些参数,所以学习Spring的请求,主要是学习如何传递参数到后端以及后端如何接收; 我们主要是使用 浏览器 和 Postman …

电脑的写字板如何使用?

打开写字板: 直接按一下键盘上的win R 键,然后输入:write , 再按一下回车 , 即可打开写字板 可以在里面写文字 和 插入图片等… , 如下所示: 保存写字板内容: 当我们写好了之后,…

HTTP发送POST请求的两种方式

1、json String json HttpRequest.post(getUrl(method, "v1", url, userId, appKey)).header("Content-type", "application/json") // 设置请求头为 JSON 格式.body(JSONUtil.toJsonStr(params)) // 请求体为 JSON 字符串.execute().body(); …

Windows 万兴恢复专家 Wondershare Recoverit-v13.5.7.9-[电脑数据恢复工具]

Windows 万兴恢复专家Wondershare_Recoverit 链接:https://pan.xunlei.com/s/VOL3z608vzAj_IYTvH-F1q7kA1?pwdiu89# 1. 打开Setup.exe进行安装,安装完不要打开软件,记住安装目录 2. 将"Crack"文件夹内的所有文件复制到安装目录 …

Blender UV纹理贴图,导出FBX到Unity

加载ps好的模型贴图。右下角选择《材质》基础色里面选择《图像纹理》,选择你的图片。 选择上面UV选项卡。左上角选择UV编辑器。选中物体,TAB进入编辑模式。即可调整映射的图像范围。 其中渲染设置可以在左侧下边脱出。 导出带纹理FBX模型 路径选择复…

华为hcia——Datacom实验指南——以太网帧和IPV4数据包格式(一)

实验开始 第一步配置环境 第二步配置客户端 如图所示,我们把客户端的ip配置成192.168.1.10,网关设为192.168.1.1 第三步配置交换机1 system-view sysname LSW1 vlan batch 10 interface ethernet0/0/1 port link-type access port default vlan 10 qu…

解锁 Ryu API:从 Python 接口到 REST 设计全解析

Ryu 4.34 版本的 API 功能分类、核心接口说明及示例代码,结合其 Python 应用开发接口和 REST API 的设计特点进行综合解析: 一、Python 应用开发 API Ryu 的核心能力通过 Python 类库实现,开发者需继承 RyuApp 类并注册事件处理函数。 1. 应…

如何在需求分析阶段考虑未来扩展性

在需求分析阶段考虑未来扩展性的关键在于 前瞻规划、灵活架构、标准设计。其中,前瞻规划尤为重要,因为通过全面分析业务发展趋势与技术演进,能够在初期设计阶段预留足够扩展空间,降低后期改造成本,为企业长期发展奠定坚…

Docker搭建Redis哨兵模式【一主两从三哨兵】

Docker搭建Redis哨兵模式 系统: CentOS 7 Dockder 版本: VMware虚拟机 网络适配器 网络连接 桥接模式:直接连接物理网络查看IP命令 ip addr一、哨兵模式概述 1. 官方文档与关联博客 官方文档:https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel关联博…

ThinkPhp 5 安装阿里云内容安全(绿化)

composer require alibabacloud/green-20220302 首先要把php5(不支持php7)的执行文件设置到PATH环境变量 此外还要先执行composer update php5.5和php5.6的区别 5.5认为 <? 开头的也是php文件&#xff0c;包括 <?php 5.6认为 <? 开头的不是php文件&#xff0c;只…

使用NVM工具管理Node版本

Date: 2025.03.10 14:53:55 author: lijianzhan NVM&#xff08;Node Version Manager&#xff09;用于在同一个系统上管理多个 Node.js 版本,NVM 允许你安装、使用和切换不同的 Node.js 版本。这对于前端工作人员来说可以更方便的管理和维护不同nodejs版本的项目。 &#xff0…

AIGC视频生成模型:慕尼黑大学、NVIDIA等的Video LDMs模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍慕尼黑大学携手 NVIDIA 等共同推出视频生成模型 Video LDMs。NVIDIA 在 AI 领域的卓越成就家喻户晓&#xff0c;而慕尼黑大学同样不容小觑&#xff0c;…

NVIDIA k8s-device-plugin源码分析与安装部署

在《kubernetes Device Plugin原理与源码分析》一文中&#xff0c;我们从源码层面了解了kubelet侧关于device plugin逻辑的实现逻辑&#xff0c;本文以nvidia管理GPU的开源github项目k8s-device-plugin为例&#xff0c;来看看设备插件侧的实现示例。 一、Kubernetes Device Pl…

如何使用Postman,通过Mock的方式测试我们的API

这篇文章将教会大家如何利用 postman&#xff0c;通过 Mock 的方式测试我们的 API。 什么是 Mock Mock 是一项特殊的测试技巧&#xff0c;可以在没有依赖项的情况下进行单元测试。通常情况下&#xff0c;Mock 与其他方法的主要区别就是&#xff0c;用于取代代码依赖项的模拟对…

Android中AIDL和HIDL的区别

在Android中&#xff0c;AIDL&#xff08;Android Interface Definition Language&#xff09; 和 HIDL&#xff08;HAL Interface Definition Language&#xff09; 是两种用于定义跨进程通信接口的语言。AIDL 是 Android 系统最早支持的 IPC&#xff08;进程间通信&#xff0…

用android studio模拟器,模拟安卓手机访问网页,使用Chrome 开发者工具查看控制台信息

web 网页项目在安卓手机打开时出现问题&#xff0c;想要查看控制台调试信息。记录一下使用android studio 模拟器访问的方式。 步骤如下&#xff1a; 1.安装android studio&#xff0c;新增虚拟设备&#xff08;VDM- virtual device manager) 点击Virtual Device Manager后会…

spring-boot-starter和spring-boot-starter-web的关联

maven的作用是方便jar包的管理&#xff0c;所以每一个依赖都是对应着相应的一个或者一些jar包&#xff0c;从网上看到很多对spring-boot-starter的描述就是“这是Spring Boot的核心启动器&#xff0c;包含了自动配置、日志和YAML。”没看太明白&#xff0c;所参与的项目上也一直…

数智读书笔记系列015 探索思维黑箱:《心智社会:从细胞到人工智能,人类思维的优雅解读》读书笔记

引言 《The Society of Mind》&#xff08;《心智社会》&#xff09;的作者马文・明斯基&#xff08;Marvin Minsky&#xff09;&#xff0c;是人工智能领域的先驱和奠基者之一 &#xff0c;1969 年获得图灵奖&#xff0c;被广泛认为是对人工智能领域影响最大的科学家之一。他…

【网络编程】WSAAsyncSelect 模型

十、基于I/O模型的网络开发 接着上次的博客继续分享&#xff1a;select模型 10.8 异步选择模型WSAAsyncSelect 10.8.1 基本概念 WSAAsyncSelect模型是Windows socket的一个异步I/O 模型&#xff0c;利用这个模型&#xff0c;应用程序 可在一个套接字上接收以Windows 消息为基…

计算机网络:计算机网络的组成和功能

计算机网络的组成&#xff1a; 计算机网络的工作方式&#xff1a; 计算机网络的逻辑功能; 总结&#xff1a; 计算机网络的功能&#xff1a; 1.数据通信 2.资源共享 3.分布式处理:计算机网络的分布式处理是指将计算任务分散到网络中的多个节点&#xff08;计算机或设备&…