
大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、数据库、数据仓库、机器学习、并行计算、可视化等。
1、数据采集与预处理:FlumeNG实时日志收集系统,支持在日志系统中定制各类数据发送方,用于收集数据;Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供数据同步服务。
2、数据存储:Hadoop作为一个开源的框架,专为离线和大规模数据分析而设计,HDFS作为其核心的存储引擎,已被广泛用于数据存储。HBase,是一个分布式的、面向列的开源数据库,可以认为是hdfs的封装,本质是数据存储、NoSQL数据库。
3、数据清洗:MapReduce作为Hadoop的查询引擎,用于大规模数据集的并行计算。
4、数据查询分析:Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供HQL(HiveSQL)查询功能。Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
5、数据可视化:对接一些BI平台,将分析得到的数据进行可视化,用于指导决策服务。
我们知道Spark application的运行单元是task,资源分配单元是executor。task数的多少是和RDD的分区数相关的,整个application的并行度是 Executor数 Task。这里整理一下executor的个数是如何设置的。
我们通常都使用spark-submit 来提交任务,对于不同的部署模式,需要使用不同的参数来指定executor数,实际生产环境中最常使用的部署模式就是 ON YARN 和 Standalone两种模式。
ON YARN模式下可以使用选项 –num-executors 来直接设置application的executor数,该选项默认值是2。 该选项对应的配置参数是 sparkexecutorinstances
如下,我们可以在启动spark-shell时指定executor数
通过web监控页面可以看到有5个executor
在standalone模式下,并没有参数直接指定使用多少个executor数。而是按照如下方式计算而来
sparkcoresmax 默认没有设置,这时它使用的是 sparkdeploydefaultCores,而这个的默认值是Intmax,也就是不限制,这样应用就会获取所有可用的CPU资源,所以为了限制应用程序使用CPU资源,用户需要设置sparkcoremax配置项,约束每个应用程序所能申请的最大CPU核数。
sparkexecutorcores 该参数用以设置每个executor使用的CPU资源,在 ON YARN模式下,默认是1,而standalone模式下是worker节点上所有可用的CPU的资源,显然在实际生产环境中,这样做也不合理,因此需要设置sparkexecutorcores配置项,用于设置在standalone模式下每个Executor使用的CPU核数。
最后补充说明一下单个executor的资源配置,也就是一个executor使用的CPU和内存资源
选项 –executor-memory 可以指定每个executor的内存,默认是 1G,对应的配置项是 sparkexecutormemory,该配置项默认单位是MB,也可以显示指定单位 (如2g,8g)
选项 –executor-cores (适用于ON YARN和standalone模式) 可以指定每个executor的内存,对应的配置项是 sparkexecutorcores
使用MySQL数据库,有一个容易出现的问题——Too many connections。连接数超过。
我们知道,由于SUPER权限有很多特权,因此不会把这个权限给予应用的账号。但是,当应用异常或者数据库异常,达到最大连接数的时候,用管理账号登录,有时候仍然会报Too many connections。此时,如果应用不能及时处理,数据库这边就很难办了。
所以,当应用异常并且频繁尝试建立连接的时候,常能占据那第max_connections+1个连接。super账号由于拿不到线程,因此也是Too many connections了。
以上就是关于大数据方面核心技术有哪些全部的内容,包括:大数据方面核心技术有哪些、Spark Executor数量设置、spark连接数据库连接数过高等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)