aws EMR 调试

本文介绍了如何使用AWS CLI配置凭据,创建并管理EMR集群,通过SSH连接,以及在pyspark和spark-shell中进行交互。同时,讨论了使用spark-submit提交应用到EMR集群的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过CLI工具创建、交互shell

调用aws cli 首先在终端中输入

aws configure 按照要求输入credentials.csv中的ID,key

创建EMR cluster

aws emr create-cluster --name "Spark cluster" --release-label emr-5.16.0 --applications Name=Spark \
--ec2-attributes KeyName=myKey --instance-type m4.large --instance-count 3 --use-default-roles

 通过ssh与其连接

aws emr list-clusters 获取cluster id

aws emr ssh --cluster-id j-3SD91U2E1L2QX --key-pair-file ~/.ssh/mykey.pem

pyspark 进入python shell

spark-shell 进入scala shell

scala> sc
res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@404721db

scala> val textFile = sc.textFile("s3://elasticmapreduce/samples/hive-ads/tables/impressions/dt=2009-04-13-08-05/ec2-0-51-75-39.amazon.com-2009-04-13-08-05.log")

 

scala> val linesWithCartoonNetwork = textFile.filter(line => line.contains("cartoonne
### AWS EMR 与 DeepSeek 的集成 DeepSeek 是一种先进的大语言模型 (LLM),能够处理复杂的自然语言任务。将其与 Amazon EMR 集成可以实现大规模的数据处理和机器学习推理能力。以下是关于如何将 AWS EMR 和 DeepSeek 进行集成的相关技术细节。 #### 1. **环境准备** 为了成功运行 DeepSeek 模型,需要确保以下条件满足: - 使用的是标准的 AWS 账户而非受限账户(如 AWS Educate),因为后者可能无法提供完整的资源访问权限[^2]。 - 创建一个支持 GPU 实例类型的 EMR 集群,以便加速 DeepSeek 模型的计算需求。推荐实例类型包括 `g4dn` 或者更高性能的 GPU 支持实例。 #### 2. **配置 EMR 集群** 在启动 EMR 集群时,可以通过自定义引导操作脚本来安装必要的依赖项以及加载 DeepSeek 模型所需的库。例如: ```bash #!/bin/bash sudo pip install deepseek torch transformers accelerate ``` 此脚本会在集群初始化阶段自动执行并安装所需 Python 库[^4]。 #### 3. **上传数据到 S3 并设置输入路径** 如果计划利用 DeepSeek 处理存储在 MySQL 中的数据,则可通过 Sqoop 将其导入至 S3 存储桶中作为后续分析的基础数据集[^5]。具体命令如下所示: ```bash sqoop import \ --connect jdbc:mysql://<mysql-endpoint>:3306/<database> \ --username <user> \ --password <pass> \ --table DBS \ --target-dir s3://<your-bucket>/hive-dbs/ \ --compress \ --compression-codec org.apache.hadoop.io.compress.GzipCodec \ -m 1; ``` 上述过程会把数据库中的表导出为压缩文件形式存放到指定位置供进一步使用。 #### 4. **编写 Spark Job 来调用 DeepSeek API** 一旦完成了前期准备工作之后,就可以着手开发实际的应用逻辑部分了——即通过 PySpark 编写一段程序来读取来自 S3 的原始资料,并传递给已部署好的 DeepSeek 推理服务端口完成预测功能。下面给出了一段简单的伪代码示例用于说明这一流程: ```python from pyspark.sql import SparkSession import requests spark = SparkSession.builder.appName("deepseek_inference").getOrCreate() dataframe = spark.read.text("s3a://<bucket-name>/<path-to-data>") results = [] for row in dataframe.collect(): payload = {"text":row.value} response = requests.post("<url-of-deepseek-service>", json=payload).json() results.append(response['result']) output_df = spark.createDataFrame(results, ["inferred_result"]) output_df.write.mode('overwrite').parquet("s3a://<output-location>") ``` 这段代码片段展示了怎样从 S3 加载文本数据并通过 HTTP 请求发送给远程托管的服务来进行实时推断最后再保存回云端的过程[^1]。 #### 5. **调试与优化** 当遇到问题或者想要验证当前作业状态的时候,可借助 AWS 提供给开发者的一系列工具来进行排查工作。比如查看日志信息可以帮助定位错误所在之处;另外也可以尝试连接到正在运行节点上手动测试某些环节是否正常运作等等。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值