
大数据
文章平均质量分 79
Moon_魔宽
这个作者很懒,什么都没留下…
展开
-
hive之执行计划explain详细解读
问:hive explain在生产实践中能帮助我们做什么?1、join语句会过滤null值吗?——可以!执行如下语句:explain select a.loan_typ from ods.ods_s01_orc_lc_appl_i a join ods.ods_s01_orc_p_loan_typ_s b on a.loan_typ =b.typ_cde;查看运行结果(只截取相关部分):STAGE PLANS: Stage: Stage-4 Map Reduce Local W.原创 2021-05-27 17:59:23 · 1455 阅读 · 1 评论 -
HIVE SQL运行内存溢出OOM(MR/TEZ):java.lang.OutOfMemoryError: GC overhead limit exceeded
【现象】今天用户反馈运行HQL作业失败,报OOM,于是来排查该问题查看tez,intialmap大量失败,重试失败。进入具体一个task,报错指向OOM,溢出原因是在单个map中产生大量对象导致。HQL语句查询借据号——逾期金额信息,借据号重复率低,导致map维护key(借据号)-value(逾期金额信息)的内存超过了JVM配置的map进程内存大小限制,从而内存溢出。【原因】对于group by语句,在MR中,当数据量很大,且没有map聚合时,所有的记录将会被..原创 2021-02-03 17:01:12 · 4314 阅读 · 3 评论 -
Hive SQL查询参数优化
【参数一】 hive.fetch.task.conversion决定sql查询是否以集群模式运行查询sql :select trans_params,trans_result from ods.tablename where trans_code=‘CF000078’ limit 10耗时很长,期间没有走集群,查看日志查询会fetch HDFS每日数据分区查看执行计划:explain select trans_params,trans_result from ods.tablename w.原创 2020-12-07 17:43:35 · 1966 阅读 · 0 评论 -
Hadoop报错Caused by: java.io.IOException: Stream closed问题
【问题现象】这几天离线计算平台有个别计算作业运行失败,排查原因,查看平台日志,报错关键信息如下:WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.Error: org.apache.hive.s原创 2020-11-10 18:12:15 · 4002 阅读 · 2 评论 -
HDFS纠删码
纠删码是CDH6/Hadop3引入的新功能,之前的HDFS都是副本方式容错,默认情况下,一个文件有三个副本,可以容忍任意2个副本(Datanode)不可用,是以牺牲空间的代价提供了数据的可用性,带来了2倍的冗余开销。例如1TB的数据,需要3TB的空间来进行存储。而纠删码可以在同等可用性的情况下,节省更多的空间。以RS-6-3-1024k为例,6份原始数据,编码后生成3份校验数据,一共9份数据,...原创 2019-10-12 12:42:42 · 1179 阅读 · 0 评论 -
大数据集群扩容机架分配
由于生产上大数据集群时常会扩容,而每次扩容完成后需要对新扩容的主机进行机架分配,涉及主机数量比较多时,通过手工分配耗时较长,因此编写如下脚本进行机架分配。第一部分:获取集群主机ID/IP地址/机架号#其中的v18根据http://IP:7180/api/version来查看curl -u '用户名:密码' 'http://IP:7180/api/v18/hosts'|python -c...原创 2019-09-16 23:39:57 · 488 阅读 · 0 评论 -
Linux下大量TIME_WAIT分析
问题现象:应用反馈在通过beeline方式连接hiveserver2时程序报错:'Error:java.io.IOException(java.net.UnkownHostException:hostname)'在HiveServer2节点上ping部分计算节点[root@host HIST]# ping APING A.up (IP) 56(84) bytes of data....原创 2019-09-16 23:39:25 · 424 阅读 · 0 评论 -
大数据-硬盘篇
对于大数据集群来说,master和slave一定要使用带RAID固件的磁盘。这类磁盘与消费级磁盘的主要区别是,一旦硬件出错,RAID固件马上失效,因此DataNode进程可以快速知道发生了故障。 对master节点来说,使用RAID主要是为了保护关键性的文件系统数据,通常配置是RAID1+0或RAID0+1;而对于slave来说,从Hortworks的文章来看并不建议使用RAID模式...原创 2019-09-16 23:38:53 · 686 阅读 · 0 评论 -
一窥Java垃圾回收(GC)机制
想要理解java垃圾回收机制,首先要了解什么是垃圾回收,顾名思义,垃圾回收就是回收内存中不再使用的对象。主要分为两个阶段:1、查找内存中不再使用的对象2、将这些对象占用的内存释放首先来看第一个阶段【查找内存中不再使用的对象】判断方法有两种:引用计数法和根搜索算法引用计数法,当一个对象没有被任何引用指向,则视之为可回收的垃圾。根搜索算法,是通过一系列名为“GC Roo...原创 2019-09-16 23:34:21 · 258 阅读 · 0 评论 -
HBase region拆分
【基本概念】HBase是以表的形式存储数据的。一张表被划分为多个regions,regions分布在多个Region Server上,单个region只能分布在一个Region Server节点上,不能跨Region Server存放。Region的两个重要属性:StartKey和EndKey,分别表示这个region所维护的rowkey范围。当做读/写请求时,寻址到该数据的rowkey落...原创 2019-09-16 23:33:47 · 618 阅读 · 0 评论 -
MapReduce简明工作原理
MapReduce被称为开启大数据算法之门的钥匙,本文对MapRduce的工作原理作一个简明的介绍。MapReduce核心思想及框架在古代,人们采伐下来很多木头,需要用马来拉,但如果木头很多的话,用一匹马拉则不现实,这时,找一匹更强壮的马来拉显然不是一个好的办法,而会选择让多匹马来拉;对于大数据来说,也是一样的原理,超级计算机并不是最可行的解决方案,分而治之才是最佳选择,这就是MapRed...原创 2019-09-16 23:33:16 · 840 阅读 · 0 评论 -
ImpalaD节点服务启动失败分析
现象描述:生产环境老离线集群(CDH5.2)的一台impalaD节点服务异常,CM页面显示该节点的服务并无异常。然而无论是客户端通过jdbc/odbc方式还是直接在该impala节点通过impala-shell来连接该节点都会报错(该集群impala未使用hiveserver2+haproxy+keepalive方案,客户端直连impalad节点):hostname:/tmp# imp...原创 2019-09-16 23:32:31 · 2320 阅读 · 0 评论 -
HDFS ACL权限控制
What is ACLACL(Access Control Lists,访问控制列表),Hadoop中的acl与unix中的acl机制(posix模型)基本相同,可以为文件或目录提供更精细化的权限访问控制。对于每个文件或目录而言,权限管理分为3个不同的用户类:owner,group和others。每个用户类有3种不同的访问权限:read,write,execute。当一个用户试图访问...原创 2019-09-16 23:31:50 · 356 阅读 · 0 评论 -
大数据集群机房搬迁数据迁移
【一、背景】按照中心总体计划,目前部署在生产区的运营大数据集群需要搬迁至万国机房。本次采用的搬迁的方案是通过万国机房的72台物理主机上新建运营大数据集群,老集群应用数据同步至新集群的方式,之后应用进行迁移。确保数据不丢失,应用无感知。本次变更完成新集群的搭建以及存量数据的同步。本文只对数据同步方案进行展开。【二、迁移思路】1.搭建新集群2.将老集群中的数据全量拷贝到新集...原创 2019-09-16 23:31:01 · 1371 阅读 · 0 评论 -
HBase Region数据不一致
【背景】应用在进行bulkload将hfile导入hbase中报错:2019-04-03 11:27:18,509 [LoadIncrementalHFiles-2][org.apache.hadoop.hbase.client.RpcRetryingCaller:132] [INFO ] - Callexception, tries=20, retries=35, started=269...原创 2019-09-16 23:30:36 · 2637 阅读 · 0 评论 -
Hive数据迁移
【迁移背景】本次需要将老集群的hive数据(共30多张表)迁移至新集群中。老集群版本为CDH5.13,未启用kerberos;新集群版本为CDH5.14,启用了kerberos。由于cloudera官方文档说明,在5.x的版本不支持从未启用kerberos的集群与启用了kerberos的集群之间的数据复制。因此无法通过bdr方式进行数据同步。于是采用手工方式进行测试验证。第一步...原创 2019-09-15 23:01:51 · 353 阅读 · 0 评论 -
HIVE数据迁移2
第一步:老集群节点上查看建表语句第二步:在新集群hive上建库建表注意location位置的命名空间要与新集群namenode的"Quorum Journal名称"参数保持一致此时在新集群通过hive查询,数据为空第三步,拷贝数据hadoop distcp -Ddfs.checksum.type=CR32C-log /tmp/discp2.txt -bandwid...原创 2019-09-15 23:01:07 · 230 阅读 · 0 评论 -
sas访问nas存储性能变慢问题分析
背景2019年9月11日凌晨开始,sas应用访问nas(网络存储设备)性能变慢,多个部门反馈读取SAS共享存储的SAS数据集的时间是平时好几倍,原先每日不到一小时的日跑批报表今天跑了3个多小时,即访问nas性能变慢。问题分析sas应用ip分为两个网段,IP1.*和IP2.*。架构如下图所示:根据初步分析,我们观察到了如下几个现象:通过ll、df -h读取nas数据,184*...原创 2019-09-15 21:47:53 · 2727 阅读 · 0 评论 -
ESB调数据湖元数据库接口失败问题分析报告
背景2019年8月12日~8月13日,ESB调数据湖接口接连失败两次,ESB端报SocketTimeout异常,每次持续时间大约30分钟~1小时:java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method)...原创 2019-09-15 21:31:01 · 2142 阅读 · 0 评论 -
HBaseregion RIT(Region-In-Transition)
背景:生产HBase集群有一个region长期处于RIT。解决方法:1、在一台zk节点上,登陆zkcd /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/zookeeper/bin[root@host bin]# ./zkCli.sh-server ip:21812、运行ls /hbase/region-i...原创 2019-09-15 21:12:54 · 764 阅读 · 0 评论 -
hadoop-env.sh文件研究
该文件的主要是配置hadoop的环境变量。例如守护进程的JVM启动参数:java堆大小和垃圾回收策略等。在这个文件中还可以设置HBase配置文件的目录、日志目录、SSH选项、进程pid文件的目录等。# Set Hadoop-specific environment variableshere.# The only required environment variable isJAVA_H...原创 2019-09-15 21:11:23 · 2022 阅读 · 0 评论 -
HIVE数据迁移3
集群A上HIVE表数据需同步到集群B上,由于每张表做了日分区,传输部分日期数据,通过手工方式一一筛选比较复杂,编写脚本实现。#!/bin/shhdfs_src="hdfs://源集群NN地址:8020"hdfs_dst="hdfs://目标集群NN地址:8020"hadoop_cmd="hadoop distcp -update -bandwidth 50"declare -...原创 2019-09-15 21:10:32 · 261 阅读 · 0 评论 -
HBase Major Compaction大合并
前言:大合并,就是将一个Region下的所有StoreFile合并成一个StoreFile文件,在大合并的过程中,之前删除的行和过期的版本都会被删除。大合并一般一周做一次,由于执行期间会对整个集群的磁盘和带宽带来较大影响,一般建议设置hbase.hregion.majorcompaction设为0来禁用该功能,并在夜间集群负载较低时通过定时任务脚本来执行。#!/bin/bash#auth...原创 2019-09-15 21:09:45 · 1117 阅读 · 0 评论 -
HBase使用的13条建议
一、通过预分区的方式建表在建表时对HBase进行region的预分区,这样就能避免热点,提高数据写入效率。比如,rowkey的前几位字符串都是从0001~0010的数字,这样就可以分成10个region,使用SPLISTS,如下:create't1','f1',{SPLITS=>['0001','0002','0003','0004','0005','0006','0007','00...原创 2019-09-15 21:08:44 · 241 阅读 · 0 评论 -
storm worker异常重启
storm supervisor.out日志中有报错:supervisor [INFO] Shutting down and clearing state for id ae1ad586-ce5c-459a-8f32-30410683b4d6. Current supervisor time: 1408166828. State: :timed-out, Heartbeat:对于一个wor...原创 2019-09-15 21:07:59 · 562 阅读 · 0 评论 -
CDH集群禁用kerberos
大数据集群启用了kerberos,但有时因为种种原因需要暂时禁用,因此可以通过如下方法来进行操作:一、停止集群所有服务二、修改ZOOKEEPER配置1、Zookeeper的enableSecurity为false(取消勾选)2、查看Zookeeper服务的数据目录,如/var/lib/zookeeper,登陆zk服务器节点,cd /var/lib/zookeeper,rm -rf ...原创 2019-09-12 13:34:16 · 534 阅读 · 0 评论 -
Hive数据迁移4(内外部表)
#date:2019-05-13#author:Wang Kuandbname=$1#categorize the table typecat /home/tablename | while read table;do hive -e "use ${dbname};desc $table;" 2>&1 |grep 'Table not found' i...原创 2019-09-12 13:33:47 · 267 阅读 · 0 评论 -
spark作业提交失败分析
提交一个spark作业,报错:error cluster.yarnclientschedulerbackend:the yarn application has already ended!It might have been killed or the Application Master may have failed to start.error spark.sparkcontext...原创 2019-09-12 13:32:47 · 993 阅读 · 1 评论 -
CDH6 HDFS Failover Controller无法启动
CDH6 HDFS Failover Controller无法启动,报错:error zkfailoverControllerUnable to start failover controller. Parent zoned does not exist.Run with -formatZK flag to initialize ZooKeeper.解决方案:1、cd /...原创 2019-09-12 13:32:02 · 1647 阅读 · 0 评论 -
Cloudera Manager数据库密码加密方案
背景:由于Cloudera Manager使用的数据库账号密码信息保存在/etc/cloudera-scm-server/db.properties文件中,该文件中的com.cloudera.cmf.db.password为明文,因此考虑对其进行加密处理。1、利用openssl进行AES/DES3加密解密对字符串12345进行aes加密,使用密钥123(任意),输出结果以base64编...原创 2019-09-12 13:29:49 · 1042 阅读 · 1 评论 -
CDH6集成Kerberos
一、概述本文是针对cloudera大数据集群安全部署整理的文档,主要介绍了大数据集群Kerberos服务器部署和集成的过程。这篇文章介绍了kerberos配置高可用HA的过程:Kerberos高可用HA配置二、环境说明1、主机名主机名首字母必须为小写,否则在集成kerberos时会出现很多异常问题。2、hosts文件/etc/hosts文件中不要包含127.0.0.1的...原创 2019-09-12 13:27:53 · 2186 阅读 · 0 评论 -
Kerberos高可用HA配置
关于CDH6集成kerberos的配置参见我的另一篇文章:CDH6集成kerberos,感兴趣的朋友可以查阅。目前Kerberos服务器的高可用是通过主备模式实现,数据同步是通过kprop服务,定时将主节点上的数据同步到从节点上。本文以host1/host2为例进行说明。1、在主节点上,修改/etc/krb5.conf,在realms配置下增加备kerberos的配置。注意:括号位置不...原创 2019-09-12 13:27:09 · 1672 阅读 · 0 评论 -
Linux LDAP安装部署集成kerberos
一、概述由于Hadoop安全模块不存储用户和用户组信息,同时在集群开启kerberos认证后,需要映射Kerberos Principle到linux的用户及用户组,统一管理用户信息的方式有OpenLDAP和AD,而AD是部署在Windows上的,本文主要介绍在linux环境下OpenLDAP的安装及部署。二、Server端安装与配置2.1 安装介质$ yum install ...原创 2019-09-12 13:25:22 · 949 阅读 · 0 评论 -
OpenLdap HA高可用Mirror Mode模式配置
版权声明:本文为博主原创文章,未经博主允许不得转载。一、前言网上关于opeldap ha的配置文章不少,但基本上都是基于2.4.4之前的版本的,一些配置目录和文件都已发生变化,并不适用我们的实际环境,因此特将HA配置步骤进行记录,已供后人少走弯路。LDAP主从同步从2.4之后较之前版本发生了较大改动,新版本的主从同步模式有5种:模式 特点 Syncrepl Sl...原创 2019-09-12 13:24:12 · 1474 阅读 · 0 评论 -
大数据CDH集群开启kerberos后主机名是否必须小写?
版权声明:本文为博主原创文章,未经博主允许不得转载。一、传闻规则大数据CDH集群如果要开启Kerberos,主机名必须要求小写,否则CDH集成Kerberos会失败。二、背景生产环境由于经常扩容,且集群有很多应用节点,如果采用/etc/hosts方式做主机之间的解析,那么人力成本会比较高,因此采用DNS。于是引入了一个问题,公司生产环境DNS对主机名解析,会将原先的主机名解析...原创 2019-09-12 13:22:53 · 1085 阅读 · 0 评论