云服务器内容精选

  • 解决方法 找到重启前的主NameNode,进入其数据目录(查看配置项“dfs.namenode.name.dir”可获取,例如/srv/BigData/namenode/current),得到最新的FSImage文件的序号。一般如下: 查看各JournalNode的数据目录(查看配置项“dfs.journalnode.edits.dir”可获取,例如/srv/BigData/journalnode/hacluster/current),查看序号从第一部获取到的序号开始的edits文件,看是否有不连续的情况(即前一个edits文件的最后一个序号 和 后一个edits文件的第一个序号 不是连续的,如下图中的edits_0000000000013259231-0000000000013259237就和后一个edits_0000000000013259239-0000000000013259246就是不连续的)。 如果有这种不连续的edits文件,则需要查看其它的JournalNode的数据目录或NameNode数据目录中,有没有连续的该序号相关的连续的edits文件。如果可以找到,复制一个连续的片段到该JournalNode。 如此把所有的不连续的edits文件全部都修复。 重启NameNode,观察是否成功。如还是失败,请联系技术支持。
  • 为什么网站无法访问? 网站暂时无法访问,可能由以下原因导致: 原因一:未备案或未接入华为云备案。 根据《非经营性互联网信息服务备案管理办法》,网站需要完成备案。如果您的 域名 已在其他接入商办理过备案并取得备案号,现在更换到华为云服务器进行域名解析(或者二级域名指向华为云),因接入商有变更,需要您在华为云做接入备案。 原因二:网站内容与备案信息不符或备案信息不准确。 根据《非经营性互联网信息服务备案管理办法》,网站内容需要与备案信息一致,且备案信息真实有效。建议网站管理员尽快修改网站信息。 原因三:备案信息同步延迟。 如果您的网站已备案成功仍无法访问,请等待一个工作日。由于信息同步延迟,备案通过一个工作日后网页会自动开放。 原因四:没有配置网站解析。 备案成功后,需要将域名解析至备案接入商的服务器,配置网站解析。如果您的网站备案接入商是华为云,则网站解析操作如下: 在华为云注册域名的用户,单击这里配置网站解析。 在第三方注册域名的用户,单击这里配置网站解析。 其他异常情况:请提交工单进行咨询。 父主题: 故障排除
  • 解决方法 找到重启前的主NameNode,进入其数据目录(查看配置项“dfs.namenode.name.dir”可获取,例如/srv/BigData/namenode/current),得到最新的FSImage文件的序号。一般如下: 查看各JournalNode的数据目录(查看配置项“dfs.journalnode.edits.dir”可获取,例如/srv/BigData/journalnode/hacluster/current),查看序号从第一部获取到的序号开始的edits文件,看是否有不连续的情况(即前一个edits文件的最后一个序号 和 后一个edits文件的第一个序号 不是连续的,如下图中的edits_0000000000013259231-0000000000013259237就和后一个edits_0000000000013259239-0000000000013259246就是不连续的)。 如果有这种不连续的edits文件,则需要查看其它的JournalNode的数据目录或NameNode数据目录中,有没有连续的该序号相关的连续的edits文件。如果可以找到,复制一个连续的片段到该JournalNode。 如此把所有的不连续的edits文件全部都修复。 重启NameNode,观察是否成功。如还是失败,请联系技术支持。
  • 原因分析 HDFS进入安全模式后HBase服务异常,导致meta表下线;HDFS退出安全模式后,下线的meta表未上线,查看RegionServer日志存在“No namenode available to invoke create /hbase/WALs/xxxx.meta”报错。 由于meta表在HDFS故障恢复后的上线过程中无法记录上线状态,导致meta表无法正常上线,且Manager实例健康检查自动恢复重试存在重试次数限制,最终导致meta表上线失败。因此,HDFS退出安全模式后,需要手动介入进行恢复。
  • 问题 在Spark的spark-shell上执行如下代码失败: val acctId = List(("49562", "Amal", "Derry"), ("00000", "Fred", "Xanadu")) val rddLeft = sc.makeRDD(acctId) val dfLeft = rddLeft.toDF("Id", "Name", "City") //dfLeft.show val acctCustId = List(("Amal", "49562", "CO"), ("Dave", "99999", "ZZ")) val rddRight = sc.makeRDD(acctCustId) val dfRight = rddRight.toDF("Name", "CustId", "State") //dfRight.show val dfJoin = dfLeft.join(dfRight, dfLeft("Id") === dfRight("CustId"), "outer") dfJoin.show dfJoin.repartition(1).write.format("com.databricks.spark.csv").option("delimiter", "\t").option("header", "true").option("treatEmptyValuesAsNulls", "true").option("nullValue", "").save("/tmp/outputDir")
  • 操作步骤 假设存在如下一张表: user_data(user_group int, user_name string, update_time timestamp); 其中user_group是分区列,需要根据已有数据,按更新时间进行排序,刷新用户组信息。操作步骤如下: 在Hive Beeline命令行执行以下命令开启Hive动态分区: set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; 执行以下命令创建一个临时表,用于存储去重后的数据: CREATE TABLE temp_user_data AS SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY user_group ORDER BY update_time DESC) as rank FROM user_data ) tmp WHERE rank = 1; 执行以下命令使用临时数据作为数据源,并插入到目的表中: INSERT OVERWRITE TABLE user_data SELECT user_group, user_name, update_time FROM temp_user_data; 执行以下命令清理临时表: DROP TABLE IF EXISTS temp_user_data;
  • 处理步骤 登录安装了MySQL的节点,连接Doris数据库。 调用BE的check_tablet_segment_lost请求自动修复丢失的副本。 curl -X POST http://192.168.67.78:29986/api/check_tablet_segment_lost?repair=true ( 192.168.67.78为异常的BE节点IP地址,29986为BE的HTTP Server的服务端口,可在Manager的Doris配置界面搜索“webserver_port”查看。 执行以下命令,获取DetailCmd。 show tablet tabletId 执行DetailCmd,当异常节点的副本已经被移除时,再次进行业务查询正常即可。
  • 回答 HetuEngine计算实例的启动依赖Python文件,需确保各节点“/usr/bin/”路径下面存在Python文件。 登录 FusionInsight Manager,单击“主机”,查看并记录所有主机的业务IP。 以root用户登录1记录的节点,在所有节点都执行以下命令,在“/usr/bin/”目录下添加“python3”的软连接。 cd /usr/bin ln -s python3 python 重新启动HetuEngine计算实例。
  • 回答 Ranger界面上HBase服务插件的“hbase.rpc.protection”参数值和HBase服务端的“hbase.rpc.protection”参数值必须保持一致。 参考登录Ranger WebUI界面章节,登录Ranger管理界面。 在首页中“HBASE”区域,单击组件插件名称,如HBase的按钮 搜索配置项“hbase.rpc.protection”,修改配置项的value值,与HBase服务端的“hbase.rpc.protection”的值保持一致。 单击“保存”。
  • 问题 添加HBase的Ranger访问权限策略时,在策略中使用通配符搜索已存在的HBase表时,搜索不到已存在的表,并且在/var/log/Bigdata/ranger/rangeradmin/ranger-admin-*log中报以下错误 Caused by: javax.security.sasl.SaslException: No common protection layer between client and server at com.sun.security.sasl.gsskerb.GssKrb5Client.doFinalHandshake(GssKrb5Client.java:253) at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:186) at org.apache.hadoop.hbase.security.AbstractHBaseSaslRpcClient.evaluateChallenge(AbstractHBaseSaslRpcClient.java:142) at org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler$2.run(NettyHBaseSaslRpcClientHandler.java:142) at org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler$2.run(NettyHBaseSaslRpcClientHandler.java:138) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1761) at org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler.channelRead0(NettyHBaseSaslRpcClientHandler.java:138) at org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler.channelRead0(NettyHBaseSaslRpcClientHandler.java:42) at org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
  • 回答 打开FusionInsight Manager页面,看到Yarn服务的业务IP地址为192网段。 从Yarn的日志看到,Yarn读取的Spark Web UI地址为http://10.120.169.53:23011,是10网段的IP地址。由于192网段的IP和10网段的IP不能互通,所以导致访问Spark Web UI界面失败。 修改方案: 登录10.120.169.53客户端机器,修改/etc/hosts文件,将10.120.169.53更改为相对应的192网段的IP地址。再重新运行Spark应用,这时就可以打开Spark Web UI界面。
  • 回答 由于在删除了大量文件之后,DataNode需要时间去删除对应的Block。当立刻重启NameNode时,NameNode会去检查所有DataNode上报的Block信息,发现已删除的Block时,会输出对应的INFO日志信息,如下所示: 2015-06-10 19:25:50,215 | INFO | IPC Server handler 36 on 25000 | BLOCK* processReport: blk_1075861877_2121067 on node 10.91.8.218:9866 size 10249 does not belong to any file | org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.processReport(BlockManager.java:1854) 每一个被删除的Block会产生一条日志信息,一个文件可能会存在一个或多个Block。当删除的文件数过多时,NameNode会花大量的时间打印日志,然后导致NameNode启动慢。 当出现这种现象时,您可以通过如下方式提升NameNode的启动速度。 删除大量文件时,不要立刻重启NameNode,待DataNode删除了对应的Block后重启NameNode,即不会存在这种情况。 您可以通过hdfs dfsadmin -report命令来查看磁盘空间,检查文件是否删除完毕。 如已大量出现以上日志,您可以将NameNode的日志级别修改为ERROR,NameNode不会再打印此日志信息。 等待NameNode启动完毕后,再将此日志级别修改为INFO。修改日志级别后无需重启服务。
  • 回答 在这种场景下,CarbonData会给每个节点分配一个INSERT INTO或LOAD DATA任务。如果Executor不是不同的节点分配的,CarbonData将会启动较少的task。 解决措施: 您可以适当增大Executor内存和Executor核数,以便YARN可以在每个节点上启动一个Executor。具体的配置方法如下: 配置Executor核数。 将“spark-defaults.conf”中的“spark.executor.cores”配置项或者“spark-env.sh”中的“SPARK_EXECUTOR_CORES”配置项设置为合适大小。 在使用spark-submit命令时,添加“--executor-cores NUM”参数设置核数。 配置Executor内存。 将“spark-defaults.conf”中的“spark.executor.memory”配置项或者“spark-env.sh”中的“SPARK_EXECUTOR_MEMORY”配置项设置为合适大小。 在使用spark-submit命令时,添加“--executor-memory MEM”参数设置内存。
  • 回答 如果LoadIncrementalHFiles工具依赖的Client在集群内安装,且和DataNode在相同的节点上,在工具执行过程中HDFS会创建短路读提高性能。短路读依赖“/var/run/FusionInsight-HDFS”目录(“dfs.domain.socket.path”),该目录默认权限是750。而当前Linux用户没有权限操作该目录。 上述问题可通过执行以下方法解决: 方法一:创建新用户(推荐使用)。 通过Manager页面创建新的用户,该用户属组中默认包含ficommon组。 [root@xxx-xxx-xxx-xxx ~]# id test uid=20038(test) gid=9998(ficommon) groups=9998(ficommon) 重新执行ImportData。 方法二:修改当前用户的属组。 将该用户添加到ficommon组中。 [root@xxx-xxx-xxx-xxx ~]# usermod -a -G ficommon test [root@xxx-xxx-xxx-xxx ~]# id test uid=2102(test) gid=2102(test) groups=2102(test),9998(ficommon) 重新执行ImportData。
  • 问题 在普通集群中手动创建Linux用户,并使用集群内DataNode节点执行批量导入时,为什么LoadIncrementalHFiles工具执行失败报“Permission denied”的异常? 2020-09-20 14:53:53,808 WARN [main] shortcircuit.DomainSocketFactory: error creating DomainSocket java.net.ConnectException: connect(2) error: Permission denied when trying to connect to '/var/run/FusionInsight-HDFS/dn_socket' at org.apache.hadoop.net.unix.DomainSocket.connect0(Native Method) at org.apache.hadoop.net.unix.DomainSocket.connect(DomainSocket.java:256) at org.apache.hadoop.hdfs.shortcircuit.DomainSocketFactory.createSocket(DomainSocketFactory.java:168) at org.apache.hadoop.hdfs.client.impl.BlockReaderFactory.nextDomainPeer(BlockReaderFactory.java:804) at org.apache.hadoop.hdfs.client.impl.BlockReaderFactory.createShortCircuitReplicaInfo(BlockReaderFactory.java:526) at org.apache.hadoop.hdfs.shortcircuit.ShortCircuitCache.create(ShortCircuitCache.java:785) at org.apache.hadoop.hdfs.shortcircuit.ShortCircuitCache.fetchOrCreate(ShortCircuitCache.java:722) at org.apache.hadoop.hdfs.client.impl.BlockReaderFactory.getBlockReaderLocal(BlockReaderFactory.java:483) at org.apache.hadoop.hdfs.client.impl.BlockReaderFactory.build(BlockReaderFactory.java:360) at org.apache.hadoop.hdfs.DFSInputStream.getBlockReader(DFSInputStream.java:663) at org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:594) at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:776) at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:845) at java.io.DataInputStream.readFully(DataInputStream.java:195) at org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.readFromStream(FixedFileTrailer.java:401) at org.apache.hadoop.hbase.io.hfile.HFile.isHFileFormat(HFile.java:651) at org.apache.hadoop.hbase.io.hfile.HFile.isHFileFormat(HFile.java:634) at org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.visitBulkHFiles(LoadIncrementalHFiles.java:1090) at org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.discoverLoadQueue(LoadIncrementalHFiles.java:1006) at org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.prepareHFileQueue(LoadIncrementalHFiles.java:257) at org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.doBulkLoad(LoadIncrementalHFiles.java:364) at org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:1263) at org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:1276) at org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:1311) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) at org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.main(LoadIncrementalHFiles.java:1333)