-
未来5年将是国产数据库的主战场。数据库作为竞争最激烈的国产软件赛道,在技术服务、人才发展等方面有着巨量需求。华为云数据库测评热身,快速了解自身数据库水平,闯关So-easy,还有华为手表GT2、无线耳机、华为手环4等万元奖品拿!活动对象:开发者、高校师生、对数据库感兴趣的0基础用户活动内容:参与方式:1、微信扫码报名2、点击链接直接报名活动参与测试【HCSD】潜力测试:华为云数据库技能测评3、扫描官方二维码进行报名测评规则:测评内容:了解数据库的基础理论如关系、表、事务等,SQL基础知识;测评共 (20) 道题,总分100分,通过测评分数80分;需在(60分钟)内交卷,过程中无法暂停,请提前安排好时间;如未及时交卷,则本次考试作废推荐使用Chrome浏览器,或Firefox浏览器本测试2小时内只允许答题一次完成 “华为云数据库自测题”奖励:“华为云数据库自测题”奖励奖品奖品数量HUAWEI FreeLace无线耳机10华为手环4/hilink保温杯20罗技鼠标5032 U盘80加湿器100手机支架100字母笔100文件夹100中奖率是通过自测题人数的20%,实际奖品发放数量将按照奖品数量上限的比率提供。活动规则及注意事项请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)抽奖形式:活动结束后,将参与数据导入第三方开源抽奖平台进行抽奖,抽奖过程全程透明公开。抽奖结束后将在此贴公布结果&收集收货信息。为保证活动的公平公正,华为云有权对恶意刷活动资源(“恶意”是指为获取资源而异常注册账号等影响活动公平性的行为),利用资源从事违法违规行为的用户收回抽奖及奖励资格。所有参加本活动的用户,均视为认可并同意遵守《华为云用户协议》,包括以援引方式纳入《华为云用户协议》的《可接受的使用政策》、《法律声明》、《隐私政策声明》、相关服务等级协议(SLA),以及华为云服务网站规定的其他协议和政策(统称为“云服务协议”)的约束。如果您不同意本活动规则和云服务协议的条款,请勿参加本活动。活动奖品颜色随机,且部分奖品数量有限发完将用等值奖品代替本次活动一个实名认证账号只能对应一个获奖人,如同一账号填写多个不同获奖人,不予发放奖励本活动最终解释权归华为云所有,活动规则由华为云在法律规定范围内进行解释。华为云保留不时更新、修改或删除本活动规则的权利。上述更新、修改或删除于公布时即时生效,用户应当主动查阅本活动规则的最新内容。
-
首先登陆实例一个节点,确认集群状态是否正常,若正常,说明已经恢复。排查/home/Ruby/log/watch_dog.log文件,确认对应节点异常时间点日志,若有如下日志,则使用ps命令查看om_agent进程内存是否存在,若存在,则需要确认进程启动时间,若无重启,则说明为误报告警,由于检查om_agent进程失败导致,不影响实例正常运行;否则由于om_agent进程重启导致,需要确认为什么om_agent进程重启。
-
数据库在查询的时候,偶尔会出现如下报错:org.postgresql.util.PSQLException: [***:30814/***:8000] ERROR: dn_6007_6008_6009: snapshot is not owned by resource owner TopTransaction
-
问题现象收到GTM服务异常的告警问题分析及界定1.登上集群后台执行cm_ctl query -Cvid命令,查看GTM主备状态: 2.正常情三个GTM的状态应该为Primary Standby OK。 GTM主备有自动重连机制,如果此时为OK,那么证明故障已经恢复。如果过了一段时间仍显示为异常状态,需要继续定位,常见的故障有如下几种:Connection bad1.查看显示不正常的机器是否正常上电,可否登录。如果没有正常上电,或者登录不上,联系IaaS技术支持进行处理。如果正常上电,且可以登录。那么继续定位。2.登录状态不正常的GTM节点,进入GTM的日志目录$GAUSSLOG/pg_log/gtm,查看最新的GTM日志,可以根据故障信息评断是什么问题。 比如如下日志显示为网络异常,备机连不到主机。关键词:could not connect 3.主备IP地址互相PING,发现网络联不通,故障定位为网络异常。联系IaaS技术支持进行处理。4. gtm主备端口进行curl操作,端口不通。查看安全组是否包含gtm的端口,或联系网络进行技术支持。 gtm主备互信的端口,可以在gtm报错日志中查看。 Disk damaged确认磁盘是否损坏,进入沙箱之后依次检查查看cm_agent日志,cd $GAUSSLOG/cm/cm_agent , 找到对应时间点的cm_agent-xxx.log日志,会有如下记录: data path disc writable test failed, 之后DN进程会被杀死 killing gtm by force1.df检查是否正常挂载 2.echo "hello" > /usr/local/gtm/test.txt是否能正写3.cat /usr/local/gtm/test.txt 是否能正常读。4.如果损坏(如df -h磁盘没有挂载),联系I层尝试修复磁盘故障。5.如果目录被重命名或权限不正确,恢复目录和权限,文件的正确权限为-rw------- 1 Ruby Ruby 39 Mar 11 17:37 gtm.pid,目录的正确权限为drwx------ 3 Ruby Ruby 4.0K Apr 14 19:39 gtm6.如果短时间无法解决,则联系高斯工程师,执行节点替换,使用另一个磁盘无问题的节点替换该问题节点。7.如果DN状态仍有问题,执行节点修复,修复该DN节点。Port conflictingGTM会监听两个接口:6000接口是GTM监听CN连接,6001接口是GTM的HA接口。1.登录到该GTM节点,su - Ruby 进入Ruby用户,ps -ux | more | grep gtm, 查看是否有两个名字完全相同的gtm进程,如果有则联系高斯工程师。2.如果是首次部署的集群,在Ruby用户执行cm_ctl query -Cvidp,查看故障节点上,是否数据库实例之间存在端口相同导致冲突的情况(lsof -i可以看到端口是否被GTM进程之外的程序占用,如6000 6001接口),如果有那么联系华为工程师、集群部署人员,确认并将端口号修改为正确的端口号。 3.lsof -i | grep xxxx(xxxx为GTM的端口号,如6000 6001接口),查看是否有其他进程占用了GTM需要的端口,如果有,联系集群安装部署人员及进程的拥有者,确认并修改该进程的端口号或者数据库的端口号。4.如果还没有解决,联系华为工程师,进行进一步的分析定位。Nic down1.表示网卡故障, root 用户执行ifconfig命令查看网卡是否down掉,如果是网卡故障联系I层检查并修复;2.ethx口上的IP是否存在,如果是IP丢失,重新配置IP。其他状态7.若GTM节点一直无法启动,处于异常状态。需要联系华为工程师进行定位处理。处理步骤1.查看GTM状态是否已经恢复正常。2.判断是否虚拟机故故障 -> 联系IaaS技术支持进行处理。3.判断是否节点所在网络故障 -> 联系IaaS技术支持进行处理。4.判断是否节点所在磁盘故障 -> 联系IaaS技术支持进行处理。5.其他原因 -> 联系华为工程师进行定位处理。
-
如题,在测试api的时候发现语句:(current_date - interval '${num}' day),会因为预编译而导致执行sql出错的问题。gaussdb原语句是(current_date - interval '30' day),因为涉及到多个参数且参数类型不同,尝试过cast('${num}' as int)方法不成功。也尝试过使用''两个双引号来转义也不行。取消勾选预编译后语句是可以正常运行的,请问是否还有其他方法可以在满足预编译的情况下成功执行这句话?
-
首先确认是否是虚拟机、网络故障,底层故障处理:PID文件未清理导致进程启动失败问题现象收到告警CM服务异常,查看集群状态,CM节点显示DOWN问题分析及定界step1.登录到故障对应CMS节点 cd $GAUSSLOG/cm/cm_serverstep2.打开对应时间点的cm_server*.log中是否含有关键词:failed to create the cm server pid file step3.如果有关键词,则此问题是由于虚拟机故障导致pid文件残留导致参照处理步骤方法一处理步骤方法一:cm_ctl query -Cvd 查看对应CMS的数据目录,到数据目录下删除对应的cm_server.pid文件即可恢复磁盘故障问题现象收到告警CM服务异常,查看集群状态,CM节点显示DOWN问题分析及定界step1.登录到故障对应CMS节点 step2.检查磁盘是否故障或占满处理步骤方法一:确认磁盘占满的原因,对磁盘进行清理(如果是日志盘,可清理一个月以前的日志文件)
-
如题,网上使用jdbc,odbc连接openguass的教程太少了,求推荐!
-
查询集群状态,DN状态为Building问题现象DN服务异常,DN状态为building问题分析及定界a、cm_ctl query -Cvipd查看哪些DN在building,并且会显示build的进度:如:building(80%), 连续查询cm_ctl query -Cvipd观察build进度。 该问题通常发生在业务压力非常大,数据导入太快,DN备的同步读跟不上DN主,DN主日志被回收,导致备DN只能做全量build,当集群重启时更容易发生此问题。此时需要考虑设置打开流控和并行redo等,继续按照步骤b进行定位。b、登录报错节点,su - Ruby, cd $GAUSSLOG/bin/gs_ctl/ 查看gs_ctl日志确定当前处于build的哪个阶段,以及是增量build还是全量build,如果是全量build, 日志中会有FULL_BUILD的字符串,全量build的时间会比增量build长。 继续按照步骤c定位。c、ps ux | grep gaussdb,查看dn进程的启动时间,判断其是否重启过,如果重启过,则参照场景2 DN状态为unknown中的步骤,诊断dn重启的原因查询集群状态,DN状态为Build failed问题现象DN服务异常,DN状态为build failed问题分析及定界a、登录报错节点,su - Ruby, cd $GAUSSLOG/bin/gs_ctl/ 查看gs_ctl日志确定build失败的原因,如果报错信息中出现could not connect to server,则首先按照b继续排查b、检查网络连接情况,ping xxx.xxx.xxx.xxx(主DN ip),如果无法ping通,则按照步骤1处理,否则继续按照步骤c定位c、进入数据目录,数据目录就是cm_ctl query -Cvid查看的结果中实例对应的目录,查看pg_hba.conf的设置是否正确,需要确认主dn的ip是否正确,method是否设置为trust,如果不正确,按照处理步骤2处理,如果正确,按照步骤d继续定位d、连接到步骤a日志中,本地节点需要连接的ip对应的节点,既本DN对应的主DN节点,查看$GAUSSLOG/bin/gs_ctl/下面同时间的日志,查看是否有报错信息,如果有,则按照处理步骤3处理处理步骤1、联系网络运维人员修复.2、联系华为工程师,确定不设置成trust的原因,并确定是否需要修改3、将主备DN对应的报错信息截屏发送给华为工程师,用来做进一步分析查询集群状态,DN状态为CoreDump问题现象dn服务异常,告警DN状态为CoreDump问题分析及定界a、登录到节点后,su - Ruby进入Ruby用户,进入沙箱: 执行如下命令/usr/sbin/chroot --userspec=Ruby:Ruby /var/chroot /bin/bash source /etc/profile && source ~/.bashrcb、cat /proc/sys/kernel/core_pattern 查看里面是否是路径且路径为Ruby用户可访问路径,如果是,则执行步骤b, 否则执行cb、进入该路径并查看是否有core文件生成,如果有core文件生成,则执行处理步骤1c、执行cm_ctl query -Cvipd, 找到当前dn的数据目录,进入数据目录,查看是否有core文件生成,如果有则执行处理步骤1d、cd $GAUSSLOG/ffic_log 查看是否有ffic日志,如果存在ffic日志,则执行处理步骤2处理步骤将core文件下载,并获取高斯内核版本号(gaussdb -V命令),发送给华为工程师 2. 将ffic日志下载,发送给华为工程师查询集群状态,DN状态为ReadOnly问题现象dn服务异常,告警DN状态为ReadOnly问题分析及定界a、df -h 查看磁盘空间分配情况,cm_ctl query -Cvd查看DN数据目录路径,确认所在磁盘空间使用率。b、登陆cmserver主所在节点,cd $GAUSSLOG/cm/cm_server,根据告警时间点,查看cm_server-xxx.log,搜索关键字 Set database to read only mode, 此日志表示当时磁盘使用率超过阈值,DN被设置为只读状态。c、登陆cmserver主节点,进入cmserver数据目录,到cm_server数据目录查看cm_server.conf 配置文件,查看参数datastorage_threshold_value_check的值,当磁盘使用率超过该参数值时,DN就会被设置为只读,避免磁盘被写满。比较DN磁盘使用率是否超过该参数值,如果是,则按照处理步骤1处理,如果否,则按照步骤2处理处理步骤联系华为工程师,确定是否需要扩容或者删除同磁盘的无用文件参考DN只读处理方法
-
查询集群状态,DN状态为Need repair问题现象DN服务异常问题分析及定界a、cm_ctl query -Cvipd查看对应的DN分片是否有主(Primary),如果无主,全部是Standby,通常是DN重启后Redo没有完成,需要等待redo完成,如果5分钟还没恢复,执行处理步骤1;如果有DN主,进入下一步bb、确认DN主备间网络是否正常,登录到主DN所在节点,如果无法登录,则需要排查主DN所在节点网络是异常,否则执行cc、在主DN上执行ping xxx.xxx.xxx.xxx(备DN ip) 确定主备DN间网络是否正常d、确认备DN节点的磁盘是否正常、磁盘空间是否充足e、登录到备DN所在节点,ps -ux | more |grep datanode 查看备DN进程的启动时间,确认备DN是否重启过,如果重启过, 则按照Unknow处理流程中的d、e、f、g、h去定位进程重启的原因。如果未重启、按照处理步骤1处理查询集群状态,DN状态为Wait Promoting、Promoting、Demoting问题现象DN服务异常,发生主备倒换问题分析及定界a、如果集群中有DN的状态为Unknown, 则首先按照Unknown的步骤,对Unknown的节点进行分析处理b、如果不存在Unknown节点,则登录到原主DN节点,cd $GAUSSLOG/pg_log/dn_xxx 进入DN日志目录,ls -lrt 并查看告警发生时间,是否新产生了一份日志文件,如果有,则查看上一份日志文件,查看是否有ERROR、Fatal等导致重启的原因,然后按照定位步骤c继续分析;如果没有,按照处理步骤1处理c、按照Unkown的步骤d、e、f,查看是否有core文件或者ffic文件生成。处理步骤1、观察5分钟,查看集群是否恢复正常,如果可恢复正常,则表示DN主备切换完成,观察集群状态和业务是否恢复,后续定位主备切换原因。如果没有,可以联系华为工程师处理。查询集群状态,DN状态为Disk damaged问题现象DN服务异常,DN状态为Disk Damaged问题分析及定界a、确认磁盘是否损坏,如果损坏,则按照处理步骤1b、如果磁盘无问题,则查看DN数据目录是否被删除,或者被重命名,或者目录的读写权限以及用户组权限是否正确,参照处理步骤2处理 通过命令ps ux | grep “--datanode” 查询DN的数据目录查看DN数据目录和权限:c、有可能是磁盘IO性能差,或者磁盘IO压力太大,无法正常读写,导致检测认为磁盘故障,此时降低业务压力,或更换IO更高的磁盘。 上述3种情况查看cm_agent日志,cd $GAUSSLOG/cm/cm_agent , 找到对应时间点的cm_agent-xxx.log日志,会有如下记录: data path disc writable test failed, 之后DN进程会被杀死 killing datanode by force 处理步骤:1、联系I层尝试修复磁盘故障,如果短时间无法解决,则联系华为工程师,执行节点替换,使用另一个磁盘无问题的节点替换该问题节点2、如果目录被重命名或权限不正确,恢复目录和权限(读写权限、用户组权限),如果DN状态仍有问题,执行节点修复,修复该DN节点。查询集群状态,DN状态为Port conflicting问题现象DN服务异常,DN状态为port conflicting问题分析及定界a、登录到该DN节点,su - Ruby 进入Ruby用户,ps -ux | more | grep datanode, 查看是否有两个名字完全相同的DN进程,如果有则联系华为工程师;如果没有,则按照步骤b继续定位b、如果是首次部署的集群,在Ruby用户执行cm_ctl query -Cvidp,查看故障节点上,是否数据库实例之间存在端口相同导致冲突的情况,如果有,按照处理步骤1处理,如果没有,则按照步骤c继续定位c、lsof -i | grep xxxx(xxxx为DN的端口号),查看是否有其他进程占用了数据库需要的端口,如果有,则按照处理步骤2处理。处理步骤1、联系集群部署人员,确认并将端口号修改为正确的端口号。2、联系集群安装部署人员及进程的拥有者,确认并修改该进程的端口号或者数据库的端口号
-
通过OPS确认节点状态是否已经恢复,或登录后台,执行cm_ctl query -Cv确认集群是否已经Normal。如果状态已经为normal,表明故障已经恢复,集群正常,不再影响业务。确认是否需要分析故障的具体原因,如果需要,继续向下跟随文档进行分析。确定是否为底层故障首先确认是否是物理机、虚拟机、网络,底层故障等环境因素导致。出现如下现象,大概率是底层故障:现象一:同时出现大量告警。不区分节点分类。现象二:闪报,告警之后,马上恢复。总之,不管是何现象,先确认底层是否故障。深入分析本文档各步骤都会用到集群信息,执行cm_ctl query -Cvipd 命令查询集群状态,各信息含义如下图: 查询集群状态,DN状态为Normal问题现象:DN服务异常。问题分析及定界:DN状态显示Normal,说明DN故障已经恢复,需要查看日志分析DN故障原因。 分析步骤:Case1:登录故障dn节点,查看cm_agent日志:cd $GAUSSLOG/cm/cm_agen # 找到告警时间点的日志文件cm_agent-xxx.logCase2:在cm_agent日志中搜索如下关键字(这些关键字在日志中处于同一行),如果有,按照描述处理,如果没有,跳转到步骤cdatanodeId=6001, dn_manual_stop=0, dn_disk_damage=0, nic_down=0, port_conflict=0, dn_build=0, dn_start_counts=0. # 最新版本也可能是如下所示: datanodeId=6030, dn_manual_stop=0, g_dnDiskDamage=0, g_nicDown=0, port_conflict=1, g_dnBuild=0, g_dnStartCounts=0.各个标记含义:dn_manual_stop=1,表示DN进程被停止过,通常有两种原因:(1)被用户停止(2)节点网络断开,被集群管理停止,执行处理步骤1。dn_disk_damage=1 或 g_dnDiskDamage=1,表示磁盘故障,查看DN数据目录是否存在,目录权限是否正常,磁盘是否故障,磁盘是否满。执行处理步骤2。nic_down=1或 g_nicDown=1 或 can’t find nic related with xxx,表示网卡故障, root 用户执行ifconfig命令查看网卡是否down掉,ethx口上的IP是否存在,执行处理步骤3。port_conflict=1,表示端口冲突,查看同目录下对应时间点的system_call-xxx.log日志,该日志中记录了当时端口被那个进程占用了,如下。COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gaussdb 24726 Ruby 9u IPv4 4143766500 0t0 TCP pekphisprc09662:42100 (LISTEN)或使用lsof -i:port确认。绝大部分情况下,端口占用是由于DN进程重启,老进程退出没有及时释放端口,这种情况等待几秒到数十秒后,端口释放后新的DN进程就可以启动。执行处理步骤4。Case3:在cm_agent日志中搜索如下关键字:restart msg from cm_server。 如果没有,跳转到步骤Step4。如果有,说明DN进程被CM重启过,可能原因及处理方式如下:oCMserver仲裁DN主备时重启。o进程僵死重启。登陆cmserver主节点,查看日志,检查当时网络读写、CPU、内存、磁盘等监控指标,是否有升高压力。cd $GAUSSLOG/cm/cm_server # 查看对应时间的cm_server-xxx.log日志, 搜索如下信息 phony dead times(5:5) already exceeded, will restart(6001) 或者 restart %u, there is not report msg for %d sec. Case4:cm_agent日志中没有Step2、Step3中的关键字,但是有“DN START”关键字,DN进程可能是core掉重启,按照《查询集群状态,告警DN状态为CoreDump》章节处理 ,如果没有“DN START”关键字,转到Case5。Case5:如果DN进程没有重启过: 查看DN日志 cd $GAUSSLOG/pg_log/dn_60xx, 找到告警时间点的日志,查看是否有报错,确认、收集保存错误日志。 登陆cmserver主所在节点, cd $GAUSSLOG/cm/cm_server,根据告警时间点,查看cm_server-xxx.log, 查看是否有报错信息,收集保存错误日志。 如果CMserver日志有如下【fenced UDF(34) heartbeat timeout, heartbeat:7, threshold:6. 】表示当时DN节点上的cm_agent与cm_server主节点之间短暂超时, 查看当时网络读写、CPU、内存、磁盘等监控指标,是否有升高压力。Case6:登陆cmserver主所在节点,cd $GAUSSLOG/cm/cm_server,根据告警时间点,查看cm_server-xxx.log,搜索关键字Set database to read only mode此日志表示当时磁盘使用率超过阈值,DN被设置为只读状态。同时到cm_server数据目录/var/chroot/usr/local/cm/cm_server查看cm_server.conf 配置文件,查看参数datastorage_threshold_value_check的值,当磁盘使用率超过该参数值时,DN就会被设置为只读,避免磁盘被写满。df -h查看磁盘使用率,查看DN数据目录所在磁盘使用率。处理步骤:Step1:确认用户是否停止过集群,如果没有,就是节点断网后,内核集群管理自动将DN停止,排查断网原因。Step2:检查磁盘是否故障,是否磁盘满(清理或移走磁盘数据)。如果是目录权限异常,修改目录权限,目录不存在或文件丢失,进行节点修复。Step3:如果是网卡故障联系I层检查并修复;如果是IP丢失,重新配置IP。Step4:确认端口被那个进程占用,解除端口占用。Step5:如果不是上述情况请联系华为工程师处理。查询集群状态,DN状态为Unknown问题现象dn服务异常,告警DN状态为Unknown问题分析及定界Case1:确认是否是虚拟机故障或者网络故障。 根据告警中的节点id,生成登录脚本,尝试登录到对应节点,如果不能登录到节点,则需要排查是否是虚拟机故障或者网络故障。如果是则修复。Case2:如果短时间内集群没有恢复normal状态,同时按照如下定位并收集信息。a、登录故障dn节点,cm_ctl query -Cvd查询dn进程的状态b、执行ps -ux | more | grep datanode 查看dn进程状态,确认dn进程是否存在。如果不存在,则按照处理步骤c执行c、执行ps -ux | more | grep cm_agent查看cm_agent进程是否在, 如果不存在,则执行处理步骤5,否则按照步骤d继续定位d、cd $GAUSSLOG/cm/cm_agent , 查看告警时间点的cm_agent-xxx.log日志,查看dn故障的原因(参照DN normal中的定位步骤)e、cd $GAUSSLOG/ffic 查看是否有ffic日志,如果存在ffic日志,则执行处理步骤1 f、cat /proc/sys/kernel/core_pattern 查看里面是否是路径且路径为Ruby用户可访问路径,如果是,则执行步骤g, 否则执行h g、则进入该路径并查看是否有core文件生成,如果有core文件生成,则执行处理步骤2 h、执行cm_ctl query -Cvipd, 找到当前dn的数据目录,进入数据目录,查看是否有core文件生成,如果有则执行处理步骤2,否则执行h i、cd $GAUSSLOG/pg_log/dn_xxx 进入dn日志目录,查看尾部内容,查看是否有ERROR、Fatal信息,如果有执行处理步骤3处理步骤1、将ffic日志下载,并获取高斯内核版本号(gaussdb -V命令),联系华为工程师。2、将core文件下载,并获取高斯内核版本号(gaussdb -V命令),联系华为工程师。3、查看ERROR、Fatal信息中是否包含端口绑定失败、共享内存或者信号量分配失败、文件丢失或无权限等信息,然后执行步骤4。4、将ERROR、Fatal信息上下10行截屏并发送给华为工程师,将日志文件下载联系华为工程师。5、如果不是上述情况请联系华为工程师处理。
-
戳链接了解认证详情:cid:link_0videovideovideovideovideovideo
-
1、目的主要用指导现网配置,用于指导云上(或线下)从GaussDB(DWS)平台连接hadoop。2、总体流程a.从Hadoop客户端获取core-site.xml hdfs-site.xml krb5.conf b.获取用户Krb凭证文件user.keytab c.创建连通配置文件 d.配置上传GaussDB(DWS)沙箱及添加云上路由 e.创建Server指向Hadoop f.用户从GaussDB(DWS)外表访问Hadoop 即,配置GaussDB(DWS)访问HDFS,需要先从HDFS拿到配置,上传到集群所有节点,然后创建server,即可通过外表读取、写入Hadoop数据;2.1 流程说明主要描述GaussDB(DWS)连接CDP平台hadoop方法; 同时简单说明使用方法(读、写操作);2.2 注意事项Core-site、hdfs-site、krb5.conf需获取到正确信息;GaussDB(DWS)需要和Hadoop、Kerberos网络互通;Elk-site文件配置需要填写正确;3、配置Hadoop服务连接3.1 获取hadoop配置最好是从hadoop在用的客户端服务器(运行kinit/hdfs/beeline/impala-shell服务器)获取配置,主要要求提取core-site.xml、hdfs-site.xml、krb5.conf(该文件是存在认证的Kerberos配置)文件。 这些文件用于指向hadoop以及Kerberos认证使用。 文件临时存放在hadoop客户端服务器目录:/tmp/cdp目录下(cdp可自定义)3.2 获取用户keytab文件该文件也是从hadoop侧获取,主要是存在Kerberos认证环境,涉及到该文件。 文件临时存放在hadoop客户端服务器目录:/tmp/cdp目录下(cdp可自定义) 获取到用户keytab环境,最好可以在hadoop客户端服务器执行一下凭证: kinit -kt xxx.keytab user_xxx 其中xxx.keytab即hadoop登陆所需的用户凭证文件,可以任意命名,建议可以是user.keytab; User_xxx,指访问hadoop环境的用户名信息; Kinit成功后,执行klist可以看到凭证有效期信息; 同时可以执行hdfs命令行,查看hadoop文件:如 hdfs dfs -ls / #可以获取hadoop根目录信息3.3 创建GaussDB(DWS)访问Hadoop配置文件配置文件必须命名成:elk-site.xml (注意,中间是-横杠而非下划线) 文件临时存放在hadoop客户端服务器目录:/tmp/cdp目录下(cdp可自定义) 文件填写信息如下:<?xml version="1.0" encoding="UTF-8" standalone="no"?> <configuration> <property> <name>dfs.namenode.kerberos.principal</name> <value>user_xxx@XXX.COM</value> </property> <property> <name>dfs.namenode.kerberos.keytab</name> <value>/MRS/cdp/user.keytab</value> </property> </configuration>其中user_xxx@XXX.COM信息中,user_xxx指访问hadoop的用户信息,xxx.com,来源于krb5.conf文件中【realms】信息域名信息; 其中/MRS/cdp/user.keytab,此处user.keytab即5.2中用户提供的keytab文件;/MRS/cdp指打算上传到GaussDB(DWS)各服务器节点最终配置目录的全路径,这个路径是可以自定义,但建议在/MRS下面创建一个子目录,用于表达和hadoop体系相关。如果填写出错,查询hadoop外表时,会报keytab路径找不到;3.4 配置上传1)登陆GaussDB(DWS)服务器任一节点(云上版本登入沙箱的Ruby用户,线下版本登入到omm用户),在/tmp目录下创建cdp子目录(cdp目录可以自定义); 2)记录当前GaussDB(DWS)服务器节点的hostname,如DWS001; 3)切换目录 cd /tmp/cdp; 4)执行配置上传动作:scp <hadoop客户端用户>@<hadoop客户端IP>:/tmp/cdp ./ 5)此时,从hadoop客户端的临时目录/tmp/cdp获取到5个配置文件(core-site.xml、hdfs-site.xml、krb5.conf、user.keytab、elk-site.xml),且存放在本机/tmp/cdp目录 6)GaussDB(DWS)服务器所有节点创建配置文件存放目录:/MRS/cdp (cdp可自定义) gs_ssh -c "mkdir /MRS/cdp" #批量,所有节点创建目录 7)执行配置文件广播到GaussDB(DWS)服务器所有节点 gs_ssh -c "scp DWS001:/tmp/cdp/* /MRS/cdp/" #批量,所有节点上传配置 此处DWS001即执行命令所在服务器的机器名 8)检查是否成功上传 gs_ssh -c "ls -l /MRS/cdp" #批量,查看所有节点文件正常上传3.5 路由添加完成网络打通,该步骤主要针对云上版本,因为云上版本限于云安全访问,均存在路由进出控制,需打通路由; 为了后续可维护性(温备替换、节点扩容),建议由云底座维护人员统一添加,主要告知打通GaussDB(DWS)所有节点到CDP的hadoop及Kerberos地址连通信息,涉及name node、data node、Kerberos所在服务器IP(可建议直接开通网段)。 若是临时个人测试、验证,可参见下述操作获取hadoop及Kerberos地址连通信息,涉及name node、data node、Kerberos所在服务器IP 通常在hadoop客户端服务器的/etc/hosts可获取获取GaussDB(DWS)所有节点所在服务器业务网的网卡名称 登陆服务器执行:ip a|grep “xx.xx.xx业务网段”|awk ‘{print $7}’ 一般云上都是bound0.xxx各服务器在root用户下添加路由访问配置 route add -net xx.xx.xx.0(krb网段) netmask 255.255.255.0 gw xx.xx.xx.1(节点对外IP网段) dev bond0.xxx(节点对外IP绑定的网卡) route add -net xx.xx.xx.0(name noded网段) netmask 255.255.255.0 gw xx.xx.xx.1(节点对外IP网段) dev bond0.xxx(节点对外IP绑定的网卡) route add -net xx.xx.xx.0(data node网段) netmask 255.255.255.0 gw xx.xx.xx.1(节点对外IP网段) dev bond0.xxx(节点对外IP绑定的网卡) 如果网段一样,每台机器只要合并执行一次配置完,可以登入沙箱环境,检查网络是否打通; gs_ssh -c "ssh -c test-name -p 8010 -v " #批量ping对应节点8010端口是否可以建立连接 此处test-name通常指连接name node ip需要使用该协议,但可能也不需要到此,GaussDB(DWS)所有节点访问hadoop网络打通;3.6 添加hosts配置从hadoop中获取到hadoop集群相关IP信息 获取hadoop及Kerberos地址连通信息,涉及name node、data node、Kerberos所在服务器IP(客户端/etc/hosts)添加到GaussDB(DWS)所有节点沙箱环境的hosts文件中 即在沙箱外root用户,编辑/var/chroot/etc/hosts文件,添加主机信息到此,GaussDB(DWS)所有节点可以通过主机名访问到hadoop; 注意,网络不通,最终会导致GaussDB(DWS)无法访问到hadoop,大部分人都是在网络这关卡住,有一部分人是没有正确配置/var/chroot/etc/hosts(即沙箱内的/etc/hosts)3.7 创建数据库内Server地址指向通过SQL执行创建server,用于指向Hadoop服务;create server <server名称, test_server> foreign data wrapper HDFS_FDW options (type 'hdfs', address '<name_node 11.11.11.11>:<port, 8010>,<standby_name_node>:<port 8020>', hdfscfgpath '<hadoop配置信息,如/MRS/cdp>');其中<server名称, test_server>:自定义指向user_xxx用户的hadoop服务名称; 其中<name_node 11.11.11.11>:<port, 8010>,:<port 8020>:填写主备name node服务的IP和端口信息 其中<hadoop配置信息,如/MRS/cdp>:填写沙箱内配置文件最终上传的地址目录创建成功之后,这个server就可以发布给用户创建外表时使用;读写Hadoop数据,都通过外表定义的形式访问。4、使用样例4.1 读操作外表定义create foreign table <外表名称, ft_table1> ( <字段名> <字段类型>, .... ) server <server名称, test_server> options ( foldername '<hadoop full path for table, /user/hive/warehouse/pdm.db/t00_ccy_parm>', format 'parquet', encoding 'utf8' ) distribute by roundrobin;其中<外表名称, ft_table1>:自定义的外表的名称,可以带schema名 其中<字段名> <字段类型>:主要依据hadoop平台上用户表的数据定义 其中<server名称, test_server>:即5章节创建的server名; 其中<hadoop full path for table, /user/hive/warehouse/pdm.db/t00_ccy_parm>:hadoop平台数据访问地址; 其中<存储格式,parquet>:指数据在hadoop平台存储格式,通常用ORC,parquet格式; 其中utf8:数据的字符集;外表使用(常规SQL访问读取) Select count(*) from ft_table1; 也可加工插入目标表。4.2 写操作外表定义create foreign table <外表名称, ft_table2> ( <字段名> <字段类型>, .... ) server <server名称, test_server> options ( foldername '<hadoop full path for table, /user/hive/warehouse/pdm.db/t00_ccy_parm2>', format 'ORC', encoding 'utf8' ) write only;同读外表比,主要调整增加了WRITE ONLY字眼; 另外,当前只支持ORC外表写入,不支持parquet; 关注部分hive的ORC类型在impala里无法访问(自动转换类型);对应hive上创建相同表 Beeline > create table pdm.t00_ccy_parm2 (字段 字段定义 。。。) stored as ORC;外表使用 Insert into ft_table2 select * from pdm. t00_ccy_parm; 注意,写入hadoop均是以overwrite方式写入,即每次都会覆盖对应数据表Hive访问从GaussDB(DWS)同步到hadoop数据 testhive > select * from pdm. t00_ccy_parm2;5、其他5.1 常见问题1)创建外表后查询报错 ERROR: Login failed on cn_5001, check your principal and keytab. CN日志显示: failed to check ticket cache: No credentials cache found(), error code = -1765328189 failed to kinit: Cannot contact any KDC for realm 'HADOOP.COM' ,error code = -1765328228 解决思路:CN和hadoop集群的kerberos认证通信问题,检查DWS和hadoop集群网络通信 2)上述报错在DN 解决思路:DN节点和hadoop集群的kerberos认证通信问题,检查DWS和hadoop集群网络通信5.2 网络排查云上DWS对接线下hadoop,需要保证DWS集群的业务网卡和hadoop进行通信, 一般遇到都是某个节点因重启导致路由丢失,这种需要将配置路由策略永久添加到配置文件。 DWS集群往往因为节点多,无法清楚知晓那个节点到Hive的网络不通。可以参考以下方法:gs_ssh -c "ssh -v 10.10.10.252 -p 25000 -o ConnectTimeout=1"看那个节点没有Connection established.证明网络不通。总结遇到对接问题时,耐心梳理每一个点,问题总是在那么一个小点,努力排查问题终将迎刃而解。 文中如有不足或其他问题,欢迎大家提出意见或者建议,将及时修改,确保能帮助到大家,谢谢。
-
java_home\bin的环境变量也设置了,到底是怎么回事,孩子疯了
-
确认节点状态先通过OPS确认节点状态是否已经恢复,或登录后台执行cm_ctl query -Cv确认集群是否已经Normal。如果状态已经为normal,表明故障已经恢复,集群正常,不再影响业务。 确认是否需要分析故障的具体原因,如果需要,继续向下跟随文档进行分析 首先确认是否是底层故障如虚拟机故障、网络故障、存储故障,排除底层故障后再继续定位定位导图总览CN进程normal问题现象cm_ctl query -Cvd 查询集群状态,告警CN显示normal。 问题分析与定界step1.登录告警CN节点,su 进入集群用户,ps ux | grep 'gaussdb --coordinator',查看CN进程启动时间,确认CN是否重启,如果没有重启参考处理方法一(结束),若重启则跳至step2step2. cd $GAUSSLOG/cm/cm_agentstep3. 打开对应时间点的vi cm_agent-*.logstep4.查看日志中对应时间点是否含有关键词 cn restart,如果同时有process (gaussdb 17391) is T (STOPPED) 类似日志,说明进程hang住了,跳至step6step5.若日志中没有cn restart关键词,查看日志中对应时间点是否含有关键词 CN START.有则跳至step10step6.登录到CMS主节点 cd $GAUSSLOG/cm/cm_serverstep7.打开对应时间点的cm_server*.logstep8.查看日志中对应时间点是否含有关键词 restart %u, there is not report msg for %d sec. 如果有,则CN重启原因为心跳超时,参考处理步骤方法一(结束 ) step9.查看日志中对应时间点是否含有关键词 phony dead times (%d) already exceeded, will restart...则CN重启原因为进程僵死,参考处理步骤方法一(结束)step10.cd $GAUSSLOG/cm/cm_agent,打开对应时间点的system_call-*.log,查看对应时间点是否有关键词can not bind ip,如果没有则跳至step12step11.如果有关键词can not bind ip,则CN重启原因为CN IP丢失,参考处理步骤方法二 (结束)step12.cd $GAUSSLOG/pg_log/cn_XXstep13.查看相关postgresql_xxx.log, 查看相关时间点是否有关键词PANIC,如果有则原因为core,参考处理步骤方法一。step14.查看CN数据目录下是否有core生成,如果有则原因为core,参考处理步骤方法一。step15.查看$GAUSSLOG/ffic_log日志,查看对应时间点是否有打印日志,如果有则原因为core,参考处理步骤方法一。处理步骤方法一:联系华为工程师进行定位方法二:检查故障节点虚拟IP,浮动IP。如有问题,请排查管控HA是否关闭。CN进程down问题现象cm_ctl query -Cvd 查询集群状态,告警CN显示down。问题分析与定界step1. cd $GAUSSLOG/cm/cm_agentstep2.打开对应时间点的cm_agent-*.logstep3.查看日志中对应时间点是否含有关键词 cn_disk_damage=1,如果有,则原因为数据/日志磁盘损坏或磁盘满,参考处理步骤方法一。step4.查看日志中对应时间点是否含有关键词 port_conflict=1,如果有,则原因为端口冲突,参考处理步骤方法二。step5.查看日志中对应时间点是否含有关键词 cn_nic_down=1,如果有,则原因为网卡故障,参考处理步骤方法三。step6.查看日志中对应时间点是否含有关键词 cn_manual_stop=1,如果有,则原因为手动停止,参考处理步骤方法四。处理步骤方法一:查看对应故障cn的磁盘是否有故障,如无故障则检查是否磁盘满。方法二:lsof -i:端口号,查看端口占用进程,联系华为工程师定位处理方法三:联系I层查看是否存在网卡故障方法四:查看是否有人手动停止CN进程deleted问题现象cm_ctl query -Cvd 查询集群状态,告警CN显示deleted。问题分析与定界step1.确认当时时间故障CN所在节点是否正常,是否主机故障,重启、掉电,断网等,参考处理步骤方法一。step2.登入CMS主节点,cd $GAUSSLOG/cm/cm_server,打开对应时间点的cm_server*.logstep3.如果日志中有关键词isCnDnDisconnected=1, 则原因为CN与所有主DN断连,参考处理步骤方法二。step4.如果日志中有关键词cn_down_to_delete=1,则原因为CNdown 导致,参考处理步骤方法三。step5.如果日志中有关键词cn instance restarts within ten minutes is more than,则原因为CN进行重启 导致,参考处理步骤方法四。处理步骤方法一:联系I层查看主机故障原因,排除故障后,在管控点击节点修复修复cn节点。方法二:在管控点击[节点修复]修复cn节点,联系华为工程师处理方法三:在管控点击[节点修复]修复cn节点,参考第二章CN DOWN进行定位方法四:在管控点击[节点修复]修复cn节点,参考第一章CN NORMAL进行定位CN进程readonly问题现象cm_ctl query -Cvd 查询集群状态,告警CN显示readonly。问题分析与定界step1、登录到只读CN节点后,su - Ruby进入Ruby用户, 执行/usr/sbin/chroot --userspec=Ruby:Ruby /var/chroot 进入沙箱,source /etc/profile设置环境变量step2、df -h 查看磁盘空间分配情况,cm_ctl query -Cvd查看CN数据目录路径,确认所在磁盘空间使用率。step3、登陆cmserver主节点,进入cmserver数据目录/var/chroot/usr/local/cm/cm_server,查看cm_server.conf 配置文件,查看参数datastorage_threshold_value_check的值,当磁盘使用率超过该参数值时,CN就会被设置为只读,避免磁盘被写满。比较CN磁盘使用率是否超过该参数值,如果是,则按照处理步骤1处理,如果否,则按照步骤2处理处理步骤1、联系华为工程师,确定是否需要扩容或者删除同磁盘的无用文件2、参考CN只读处理方法
-
如图,想问下要怎么解决。选择的jar包是:gsjdbc4.jar而且很奇怪的是,没有设置enable_ce=1时,就能成功连接,设置后才会出现报错。
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签