Stay hungry Stay foolish

阿里云大数据产品测试报告

Posted on By blue

近期(2017年2月)分别对阿里云MaxCompute(原名ODPS)、E-MapReduce、ECS进行测试,现将测试结果进行整理汇总。

一、产品介绍

1、MaxCompute介绍

官网地址:https://help.aliyun.com/document_detail/27800.html?spm=5176.7740343.6.539.dskYkD

总结下MaxCompute是:

一种快速、完全托管的数据仓库解决方案,用户导入数据后,即可查询使用。用户可以不必关心分布式计算细节,从而达到分析大数据的目的。

2、E-MapReduce介绍

官网地址:https://www.aliyun.com/product/emapreduce?spm=5176.7618386.416540.52.PRJQdA

总结下E-MapReduce是:

ECS实例 + 定制化Hadoop,可以自动化按需创建集群,支持Hadoop中的作业(MapReduce,Hive,Spark等)

3、ECS介绍

官网地址:https://help.aliyun.com/document_detail/25367.html?spm=5176.doc25422.6.539.XNUDru

总结以下ECS是:

云服务器 Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务,一个 ECS 实例是一个虚拟的计算环境,包含了 CPU、内存、操作系统、磁盘、带宽等最基础的服务器组件。

二、测试过程

1、MaxCompute测试

2、E-MapReduce测试

注:Impala无法直接使用OSS中的数据,必须先将OSS中的数据导入到HDFS,才能使用

3、ECS-CDH 测试

三、测试结果

详细结果见Excel

需要注意的是:在物理机集群上执行查询,其耗时跟当前集群负载相关,如集群负载过高,则查询耗时长,反之亦然

四、产品比较

需要注意的是:

  • EMR新增节点,节点配置无法更改,只能使用初始化集群时的节点配置。

  • EMR释放资源,不支持释放单个节点,只能释放整个集群。

  • 使用MaxCompute中的ADS查询引擎,从ODPS导入数据到ADS中,存在一定门槛。

五、产品使用体验

在对MaxCompute、EMR、CDH-ECS三款产品的测试过程中,整理了我个人及BI组同事的意见,

MaxCompute

  1. 能比较快的上手使用,若使用ADS,则需要导数据较为不便
  2. 更像是一个服务,拿来就可以用,不需要操太多心

EMR

  1. 集群运维十分依赖阿里的技术人员
  2. 产品待完善,很多我们需要的功能(运维、监控、权限)还在开发中
  3. 交互查询界面待完善
  4. 如果使用Hue,或者查看Hadoop Web等,则需要在电脑上做端口映射,不太方便

ECS-CDH

  1. 和目前用的是一样的,所以很熟悉,没什么过渡成本
  2. 需要对ECS进行初始化工作,如挂载数据盘,修改主机名,环境配置等

从使用体验上来说:

MaxCompute最优,其次是ECS-CDH,最后是EMR

六、产品收费标准

MaxCompute

MaxCompute 以项目(Project)为基本单元,从存储、计算和数据下载三个方面分别计费:

  • 存储计费:存储到 MaxCompute 的数据,包括表(Table)和资源(Resource)等,会按照其数据容量的大小进行阶梯计费

  • 计算计费:MaxCompute 分两种计算计费方式。一种是在按I/O后付费方式,即以作业的I/O消耗作为计量指标,在作业执行后收取费用,另一种是按CU预付费方式,即用户提前预定一部分资源

  • 下载计费:对于公网或者跨Region的数据下载,MaxCompute将按照下载的数据大小进行计费。

详见:https://help.aliyun.com/document_detail/27989.html?spm=5176.7740343.6.721.wKe32l

EMR

E-MapReduce 产品的费用包含如下几个部分:

  • ECS 产品的费用

  • E-MapReduce 产品的费用

  • Master 节点的外网流量费用

详见:https://help.aliyun.com/document_detail/34946.html?spm=5176.doc28128.6.551.LffOQc

ECS

云服务器 ECS 有两种计费模式:

  • 包年包月

  • 按量付费

详见:https://help.aliyun.com/document_detail/25370.html?spm=5176.doc25398.6.571.XJ0wQo

六、测试过程中出现的问题及解决方法

问题原因:metastore连接问题

解决过程:提供阿里技术人员 集群Master节点的IP,SSH密码,其登陆后台进行解决。

2、动态扩容中,HDFS的DataNode并未自动增加

问题原因:文件的权限问题,跟hbase相关

解决过程:提供阿里技术人员 集群Master节点的IP,SSH密码,其登陆后台进行解决。

3、动态扩容中,新增节点的配置,只能使用首次安装选择的配置进行扩容

问题原因:hadoop系统的组件是与机器配置相关的,不同配置有不同的参数

解决过程:暂时无法解决

4、执行distcp(从OSS存储迁移数据HDFS)过程中,出现错误

17/02/21 14:21:08 INFO mapreduce.Job:  map 6% reduce 0%
17/02/21 14:21:10 INFO mapreduce.Job: Task Id : attempt_1487645941615_0010_m_000016_0, Status : FAILED
Container [pid=18601,containerID=container_1487645941615_0010_01_000018] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 3.7 GB of 5 GB virtual memory used. Kill
ing container.Dump of the process-tree for container_1487645941615_0010_01_000018 :
|- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE
|- 18605 18601 18601 18601 (java) 2495 609 3894493184 269990 /usr/lib/jvm/java/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx1810m -Djava.io.tmpdir=/mnt/disk1/yarn/user
cache/root/appcache/application_1487645941615_0010/container_1487645941615_0010_01_000018/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/mnt/disk1/log/hadoop-yarn/containers/application_1487645941615_0010/container_1487645941615_0010_01_000018 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA -Dhadoop.root.logfile=syslog org.apache.hadoop.mapred.YarnChild 192.168.1.205 37321 attempt_1487645941615_0010_m_000016_0 18 	|- 18601 18598 18601 18601 (bash) 0 0 108650496 301 /bin/bash -c /usr/lib/jvm/java/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN  -Xmx1810m -Djava.io.tmpdir=/mnt/disk1/yarn
/usercache/root/appcache/application_1487645941615_0010/container_1487645941615_0010_01_000018/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/mnt/disk1/log/hadoop-yarn/containers/application_1487645941615_0010/container_1487645941615_0010_01_000018 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA -Dhadoop.root.logfile=syslog org.apache.hadoop.mapred.YarnChild 192.168.1.205 37321 attempt_1487645941615_0010_m_000016_0 18 1>/mnt/disk1/log/hadoop-yarn/containers/application_1487645941615_0010/container_1487645941615_0010_01_000018/stdout 2>/mnt/disk1/log/hadoop-yarn/containers/application_1487645941615_0010/container_1487645941615_0010_01_000018/stderr 

问题原因:Hadoop参数配置需更改

解决过程:提供阿里工作人员 集群Master节点的IP,SSH密码,其登陆后台进行解决。

5、ECS修改主机名后,重启实例后,还原成了初始化的主机名

问题原因:centos7镜像中内置了 cloud-init,当前vpc 环境下创建实例时,会走 cloud-init 来配置 hostname;每次重启后 cloud-init 会自动运行,导致 hostname 被重复修改为默认的主机名。

解决过程:提交工单给客服,客服提供解决办法:修改/etc/cloud/cloud.cfg 中的参数preserve_hostname 使其值为True,再修改hostname 重启即可。