在阿里云EMR上使用Intel Analytics Zoo进行深度学习

本文介绍如何在阿里云EMR上使用由Intel开源的AnalyticsZoo,基于ApacheSpark和IntelBigDL,进行大数据深度学习应用开发。涵盖系统要求、安装步骤及使用案例,如文本分类和深度学习模型训练。

摘要: Analytics Zoo是由Intel开源,基于Apache Spark和Inte BigDL的大数据分析和AI平台,方便用户开发基于大数据、端到端的深度学习应用。本文简单介绍了如何在Aliyun EMR使用Analytics Zoo来进行深度学习。

简介
Analytics Zoo是由Intel开源,基于Apache Spark和Inte BigDL的大数据分析和AI平台,方便用户开发基于大数据、端到端的深度学习应用。

系统要求

  1. JDK 8
  2. Spark 集群(推荐使用EMR支持的Spark 2.x)
  3. python-2.7(python 3.5,3.6也支持),
    pip

安装Analytics Zoo
Analytics Zoo 最新的release版本是0.2.0

Scala安装

1、下载pre-build版本
可以从github,analytics主页下载到pre-build版本
2、通过script build
安装Apache Maven,设置Maven环境

export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

如果使用ECS机器进行编译,推荐修改Maven仓库mirror

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

下载Analytics Zoo release版本,解压后在目录下运行

bash make-dist.sh

build结束后,在dist目录中包含了所有的运行环境。将dist目录放到EMR软件栈运行时统一目录。

cp -r dist/ /usr/lib/analytics_zoo

python 安装
Analytics Zoo支持pip安装和非pip安装,pip安装会安装pyspark,bigdl等,由于EMR集群已经安装了pyspark,通过pip安装有可能引起冲突,所以采用非pip安装。

非Pip安装
首先要运行

bash make-dist.sh

进入pyzoo目录,安装analytcis zoo

python setup.py install

设置环境变量
在scala安装结束后将dist目录放到了EMR软件栈统一目录,然后设置环境变量。编辑/etc/profile.d/analytics_zoo.sh,加入

export ANALYTICS_ZOO_HOME=/usr/lib/analytics_zoo
export PATH=$ANALYTICS_ZOO_HOME/bin:$PATH

EMR已经设置了SPARK_HOME,所以无需再次设置。

使用Analytics Zoo
使用Spark来训练和测试深度学习模型
使用Analytics Zoo来做文本分类,代码和说明在github。根据说明下载必须的数据。提交命令:

spark-submit --master yarn \
--deploy-mode cluster --driver-memory 8g \
--executor-memory 20g --class com.intel.analytics.zoo.examples.textclassification.TextClassification \
/usr/lib/analytics_zoo/lib/analytics-zoo-bigdl_0.6.0-spark_2.1.0-0.2.0-jar-with-dependencies.jar --baseDir /news

通过ssh proxy来查看spark运行详情页面。
在这里插入图片描述
同时查看日志,能够看到每个epoch的accuracy信息等。

INFO optim.DistriOptimizer$: [Epoch 2 9600/15107][Iteration 194][Wall Clock 193.266637037s] Trained 128 records in 0.958591653 seconds. Throughput is 133.52922 records/second. Loss is 0.74216986.
INFO optim.DistriOptimizer$: [Epoch 2 9728/15107][Iteration 195][Wall Clock 194.224064816s] Trained 128 records in 0.957427779 seconds. Throughput is 133.69154 records/second. Loss is 0.51025534.
INFO optim.DistriOptimizer$: [Epoch 2 9856/15107][Iteration 196][Wall Clock 195.189488678s] Trained 128 records in 0.965423862 seconds. Throughput is 132.58424 records/second. Loss is 0.553785.
INFO optim.DistriOptimizer$: [Epoch 2 9984/15107][Iteration 197][Wall Clock 196.164318688s] Trained 128 records in 0.97483001 seconds. Throughput is 131.30495 records/second. Loss is 0.5517549.

在Analytics Zoo中使用pyspark和Jupyter来进行深度学习训练
安装jupyter

pip install jupyter

使用下面命令启动。

jupyter-with-zoo.sh

使用Analytics Zoo,采用内置的Wide And Deep 模型来进行推荐,相关内容可参考github。
首先导入数据
在这里插入图片描述
然后定义模型和优化器
在这里插入图片描述
进行训练
在这里插入图片描述
查看训练结果
在这里插入图片描述
在这里插入图片描述
转载:云溪社区

### 阿里云 EMR 使用指南与功能介绍 阿里云弹性 MapReduce(E-MapReduce)是一个基于 Apache Hadoop 和 Apache Spark 的大数据处理和分析平台,支持多种开源组件的部署和管理。以下将从功能介绍、配置方法以及使用指南等方面进行详细说明。 #### 功能介绍 阿里云 EMR 提供了丰富的功能以满足不同场景下的大数据处理需求: - **分布式计算框架**:支持 Hadoop、Spark、Flink 等主流大数据计算框架,能够高效处理大规模数据集[^1]。 - **存储与查询**:集成 HDFS、HBase、Phoenix 等存储系统,支持高并发读写和复杂查询操作[^1]。 - **实时数据处理**:通过 Kafka 和 Flink 实现流式数据的实时采集与处理[^5]。 - **资源调度与管理**:提供灵活的资源调度机制,支持 YARN 资源管理器,确保任务的高效执行[^2]。 - **扩展性**:支持动态扩展集群规模,用户可以根据实际需求调整计算节点的数量[^5]。 #### 配置方法 在配置阿里云 EMR 时,需要根据具体业务需求选择合适的组件和服务。以下是关键步骤: - **准备工作**:确保安装 JDK 1.8 或更高版本,并完成基础环境的配置[^1]。 - **组件选择**:根据业务场景选择必要的组件,例如 Zookeeper(用于高可用支持)、Kafka(实时消息队列)、Flink(实时数据处理)等。 - **集群规划**:合理规划集群规模和资源配置,建议参考初期集群选购指南[^5]。 - **优化设置**:利用 MaxCompute 的 Quota 组功能进行资源优化调配,例如设置强隔离或资源倾斜策略[^4]。 #### 使用指南 阿里云 EMR 提供了详尽的使用指南,帮助用户快速上手并完成数据分析任务: - **环境搭建**:按照 EMR 组件部署指南完成环境初始化和组件安装。 - **示例项目**:参考 aliyun-emapreduce-demo 项目中的代码示例和文档说明,熟悉常见大数据处理工作流。 - **测试与优化**:利用 StarRocks 测试指南评估性能表现,并结合实际需求调整配置[^3]。 ```python # 示例代码:创建一个简单的 Spark 任务 from pyspark.sql import SparkSession spark = SparkSession.builder.appName("example").getOrCreate() data = spark.read.format("csv").option("header", "true").load("s3://bucket/path/to/data.csv") data.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值