emr 常见问题100问
写在前面1:
腾讯云EMR 组件简介
1.1 Hadoop
Hadoop 目前是数据处理的标准工具,其核心组件包含了HDFS(分布式文件系统)、YARN(资源调度平台)、
MapReduce(分布式迭代计算框架),腾讯云EMR 提供的存储除了支持HDFS 外还支持腾讯云对象存储COS。
1.2 Hive
Hive 是一个基于hadoop 的开源数据仓库工具,用于存储和处理海量结构化数据。它把海量数据存储于hadoop文件系统,而不是数据库,但提供了一套类数据库的数据存储和处理机制,并采用HQL (类SQL )语言对这些数据 进行自动化管理和处理,腾讯云EMR 提供的Hive 除了支持HDFS 作为存储外,还支持腾讯云对象存储, 同时腾讯 云EMR 提供的Hive 其计算引擎支持MR、SparkV2、Tez。
1.3 Hbase
是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库
1.4 Oozie
Oozie 是运行在hadoop 平台上的一种工作流调度引擎,它可以用来调度与管理hadoop 任务,如,MapReduce、Pig等
1.5 Zookeeper
Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于 文件系统的目录节点树方式的数据存储,Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过监控 这些数据状态的变化,从而达到基于数据的集群管理。
1.6 Hue
Hadoop 开发集成环境工具,您可以在hue 上执行hive 查询、创建oozie 调度任务、管理yarn 任务、hbase 数据表管理以及hive 元数据管理等。
1.7 Spark
Spark 是基于内存计算的大数据分布式计算框架。Spark 基于内存计算,提高了在大数据环境下数据处理的实时性, 同时保证了高容错性和高可伸缩性,允许用户将Spark 部署在大量廉价硬件之上,形成集群。
1.8 Storm
是一个分布式的,可靠的,容错的数据流处理系统
1.9 Flink
是一个可伸缩的开源批处理和流处理平台。其核心模块是一个数据流引擎,该引擎在分布式的流数据处理的基础上
提供数据分发、交流、以及容错的功能。
1.10 Sqoop
是一款用于hadoop 和关系型数据库之间数据导入导出的工具。你可以通过sqoop 把数据从数据库(比如
mysql,oracle)导入到hdfs 中;也可以把数据从hdfs 中导出到关系型数据库中。sqoop 通过Hadoop 的MapReduce 导入导出,因此提供了很高的并行性能以及良好的容错性。
写在前面2:目前腾讯云对外售卖版本为201版本,131版本不再售卖,存量维护
EMR2.0.1各售卖组件版本
flink 1.2.0
ganglia 3.7.2
hadoop 2.7.3
hbase 1.3.1
hive 2.3.2
hue 3.12.0
knox 1.2.0
oozie 4.3.1
presto 0.188
ranger 0.7.1
spark_hadoop2.7 2.2.1
sqoop 1.4.6
storm 1.1.0
tez 0.8.5
zookeeper 3.4.9
EMR1.3.1各组件版本
flink 1.2.0
ganglia 3.7.2
hadoop 2.7.3
hbase 1.2.4
hive 2.1.1
hue 3.12.0
oozie 4.3.1
presto 0.161
spark_hadoop2.7 2.0.2
sqoop 1.4.6
storm 1.1.0
tez 0.8.5
zookeeper 3.4.9
写在前面3:
挖坑暂留
正题:常见问题100问:
1、spark 是否同时支持python2和python3,如果不是怎么修改为python3,
另外在控制台创建完EMR集群是否可以直接使用,需要做其他操作么?在Hadoop.env.sh配置页面看到java环境变量是这样的,没有export吗?
答:是同时支持python2.6 python2.7和python3
默认是2.6
2.7和3的版本在/usr/local/anacoda2 和anacoda3中有相应版本2.提交任务时候可以这样切换
--conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=/usr/local/python27/bin/python
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=/usr/local/python27/bin/python
3.创建可以直接使用
4.java_home有直接配置在/etc/profile中
问题2:关系型数据库中 密码被改掉那么ooize与 hue 也无法使用需要改动哪里呢?密码默认路径又是在哪里呢?
答:hue的密码在/usr/local/service/hue/desktop/conf/ pseudo-distributed.ini 第529 行
oozie的在/usr/local/service/oozie/conf/oozie-site.xml
修改完重启下进程会生效,可以直接kill,监控会自动拉起
问题3:请问客户购买EMR的时候没有选择HBASE,现在想用是要重新购买吗?
答:可以后台用流程后安装,需要用户提供集群号来增补,增补的hbase为默认参数库,如果生产使用需要使用SSD盘以及调整下参数
问题4:emr的hbase组件可以开通公网吗?
答:如果想通过公网连接hbase,可以让用户通过连接thriftServer,来公网访问
问题5:emr支持动态的扩容缩容吗?
答:支持的 core和task可以扩容,task节点可以支持缩容。都可以在控制台和api中支持
问题6:客户有1T的数据要同步到hbase,那就是购买的时候core节点选择1T就可以了么?还有其他指标需要注意的吗?
答:1T数据购买是不够, hdfs存储3副本的, 而且还需要预留部分剩余空间, 另外还需要考虑数据增长量
hbase推荐配置 ssd本地>ssd云>本地盘>云盘 高io机型>标准型
问题7:后续上线hbase后从emr的hbase迁移到独立的hbase有什么需要注意的吗?或者有什么工具可以直接迁过去?
答:可以备份后迁移
问题8:请问如何将 第三方的jar 自动化的包分发到 每个node的hive的lib 下面, 下面是在hive客户端
导入bson 之后出现的问题:我现在需要用到superset这样的bi平台工具, 所以不能输入 add jar *.jar,这样的命令,所以会出现下图所示的问题
答:https://my.oschina.net/cjun/blog/494692 让用户参考这个设置下额外的jar
hive需要引入jar包--HIVE.AUX.JARS.PATH和hive.aux.jars.path(HIVE以及OOZIE添加第三方JAR包的方法)
问题9:请问如何在 非集群的机器上把 spark-submit 任务给集群?
答:把 /usr/local/service/spark和/usr/local/service/hadoop 拷贝到机器上试试
2018.11.25增补
问题10:请问客户要扩容master节点配置(内存)的话直接在CVM升级就可以了吧?备份节点和master节点的配置是否要保持一致?
答;控制台升级最好,备份节点和master节点最好保持一致,其他节点不需要保持一致
问题11:请问一下咱们可以直接使用节点提交任务到集群吧?不需要额外的client机器
答:是的,master可以提交,其他节点也可以。
问题12:master云机配置做了升级(8C32G),但是emr的前端显示为什么还是旧的(4C16G)?
答:emr不是实时拉取CVM的配置,前台展示的是当时购买的规格,需要人工调整
问题13:原生的webhdfs方式无法保证namenode 飘移的情况下,访问处于actiavte的namenode;需要通过httpfs方式访问访问hdfs,
但是配套的组件默认只有webhdfs,不能满足客户的使用场景,怎么办?
答:可以使用,用rpc方式的形式访问;客户端是java的,可以使用native的方式访问
问题14:EMR core配置的普通云盘客户要调整到16T,但是我们控制台界面无法拉到这么大,这是什么原因?
答:这个是cbs那边的限制,使用包年包月可以到16T,CBS的按量计费只能4T
问题15:用hive读取COS的文件,是否有HDFS对文件分block和replica等这些提高计算并行度和吞吐量的特性呢?目前hdfs是默认的3个replica。
目前客户用的是hive分析cos上的日志。但是发现速度计算速度非常慢,所以想确认一下,用hive分析cos上的文件是否享有hdfs的优势。
答:block & replica 对用户都是不可见的。 数据放COS上,能节约些CPU时间,对计算密集型任务是有好处的。
问题16:请问EMR中有169.254.0.53这个IP的具体功能是什么呢?
答:这个ip不是emr的特有ip,2022和2055是这个ip和我们后台通信的固定端口
问题17:EMR HBASE啥时能支持客户从公网访问?
答:直接搭建个thriftserver就可以实现
问题18:客户新建了一个EMR集群 查询出来有9台机器,最后这两台是这个集群中的吗?
答:ha集群2个master 3个common ,3个core,1个tasknode,一共9个点
common 一定是本地盘,起zk和journalnode的
问题19:emr的hbase能在本地自建从库么,类似mysql在云服务器自建从库那种?
答:hbase有自带的通用export和import工具
问题20:spark-submit emr的组件的安装目录在哪里?
答:spark-submit emr的组件是安装装/usr/local/service/spark下
问题21:想修改dfs.data.dir的路径可以么
答:dfs.data.dir属于敏感字段,不提供用户自定义修改,如果确实需要,请联系后台特殊支持
问题22:为什么点击查看yarn的日志会这样?难道跟这个问题一样?
https://blog.csdn.net/stark_summer/article/details/47616773
答:任务结束后,container已经不存在了,需要看过去的日志,需要上机器执行命令:
yarn logs --applicationId your_app_id 来查看具体任务日志
问题23:emr-yarn监控界面无法查看spark任务的history,点击history,无跳转,这是怎么回事?
答:任务已经结束了,history信息用历史日志通过yarn logs看