
大数据
文章平均质量分 93
数据源的港湾
这个作者很懒,什么都没留下…
展开
-
HBase之异步Replication机制
HBase 提供了一种群集复制机制,允许使用源群集的预写日志(WAL)来传播更改,从而使一个群集的状态与另一个群集的状态保持同步。集群复制的一些用例包括:HBase中的Replication是基于WAL的,其在主集群的每一个RegionServer进程内部起了一个叫作ReplicationSource的线程来负责Replication,同时在备集群的每一个RegionServer内部起了一个ReplicationSink的线程来负责接收Replication数据。ReplicationSource记录须要同原创 2022-06-27 14:16:41 · 2266 阅读 · 0 评论 -
YugabyteDB对比CockroachDB-第一部分
注:本文翻译自YugabyteDB官网文章 https://blog.yugabyte.com/yugabytedb-vs-cockroachdb-bringing-truth-to-performance-benchmark-claims-part-1/介绍在Yugabyte,我们欢迎竞争和批评。我们相信这些方面对于广泛采用像YugabyteDB这样的业务关键、完全开源的项目是至关重要的。具体来说,建设性的批评有助于我们改进项目,使我们的大型用户社区受益。蟑螂实验室的工程师几个月前发布了他们对蟑螂数据原创 2022-05-24 11:55:42 · 1005 阅读 · 0 评论 -
YugabyteDB对比CockroachDB-第二部分
注:本文翻译自YugabyteDB官网文章 yugabytedb-vs-cockroachdb-bringing-truth-to-performance-benchmark-claims-part-2概要Yugabyte SQL是基于对PostgreSQL原生查询层的重用。这种重用保留了PostgreSQL中许多最先进的RDBMS特性,因此应用程序的开发速度不会受到影响。另一方面,CockroachDB还远没有成为今天PostgreSQL那样完整的RDBMS。尝试与PostgreSQL v9.6兼容是原创 2022-05-23 17:52:31 · 1149 阅读 · 0 评论 -
主流数据库对比分析
1 数据库发展概述芯片、操作系统、数据库是现代信息技术领域的三大核心基础。其中,数据库作为数据存取、管理和应用的核心工具,决定了IT运行处理数据的高效性。自20世纪60年代至今,数据库的发展已相继经历了如下几个阶段: 层次数据库和网状数据库世界上第一个网状数据库系统是1964年诞生于通用电气公司的IDS(Integrated Data Storage,集成数据存储)。世界上第一个层次数据库系统是1968年诞生于IBM公司的IMS(Information Management System,信息管理原创 2022-04-24 13:43:51 · 16779 阅读 · 0 评论 -
CM起不来报错ScmActive at bootup: Failed to validate the identity of Cloudera Manager
现象某集群环境Cloudera Manager使用service cloudera-scm-server start无法启动CM server服务,[root@cdcpri01 ~]# service cloudera-scm-server startStarting cloudera-scm-server (via systemctl): Job for cloudera-scm-server.service failed because the control process exited wi原创 2020-12-14 11:35:12 · 1134 阅读 · 0 评论 -
Hive metastore启动报错The specified datastore driver(“com.mysql.jdbc.Driver“) was not found in the CLASS
现象某集群有两个Hive metastore,其中一个正常运行,另一个启动报错,报错的Hive metastore日志报错信息如下,上午9点56:55.875分 WARN HiveMetaStore [main]: Retrying creating default database after error: Error creating transactional connection factoryjavax.jdo.JDOFatalInternalException: Error creati原创 2020-11-04 10:44:23 · 1347 阅读 · 0 评论 -
CDH 5.13升级到5.16
本篇章节主要介绍如何从CDH 5.13升级到5.16版本,此步骤也可以借鉴用来作其他CDH版本升级的指导。首先,准备CDH 5.16的安装包,包括CM 5.16的rpm包,及CDH 5.16的parcel包。//parcel包-rw-r--r-- 1 root root 2132782197 Oct 14 16:01 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel -rw-r--r-- 1 root root 41 Oct 14 16:01 CDH-原创 2020-10-26 19:39:03 · 526 阅读 · 0 评论 -
管理节点更换磁盘导致JournalNode同步问题
现象集群配置了NameNode HA,突然发生一台NameNode节点所在的数据盘如/data1磁盘故障需要更换磁盘,原来的磁盘下面的目录将都不可用。/data1目录下面的主要目录为dfs目录,更换磁盘并启动hadoop相关服务后,我们发现dfs目录自动创建dfs/dn、dfs/jn及dfs/nn都已经创建,但HDFS仍然不正常,具体为更换磁盘节点的NameNode服务及JournalNode服务异常,如下图所示解决方案出现此问题,是因为更换了磁盘后dfs/jn目录下没有VERSION文件用来原创 2020-10-07 11:49:26 · 1026 阅读 · 0 评论 -
从已有CDH集群中配置CM HA
Hadoop的很多组件都是具有高可用性的,NameNode有HA,Zookeeper一般也是配置多个奇数个节点保证高可用,HBase Master可以配置多个做HA,DataNode、RegionServer等一般情况下都是配置成多个,保证数据的三副本。大多数据情况下,我们在安装Cloudera集群的时候对于Cloudere Manager这块可能只会默认装在一个节点,且一般情况下会安装在根目录。由于根目录磁盘一般会配置成RAID1,所以即使根目录磁盘坏了一块,也不影响CM服务。不过在某些特殊的情况下,原创 2020-07-27 23:21:19 · 1258 阅读 · 0 评论 -
Hive 快速查询DB下的表及行数
Hive的元数据信息存储在元数据库里面,因此可以通过元数据库来快速统计表及数据量的情况,这里以元数据库为MySQL为例,可以通过以下SQL命令快速获取,select c.NAME, a.TBL_NAME, b.PARAM_KEY, b.PARAM_VALUE from hive.TBLS as a join hive.TABLE_PARAMS as b join hive.DBS c where a.TBL_ID = b.TBL_ID and a.DB_ID = c.DB_ID and c.NAME I原创 2020-07-14 14:29:54 · 4881 阅读 · 0 评论 -
HBase Balancer失败日志报错 ERROR org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler
现象HBase shell下面打开Balance并手动执行Balancer很快结束,显示为false(此时balance_switch为true)hbase(main):007:0* balancerfalse 查看RegionServer日志有如下报错信息,2020-07-08 16:49:01,821 INFO org.apache.hadoop.hbase.coordination.ZkOpenRegionCoordination: Opening of region {ENCODED原创 2020-07-09 09:19:59 · 1148 阅读 · 1 评论 -
CDH 磁盘逻辑卷扩容后Zookeeper无法删除的大坑
近日在一套客户的测试环境遇到一个棘手的问题。问题现象是这样的,客户CDH测试环境由于之前磁盘容量较小导致磁盘占用满的问题,在做了磁盘逻辑卷扩容后发现CDH无法正常恢复的问题,重启测试环境虚拟机也不起作用。1、一开始,发现CDH Manager Service服务中的EventServer启动异常,报错如以下截图解决方案:删除/var/lib/cloudera-scm-eventserver/*并重启,解决!2、问题1解决后我们发现Zookeeper服务一直显示无法停止的状态,如以下截图解决步原创 2020-07-02 12:08:28 · 452 阅读 · 0 评论 -
CDH5删除数据节点
本文介绍如何在CDH Hadoop集群中动态删除数据节点。在做动态删除数据节点之前我们已经有一套CDH集群环境。下面步骤为删除一个数据节点的步骤,选择要删除的节点选择菜单栏"主机",勾选要删除的节点停止主机上的所有角色勾选节点后,从"已选定的操作"下拉框中,选择"停止主机上的角色"完成之后可以看到节点上的所有角色处于停止状态解除授权勾选节点后,从"已选定的操作"下拉框中,选择"Begin Maintenance(Suppress Alerts/Decommission)"完成原创 2020-06-10 14:27:29 · 2072 阅读 · 0 评论 -
EsgynDB 清理不一致对象
EsgynDB中每个对象主要由于底层的HBase对象和上层的元数据组合,把一个Key-Value格式的HBase对象可以映射成为二维的关系型的表。目前EsgynDB是可能会有某些异常场景下会导致底层的HBase对象和上层的元数据之间匹配异常,这可能主要有以下几种情况,1、HBase对象存在,元数据坏了。2、元数据正常,HBase对象坏了。3、元数据和HBase对象都坏了。我们可以分别从EsgynDB层面和HBase层面来验证检查是元数据出现问题还是底层HBase对象出现问题。如果在EsgynDB原创 2020-06-06 15:50:07 · 358 阅读 · 0 评论 -
HDFS启动报错Expected to be able to read up until at least txid but unable to find any edit logs
现象Hadoop集群出现了异常断电后,HDFS启动报错,报错信息截图如下,解决Hadoop NN中的元数据包括:fsimage:包含某个时间点的文件系统的完整状态edit logs:包含在最近的fsimage之后进行的每个文件系统更改(文件创建/删除/修改)。当NN启动时,Hadoop将加载fsimage并应用所有编辑日志,同时进行大量的一致性检查,如果检查失败,它将中止。当我们将NN工作区中的edits_0000000000000000001-0000000000000000002 删掉时,原创 2020-06-02 18:19:40 · 1284 阅读 · 0 评论 -
EsgynDB SQL统计模式下各对象个数
EsgynDB数据库把对象的元数据信息保存在"_MD_"这个模式下,所有对象信息,包括表、索引、视图、序列、存储过程、触发器、函数等均能在元数据表中找到对应信息。"_MD_"这个模式下有一张关键表OBJECTS,每个对象有一个唯一的OBJECT_ID,通过此OBJECT_ID,关联不同的元数据表可以获取表不同的信息,如列信息、主键信息、索引信息等等。OBJECTS表中有一个字段OBJECT_TYPE表示对象类型, 我们可以通过此对象类型字段查询每个对象是哪种对象。这里就分享一条SQL语句来查询某个模式原创 2020-05-14 15:37:04 · 425 阅读 · 0 评论 -
c3p0的坑导致并发性能问题
最近几天在做数据库结合应用的并发压力测试,发现并发压测性能一直上不去,透过应用日志发现主要慢在获取数据库连接上面,应用使用c3p0连接池的方式。连接池的主要配置如下, <dbConnPools> <dbConnPool id="1" name="afa" type="0"> <property name="User" value="xxx"/> <property name="Pas原创 2020-05-12 20:53:41 · 2781 阅读 · 1 评论 -
EsgynDB之TRIM函数
EsynDB支持TRIM函数,TRIM函数又细分为TRIM、LTRIM、RTRIM三个。TRIM:删除一个字符串的前导和尾随字符。包括多字节字符在内的每个字符都被视为一个字符。LTRIM:删除一个字符串的前导空格。RTRIM:删除一个字符串的尾随空格。以上三个函数的语法为,TRIM ([[trim-type] [trim-char] FROM] trim-source )trim-type is:LEADING | TRAILING | BOTHLTRIM (character-expre原创 2020-05-08 19:22:44 · 330 阅读 · 0 评论 -
易鲸捷钱库新特性之SQL级别HINT功能初见
易鲸捷数据库之金融数据库在即将到来的新版本1.6.0中将支持SQL级别的HINT功能。熟悉使用Oracle的各位看官可能都知道Oracle的HINT功能,大致语法如下,{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]… */Oracle支持多种HINT,下面列举一些常用的HINT,1、/*+ ALL_ROWS */ 表明对语...原创 2020-05-06 19:30:37 · 567 阅读 · 0 评论 -
CDH Agent起不来-Could not determine hostname or ip address; proceeding.
现象某CDH Hadoop集群环境在重启机器后Agent无法启动,报错信息如下,[17/Dec/2019 16:37:53 +0000] 6741 MainThread agent ERROR Could not determine hostname or ip address; proceeding.Traceback (most recent call last):...原创 2019-12-17 17:38:30 · 1014 阅读 · 0 评论 -
HDFS missing blocks的处理办法
Hadoop集群中遇到了HDFS missing blocks的错误,处理办法如下:切换到hdfs用户su - hdfs使用hadoop fsck命令检查坏的块hadoop fsck /输出示例如下 ,.../user/trafodion/.hiveStats/HIVE.DMA.DMA_ENTTYPE_STAT_ORC-1532663517555-NOSTRIPENUMR...原创 2019-12-11 11:46:55 · 9782 阅读 · 1 评论 -
Clouderera SCM Server启动失败之pam_unix(sshd:session) session closed for user root分析定位
昨天在某客户环境进行CDH Hadoop的安装,安装还算比较顺利,但在启动Cloudera SCM Server和Agent服务的时候均启动失败。[root@YXnode01 ~]# service cloudera-scm-server restartRestarting cloudera-scm-server (via systemctl): Job for cloudera-scm-s...原创 2019-11-05 14:43:53 · 14116 阅读 · 0 评论 -
EsgynDB 升级CDH从5.13.3到5.16.2后导致HBase启不来的问题排查
最近在项目测试中需要把CDH从5.13.3升级到5.16.2,升级过程中比较顺利,但是升级后HBase Master总是过一小会儿就出问题,HBase有两个Master,一主一备,正常情况下,查看HBase实例时应该是显示一个Master(主)和一个Master(备),但升级后看到主备状态,Region也无法OPEN,过一段时间后HBase Master出现异常,如下图所示:虽然看似状态正常,...原创 2019-11-04 17:01:42 · 702 阅读 · 0 评论 -
CDH HIVE报错引发的一系列血案
今天偶尔发现一个CDH集群中的Hive MetaStore Server发生了异常,于是检查相关日志,具体日志为Hive MetaStore Server所在节点的/var/log/hive/hadoop-cmf-hive-HIVEMETASTORE-sbh01.esgyn.cn.log.out,日志报错如下,2019-10-31 06:22:51,467 INFO org.apache.ha...原创 2019-11-02 15:06:20 · 1959 阅读 · 0 评论 -
HDFS failover启动错误Parent znode does not exist
现象HDFS配置了高可用,NameNode和DataNode状态看起来均正常,但两个failover进程异常。查看failover日志,报错信息如下,tail -100f /var/log/hadoop-hdfs/hadoop-cmf-hdfs-FAILOVERCONTROLLER-hxpernode01.esgyn.cn.log.out2019-10-24 19:51:13,396 F...原创 2019-10-24 21:18:39 · 813 阅读 · 1 评论 -
Hive 使用TEZ引擎导致连接Hive SHELL慢的问题
在使用HDP Hadoop版本时,Ambari界面允许选择Hive执行引擎是MapReduce还是TEZ,如下图所示 使用TEZ作为Hive执行引擎来替代MapReduce,可以在很多场景上实现更好的效率提高,然后使用TEZ作为默认引擎也会导致一些问题。最近就碰到这样的场景,客户使用TEZ作为执行引擎,在计算过程中确实比使用默认的MapReduce快很多,但遇到的一个问题是:每次总要花10~...原创 2018-07-06 11:26:03 · 4081 阅读 · 0 评论 -
Hive查看表中文注释乱码问题
现象Hive使用show create table查看表结构,发现中文注释乱码,包括普通字段及分区字段。解决这是由于Hive元数据库跟注释相关的字段的编码不是UTF8类型,解决方法为登陆到元数据库中执行以下查看及修改命令,select table_collation from information_schema.tables where table_name in ('CO...原创 2018-07-12 16:33:33 · 4261 阅读 · 0 评论 -
Hive使用TEZ执行count(*)结果不正确
现象Hive使用TEZ作为默认的执行引擎,当表插入完记录后,count()得到的结果与实际的记录数不一致,如果使用MR作为执行引擎来执行count(),结果与实际记录数一致。解决使用TEZ执行count()十分高效,绕过了MapReduce操作,实际结果不正确,应该是TEZ内部有某种机制count()直接查询统计信息,然后统计信息不是最新的,导致count(*)结果不正确。hi...原创 2018-07-11 12:41:00 · 4697 阅读 · 0 评论 -
Sqoop错误retries get failed due to exceeded maximum allowed retries number
现象执行sqoop命令时报以下warning,但sqoop抽数功能不受影响。 解决根据错误提示,找到https://community.hortonworks.com/questions/70997/failed-to-connect-to-server-port-8032-retries-get.html?sort=oldest 这篇文章,Your standby RM (...原创 2018-06-22 13:45:23 · 3679 阅读 · 0 评论 -
HBase之权限控制
HBase支持做权限访问控制,HBase的权限访问包括以下5种权限,Read(R) 允许对某个scope有读取权限Write(W) 允许对某个scope有写入权限Execute(X) 允许对某个scope有执行权限Create(C) 允许对某个scope有建表、删表权限Admin(A) 允许对某个scope做管理操作,如balance、split、snapshot等这...原创 2018-06-13 14:11:57 · 8896 阅读 · 0 评论 -
HDP Ambari两个问题小结
昨日玩HDP Ambari,遇到两个问题,在此总结一下,以防以后再遇到同类问题可以快速入手。问题一现象 ambari界面中各组件看不到状态信息,查看ambari server日志发现有如下报错,28 May 2018 19:28:58,144 WARN [qtp-ambari-agent-198] nio:720 - javax.net.ssl.SSLException: Re...原创 2018-05-29 10:43:48 · 2044 阅读 · 0 评论 -
Hadoop 不用RAID 0的原因
关于什么是RAID 0,请参照另外一篇文章http://blog.youkuaiyun.com/post_yuan/article/details/53516127,这里主要总结一下为什么Hadoop不用RAID 0的原因。关于这个问题,如果想了解详细也可参考文章: http://zh.hortonworks.com/blog/why-not-raid-0-its-about-time-and-snowflak原创 2016-12-08 13:55:18 · 2783 阅读 · 0 评论 -
EsgynDB安装系列之配置MySQL作为CDH元数据库
之前在安装CDH时,一般都使用CM自带的cloudera-manager-server-db-xxxx.rpm包来作为CDH后台的元数据库,用于存储相关的元数据信息,这个rpm对应PostgreSQL数据库。不过安装完后,CDH会显示一个警告信息,即不建议生产环境用自带的PostgeSQL作为元数据库,建议使用外部的数据库如MySQL、Oracle,我想主要可能是考虑可管理性和稳定性因素。那么...原创 2018-07-27 13:21:11 · 1481 阅读 · 0 评论 -
Trafodion之parquet_tools基本使用
Trafodion执行一个parquet_tools可执行程序,用于检查parquet文件。 parquet_tools存储在目录$TRFA_HOME/sql/scripts下,cd $TRAF_HOME/sql/scripts/ll parquet_tools parquet_tools可执行文件依赖于parquet-tools-${PARQUET_VERSION}.jar,这可...原创 2018-09-07 13:37:44 · 3686 阅读 · 0 评论 -
HBase 缓存机制
HBase提供了2种类型的缓存结构:MemStore & BlockCache。其中MemStore是写缓存,BlockCache是读缓存。MemStore:HBase写数据首先写入MemStore之中,并同时写入HLog,待满足一定条件后将MemStore中数据刷到磁盘,可以很大提升HBase的写性能。而且对读也很有提升,如果没有MemStore,读取刚写入的数据需要从文件中通过I/...转载 2018-12-26 13:47:25 · 1844 阅读 · 1 评论 -
/usr/hdp目录下的spark包引发的血案
现象机房断电后,HDP Hadoop各重要组件启动异常。单独从Ambari界面启动Zookeeper报错,报错截图如下解决根据报错信息,定位到错误发现在ambari-python-wrap /usr/bin/hdp-select versions | grep ^2.4.3.0-227 | tail -1这条命令,单独在节点上执行此命令,输出如下,[root@namenode-1 ha...原创 2019-02-19 11:02:52 · 1774 阅读 · 0 评论 -
使用sqoop迁移blob到Hive表
sqoop是一款开源的关系型数据库到Hadoop的迁移工具,对于通用的数据类型,如数值类型、字符类型、日期类型等sqoop可以提供无缝地迁移到Hadoop平台。但对于特殊类型,如LOB,使用sqoop迁移则有所限制。对于CLOB,如xml文本,sqoop可以迁移到Hive表,对应字段存储为字符类型。对于BLOB,如jpg图片,sqoop无法直接迁移到Hive表,只能先迁移到HDFS路径,然后再...原创 2019-02-20 17:47:34 · 4420 阅读 · 1 评论 -
使用sqoop迁移Oracle中blob到Trafodion
在前面文章中,我们介绍了使用sqoop把blob迁移到Hive,由于Hive本身不支持LOB类型,我们使用String来存储BLOB数据,存储格式为16进制的字符串。数据在Hive中之后,我们便可以直接使用Trafodion自带的LOAD INTO命令把数据直接从Hive表加载到Trafodion表,如下SQL&amp;amp;amp;amp;amp;gt;create table t_blob(a int, b varchar(1...原创 2019-02-20 19:24:26 · 813 阅读 · 0 评论 -
libssl.so.1.0.文件导致DataNode启不来
今天突然发现Hadoop集群中的一台DataNode启不来,其他节点都是正常的,此DataNode启动过程中日志只有以下错误信息,2019-05-06 16:36:01,106 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: RECEIVED SIGNAL 15: SIGTERM除了上述错误信息,也没有其他更有效的信息了,感觉很是...原创 2019-05-06 22:34:37 · 369 阅读 · 0 评论 -
EsgynDB 使用clipVarchar功能
clipVarchar假如数据库中一张表,定义宽度为100KB,实际存储宽度为1KB,默认情况下从SQL引擎->Mxosrvr->客户端,两个阶段传输均按最大定义宽度100KB来传输,在网络带宽不是特别好的情况下性能会下降较大。当有clipVarchar=1时,数据在Moxsrvr层会被截取为实际存储宽度,即1KB,从而提升Mxosrvr->客户端的网络传输性能。JDBC...原创 2019-08-26 16:48:44 · 437 阅读 · 0 评论