华为云用户手册

  • 回答 目前出现上述问题时使用的是默认配置,如表1所示,HDFS客户端到NameNode的RPC连接存在keep alive机制,保持连接不会超时,尽力等待服务器的响应,因此导致已经连接的HDFS客户端的操作会长时间无响应。 对于已经长时间无响应的HDFS客户端,可以进行如下操作: 等待NameNode响应,一旦NameNode所在节点的CPU利用率回落,NameNode可以重新获得CPU资源时,HDFS客户端即可得到响应。 如果无法等待更长时间,需要重启HDFS客户端所在的应用程序进程,使得HDFS客户端重新连接空闲的NameNode。 解决措施: 为了避免该问题出现,可以在“客户端安装路径/HDFS/hadoop/etc/hadoop/core-site.xml”中做如下配置。 表1 参数说明 参数 描述 默认值 ipc.client.ping 当配置为true时,客户端会尽力等待服务端响应,定期发送ping消息,使得连接不会因为tcp timeout而断开。 当配置为false时,客户端会使用配置项“ipc.ping.interval”对应的值,作为timeout时间,在该时间内没有得到响应,即会超时。 在上述问题场景下,建议配置为false。 true ipc.ping.interval 当“ipc.client.ping”配置为true时,表示发送ping消息的周期。 当“ipc.client.ping”设置为false时,表示连接的超时时间。 在上述问题场景下,建议配置一个较大的超时时间,避免服务繁忙时的超时,建议配置为900000,单位为ms。 60000
  • HDFS客户端常用命令 常用的HDFS客户端命令如下表所示。 更多命令可参考https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/CommandsManual.html#User_Commands 表1 HDFS客户端常用命令 命令 说明 样例 hdfs dfs -mkdir 文件夹名称 创建文件夹 hdfs dfs -mkdir /tmp/mydir hdfs dfs -ls 文件夹名称 查看文件夹 hdfs dfs -ls /tmp hdfs dfs -put 客户端节点上本地文件 HDFS指定路径 上传本地文件到HDFS指定路径 hdfs dfs -put /opt/test.txt /tmp 上传客户端节点“/opt/test.txt”文件到HDFS的“/tmp”路径下 hdfs dfs -get HDFS指定文件 客户端节点上指定路径 下载HDFS文件到本地指定路径 hdfs dfs -get /tmp/test.txt /opt/ 下载HDFS的“/tmp/test.txt”文件到客户端节点的“/opt”路径下 hdfs dfs -rm -r -f HDFS指定文件夹 删除文件夹 hdfs dfs -rm -r -f /tmp/mydir hdfs dfs -chmod 权限参数 文件目录 为用户设置HDFS目录权限 hdfs dfs -chmod 700 /tmp/test
  • 使用HDFS客户端 安装客户端,详细操作请参考使用 MRS 客户端。 以客户端安装用户,登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群为安全模式,执行以下命令进行用户认证。普通模式集群无需执行用户认证。 kinit 组件业务用户 执行HDFS Shell命令。例如: hdfs dfs -ls /
  • 回答 因为ResourceManager HA已启用,但是Work-preserving RM restart功能未启用。 如果Work-preserving RM restart功能未启用,ResourceManager切换时container会被kill,然后导致Application Master超时。Work-preserving RM restart功能介绍请参见: MRS 3.2.0之前版本:http://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/ResourceManagerRestart.html MRS 3.2.0及之后版本:https://hadoop.apache.org/docs/r3.3.1/hadoop-yarn/hadoop-yarn-site/ResourceManagerRestart.html
  • 问题 为什么在往HDFS写数据时报“java.net.SocketException: No buffer space available”异常? 这个问题发生在往HDFS写文件时。查看客户端和DataNode的错误日志。 客户端日志如下: 图1 客户端日志 DataNode日志如下: 2017-07-24 20:43:39,269 | ERROR | DataXceiver for client DFSClient_NONMAPREDUCE_996005058_86 at /192.168.164.155:40214 [Receiving block BP-1287143557-192.168.199.6-1500707719940:blk_1074269754_528941 with io weight 10] | DataNode{data=FSDataset{dirpath='[/srv/BigData/hadoop/data1/dn/current, /srv/BigData/hadoop/data2/dn/current, /srv/BigData/hadoop/data3/dn/current, /srv/BigData/hadoop/data4/dn/current, /srv/BigData/hadoop/data5/dn/current, /srv/BigData/hadoop/data6/dn/current, /srv/BigData/hadoop/data7/dn/current]'}, localName='192-168-164-155:9866', datanodeUuid='a013e29c-4e72-400c-bc7b-bbbf0799604c', xmitsInProgress=0}:Exception transfering block BP-1287143557-192.168.199.6-1500707719940:blk_1074269754_528941 to mirror 192.168.202.99:9866: java.net.SocketException: No buffer space available | DataXceiver.java:870 2017-07-24 20:43:39,269 | INFO | DataXceiver for client DFSClient_NONMAPREDUCE_996005058_86 at /192.168.164.155:40214 [Receiving block BP-1287143557-192.168.199.6-1500707719940:blk_1074269754_528941 with io weight 10] | opWriteBlock BP-1287143557-192.168.199.6-1500707719940:blk_1074269754_528941 received exception java.net.SocketException: No buffer space available | DataXceiver.java:933 2017-07-24 20:43:39,270 | ERROR | DataXceiver for client DFSClient_NONMAPREDUCE_996005058_86 at /192.168.164.155:40214 [Receiving block BP-1287143557-192.168.199.6-1500707719940:blk_1074269754_528941 with io weight 10] | 192-168-164-155:9866:DataXceiver error processing WRITE_BLOCK operation src: /192.168.164.155:40214 dst: /192.168.164.155:9866 | DataXceiver.java:304 java.net.SocketException: No buffer space available at sun.nio.ch.Net.connect0(Native Method) at sun.nio.ch.Net.connect(Net.java:454) at sun.nio.ch.Net.connect(Net.java:446) at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648) at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:192) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:495) at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:800) at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:138) at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:74) at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:265) at java.lang.Thread.run(Thread.java:748)
  • 配置描述 当需要MapReduce shuffle服务绑定特定IP时,需要在NodeManager实例所在节点的配置文件“mapred-site.xml”中(例如路径为:${BIGDATA_HOME}/ FusionInsight _HD_xxx/x_xx_NodeManager/etc/mapred-site.xml)设置如下参数。 表1 参数描述 参数 描述 默认值 mapreduce.shuffle.address 指定地址来运行shuffle服务,格式是IP:PORT,参数的默认值为空。当参数值为空时,将绑定localhost,默认端口为13562。 说明: 如果涉及到的PORT值和配置的mapreduce.shuffle.port值不一样时,mapreduce.shuffle.port将不会生效。 -
  • 配置描述 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 dfs.mover.auto.enable 是否开启数据副本迁移功能,该功能支持多种。默认值为“false”,表示关闭该特性。 false dfs.mover.auto.cron.expression HDFS执行自动数据迁移的CRON表达式,用于控制数据迁移操作的开始时间。仅当dfs.mover.auto.enable设置为true时才有效。默认值“0 * * * *”表示在每个整点执行任务。表达式的具体含义可参见表2。 0 * * * * dfs.mover.auto.hdfsfiles_or_dirs 指定集群执行自动副本迁移的HDFS文件或目录列表,以空格分隔。仅当dfs.mover.auto.enable设置为true时才有效。 - 表2 Cron表达式解释 列 说明 第1列 分钟,参数值为0~59。 第2列 小时,参数值为0~23。 第3列 日期,参数值为1~31。 第4列 月份,参数值为1~12。 第5列 星期,参数值为0~6,0表示星期日。
  • 配置场景 文件压缩可以减少储存文件的空间,并且提高数据从磁盘读取和网络传输的速度。HDFS有Gzip和Snappy这两种默认压缩格式。本章节为HDFS新增加的压缩格式LZC(Lempel-Ziv Compression)提供配置方法。这种压缩格式增强了Hadoop压缩能力。有关Snappy的详细信息,请参阅http://code.google.com/p/snappy/。 本章节适用于MRS 3.x及后续版本。
  • 配置步骤 MRS引入配置参数“dfs.pipeline.ecn”。当该配置启用时,DataNode会在写入通道超出负荷时从其中发出信号。客户端可以基于该阻塞信号进行退避,从而防止系统超出负荷。引入该配置参数的目的是为了使通道更加稳定,并减少不必要的取消或恢复操作。收到信号后,客户端会退避一定的时间(5000ms),然后根据相关过滤器调整退避时间(单次退避最长时间为50000ms)。 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 NameNode ECN配置 参数 描述 缺省值 dfs.pipeline.ecn 进行该配置后,DataNode能够向客户端发送阻塞通知。 false
  • 操作步骤 原则一:充分利用集群资源。 Job运行时,会让所有的节点都有任务处理,且处于繁忙状态,这样才能保证资源充分利用,任务的并发度达到最大。可以通过调整处理的数据量大小,以及调整map和reduce个数来实现。 reduce个数的控制使用“mapreduce.job.reduces”。 map个数取决于使用了哪种InputFormat,以及待处理的数据文件是否可分割。默认的TextFileInputFormat将根据block的个数来分配map数(一个block一个map)。通过如下配置参数进行调整。 参数入口: 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 表1 参数配置-1 参数 描述 默认值 mapreduce.input.fileinputformat.split.maxsize map输入信息应被拆分成的数据块的最大大小。 由用户定义的分片大小的设置及每个文件block大小的设置,可以计算分片的大小。计算公式如下: splitSize = Math.max(minSize, Math.min(maxSize, blockSize)) 如果maxSize设置大于blockSize,那么每个block就是一个分片,否则就会将一个block文件分隔为多个分片,如果block中剩下的一小段数据量小于splitSize,还是认为它是独立的分片。 - mapreduce.input.fileinputformat.split.minsize 可以设置数据分片的数据最小值。 0 原则二:控制reduce阶段在一轮中完成。 避免以下两种场景: 大部分的reduce在第一轮运行完后,剩下唯一一个reduce继续运行。这种情况下,这个reduce的执行时间将极大影响这个job的运行时间。因此需要将reduce个数减少。 所有的map运行完后,只有个别节点有reduce在运行。这时候集群资源没有得到充分利用,需要增加reduce的个数以便每个节点都有任务处理。 原则三:每个task的执行时间要合理。 如果一个job,每个map或reduce的执行时间只有几秒钟,就意味着这个job的大部分时间都消耗在task的调度和进程启停阶段,因此需要增加每个task处理的数据大小。建议一个task处理时间为1分钟。 控制单个task处理时间的大小,可以通过如下配置来调整。 参数入口: 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 表2 参数配置-2 参数 描述 默认值 mapreduce.input.fileinputformat.split.maxsize map输入信息应被拆分成的数据块的最大大小。 由用户定义的分片大小的设置及每个文件block大小的设置,可以计算分片的大小。计算公式如下: splitSize = Math.max(minSize, Math.min(maxSize, blockSize)) 如果maxSize设置大于blockSize,那么每个block就是一个分片,否则就会将一个block文件分隔为多个分片,如果block中剩下的一小段数据量小于splitSize,还是认为它是独立的分片。 - mapreduce.input.fileinputformat.split.minsize 可以设置数据分片的数据最小值。 0
  • 配置描述 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 dfs.disk.balancer.auto.enabled 是否开启自动执行HDFS DiskBalancer特性。默认值为“false”,表示关闭该特性。 false dfs.disk.balancer.auto.cron.expression HDFS 磁盘均衡操作的CRON表达式,用于控制均衡操作的开始时间。仅当dfs.disk.balancer.auto.enabled设置为true时才有效。默认值“0 1 * * 6”表示在每周六的1点执行任务。表达式的具体含义可参见表2。 0 1 * * 6 dfs.disk.balancer.max.disk.throughputInMBperSec 执行磁盘数据均衡时可使用的最大磁盘带宽。单位为MB/s,默认值为10,可依据集群的实际磁盘条件设置。 10 dfs.disk.balancer.max.disk.errors 设置能够容忍的在指定的移动过程中出现的最大错误次数,超过此阈值则移动失败。 5 dfs.disk.balancer.block.tolerance.percent 设置磁盘之间进行数据均衡操作时,各个磁盘的数据存储量与理想状态之间的差异阈值。例如,各个磁盘的理想数据存储量为1TB,此参数设置为10。那么,当目标磁盘的数据存储量达到900GB时,就认为该磁盘的存储状态就已经足够好了。取值范围[1-100]。 10 dfs.disk.balancer.plan.threshold.percent 设置在磁盘数据均衡中可容忍的两磁盘之间的数据密度阈值差。如果任意两个磁盘数据密度差值的绝对值超过了此阈值,意味着对应的磁盘应该进行数据均衡。取值范围[1-100]。 10 dfs.disk.balancer.top.nodes.number 该参数用来指定集群中需要执行磁盘数据均衡的Top N 节点。 5 表2为HDFS磁盘均衡操作的CRON表达式。使用此功能时,需要先将参数dfs.disk.balancer.auto.enabled设置为true。其它参数依据集群状况设置。 表2 CRON表达式解释 列 说明 第1列 分钟,参数值为0~59。 第2列 小时,参数值为0~23。 第3列 日期,参数值为1~31。 第4列 月份,参数值为1~12。 第5列 星期,参数值为0~6,0表示星期日。
  • 配置场景 DiskBalancer是一个在线磁盘均衡器,旨在根据各种指标重新平衡正在运行的DataNode上的磁盘数据。工作方式与HDFS的Balancer工具类似。不同的是,HDFS Balancer工具用于DataNode节点间的数据均衡,而HDFS DiskBalancer用于单个DataNode节点上各磁盘之间的数据均衡。 长时间运行的集群会因为曾经删除过大量的文件,或者集群中的节点做磁盘扩容等操作导致节点上出现磁盘间数据不均衡的现象。磁盘间数据不均衡会引起HDFS整体并发读写性能的下降或者因为不恰当的HDFS写策略导致业务故障。此时需要平衡节点磁盘间的数据密度,防止异构的小磁盘成为该节点的性能瓶颈。 本章节适用于MRS 3.x及后续版本。
  • 回答 当用户在distcp命令中使用webhdfs://时,会发生上述异常,是由于集群所使用的HTTP政策为HTTPS,即配置在“hdfs-site.xml”(文件路径为“客户端安装目录/HDFS/hadoop/etc/hadoop”)的“dfs.http.policy”值为“HTTPS_ONLY”。所以要避免出现此异常,应使用swebhdfs://替代webhdfs://。 例如: ./hadoop distcpswebhdfs://IP:PORT/testfile hdfs://IP:PORT/testfile1
  • 日志级别 HDFS中提供了如表2所示的日志级别,日志级别优先级从高到低分别是FATAL、ERROR、WARN、INFO、DEBUG,程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。 表2 日志级别 级别 描述 FATAL FATAL表示系统运行的致命错误信息。 ERROR ERROR表示系统运行的错误信息。 WARN WARN表示当前事件处理存在异常信息。 INFO INFO表示系统及各事件正常运行状态信息。 DEBUG DEBUG表示系统及系统调试信息。 如果您需要修改日志级别,请执行如下操作: 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面。 左边菜单栏中选择所需修改的角色所对应的日志菜单。 选择所需修改的日志级别。 保存配置,在弹出窗口中单击“确定”使配置生效。 配置完成后立即生效,不需要重启服务。
  • 通过云专线访问FusionInsight Manager 操作前请确保云专线服务可用,并已打通本地数据中心到线上VPC的连接通道。云专线详情请参考什么是云专线。 登录MRS管理控制台。 单击集群名称进入集群详情页。 在集群详情页面的“概览”页签,单击“集群管理页面”右侧的“前往 Manager”。 “访问方式”选择“专线访问”,并勾选“我确认已打通本地与浮动IP的网络,可使用专线直接访问MRS Manager。”。 浮动IP为MRS为您访问MRS Manager页面自动分配的IP地址,使用专线访问MRS Manager之前您确保云专线服务已打通本地数据中心到线上VPC的连接通道。 单击“确定”,进入MRS Manager登录页面,用户名使用“admin”,密码为创建集群时设置的admin密码。
  • 操作场景 MRS 3.x及之后版本的集群使用FusionInsight Manager对集群进行监控、配置和管理。用户在集群安装后可使用账号登录FusionInsight Manager。 当前支持以下几种方式访问FusionInsight Manager,请根据实际情况选择。 通过弹性IP访问FusionInsight Manager。 通过云专线访问FusionInsight Manager。 通过E CS 访问FusionInsight Manager。 其中弹性IP访问和专线访问可以在MRS集群管理控制台上进行切换,具体切换操作步骤如下: 登录MRS管理控制台,单击待操作的MRS集群,在集群“概览”页面单击“集群管理页面”后的,在打开的页面中进行切换。 如果不能正常登录组件的WebUI页面,请参考通过ECS访问FusionInsight Manager方式访问FusionInsight Manager。 集群处于以下状态时无法访问FusionInsight Manager: 启动中、停止中、停止、删除中、已删除、冻结。
  • 通过ECS访问FusionInsight Manager 进入MRS管理控制台。 在“现有集群”列表中,单击指定的集群名称。 记录集群的“可用区”、“虚拟私有云”、“集群管理页面”、“安全组”。 在管理控制台首页服务列表中选择“弹性云服务器”,进入ECS管理控制台,创建一个新的弹性云服务器。 弹性云服务器的“可用区”、“虚拟私有云”、“安全组”,需要和待访问集群的配置相同。 选择一个Windows系统的公共镜像。例如,选择一个标准镜像“Windows Server 2012 R2 Standard 64bit(40GB)”。 其他配置参数详细信息,请参见购买弹性云服务器。 如果ECS的安全组和Master节点的“默认安全组”不同,用户可以选择以下任一种方法修改配置: 将ECS的安全组修改为Master节点的默认安全组,请参见更改安全组。 在集群Master节点和Core节点的安全组添加两条安全组规则使ECS可以访问集群,“协议”需选择为“TCP”,“端口”需分别选择“28443”和“20009”。请参见创建安全组。 如果界面提示“添加安全组规则失败”,请检查安全组配额是否不足,请增加配额或删除不再使用的安全组规则。 在EIP管理控制台,申请一个弹性IP地址,并与ECS绑定。 登录弹性云服务器。 登录ECS需要Windows系统的账号、密码,弹性IP地址以及配置安全组规则。具体请参见Windows云服务器登录方式。 在Windows的远程桌面中,打开浏览器访问Manager。 Manager访问地址为“集群管理页面”地址。访问时需要输入集群的用户名和密码,例如“admin”用户。 如果使用其他集群用户访问Manager,第一次访问时需要修改密码。新密码需要满足集群当前的用户密码复杂度策略。请咨询管理员。 默认情况下,在登录时输入5次错误密码将锁定用户,需等待5分钟自动解锁。 注销用户退出Manager时移动鼠标到右上角 ,然后单击“注销”。
  • 使用Yarn客户端 安装客户端。 MRS 3.x之前版本请参考安装客户端章节。 MRS 3.x及之后版本请参考安装客户端章节。 以客户端安装用户,登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群为安全模式,执行以下命令进行用户认证。普通模式集群无需执行用户认证。 kinit 组件业务用户 直接执行Yarn命令。例如: yarn application -list
  • 相关任务 配置集群节点名称与IP地址映射 登录Manager,单击“主机管理”。 记录集群中所有节点的“主机名称”和“管理IP”。 在工作环境使用“记事本”打开“hosts”文件,将节点名称与IP地址的对应关系填写到文件中。 每个对应关系填写一行,填写效果例如: 192.168.4.127 node-core-Jh3ER 192.168.4.225 node-master2-PaWVE 192.168.4.19 node-core-mtZ81 192.168.4.33 node-master1-zbYN8 192.168.4.233 node-core-7KoGY 保存修改。
  • HDFS客户端常用命令 常用的HDFS客户端命令如下表所示。 更多命令可参考https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/CommandsManual.html#User_Commands 表1 HDFS客户端常用命令 命令 说明 样例 hdfs dfs -mkdir 文件夹名称 创建文件夹 hdfs dfs -mkdir /tmp/mydir hdfs dfs -ls 文件夹名称 查看文件夹 hdfs dfs -ls /tmp hdfs dfs -put 客户端节点上本地文件 HDFS指定路径 上传本地文件到HDFS指定路径 hdfs dfs -put /opt/test.txt /tmp 上传客户端节点“/opt/test.txt”文件到HDFS的“/tmp”路径下 hdfs dfs -get HDFS指定文件 客户端节点上指定路径 下载HDFS文件到本地指定路径 hdfs dfs -get /tmp/test.txt /opt/ 下载HDFS的“/tmp/test.txt”文件到客户端节点的“/opt”路径下 hdfs dfs -rm -r -f HDFS指定文件夹 删除文件夹 hdfs dfs -rm -r -f /tmp/mydir hdfs dfs -chmod 权限参数 文件目录 为用户设置HDFS目录权限 hdfs dfs -chmod 700 /tmp/test
  • 使用HDFS客户端 安装客户端,详细操作请参考安装客户端。 以客户端安装用户,登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群为安全模式,执行以下命令进行用户认证。普通模式集群无需执行用户认证。 kinit 组件业务用户 执行HDFS Shell命令。例如: hdfs dfs -ls /
  • Kafka UI Kafka UI提供Kafka Web服务,通过界面展示Kafka集群中Broker、Topic、Partition、Consumer等功能模块的基本信息,同时提供Kafka服务常用命令的界面操作入口。该功能作为Kafka Manager替代,提供符合安全规范的Kafka Web服务。 通过Kafka UI可以进行以下操作: 支持界面检查集群状态(主题,消费者,偏移量,分区,副本,节点) 支持界面执行集群内分区重新分配 支持界面选择配置创建主题 支持界面删除主题(Kafka服务设置了参数“delete.topic.enable = true”) 支持为已有主题增加分区 支持更新现有主题的配置 可以为分区级别和主题级别度量标准启用JMX查询
  • Kafka结构 生产者(Producer)将消息发布到Kafka主题(Topic)上,消费者(Consumer)订阅这些主题并消费这些消息。在Kafka集群上一个服务器称为一个Broker。对于每一个主题,Kafka集群保留一个用于缩放、并行化和容错性的分区(Partition)。每个分区是一个有序、不可变的消息序列,并不断追加到提交日志文件。分区的消息每个也被赋值一个称为偏移顺序(Offset)的序列化编号。 图1 Kafka结构
  • 参考 为什么在创建数据连接的界面上MRS Hive集群不显示? 出现该问题的可能原因有: 创建MRS集群时未选择Hive/HBase组件。 创建MRS集群时所选择的企业项目与工作空间的企业项目不同。 创建MRS数据连接时所选择的 CDM 集群和MRS集群网络不互通。 CDM集群作为网络代理,与MRS集群需网络互通才可以成功创建基于MRS的数据连接。 为什么Hive数据连接突然无法获取数据库或表的信息? 可能是由于CDM集群被关闭或者并发冲突导致,您可以通过切换agent代理来临时规避此问题。
  • 检查变量 “变量”部分显示在当前堆栈帧(即在“调用堆栈”部分中选定的堆栈帧)中可访问的元素,并包含以下部分: 局部变量:列出局部变量。 全局变量:列出全局变量,包括特殊(带双下划线)的变量。 返回值:在调试会话期间,当方法被多次调用时,该部分显示方法在上一步返回的值。这允许您观察值在方法调用之间如何变化。 您可以通过在变量上右键单击并从上下文菜单中选择“设置值”来修改变量的值。此外,您还可以使用“复制值”操作来复制变量的值,或者使用“复制为表达式”操作来复制一个用于访问该变量的表达式。 您还可以在“运行和调试”视图的“监视”部分中评估和监视变量和表达式。 您还可以在CodeArts IDE代码编辑器中直接评估和检查表达式的值。做法是当程序处于暂停状态时,将鼠标悬停在所需的表达式、变量或方法调用上。 父主题: 检查暂停的程序
  • 从代码编辑器启动调试会话 如果您不打算向您的程序传递任何参数,可以直接从代码编辑器开始一个调试会话。 在Python文件的代码编辑器中,单击编辑器边缘中的运行按钮(),并从弹出菜单中选择“调试”。或者,您可以右键单击代码编辑器,从上下文菜单中选择“调试 Python 文件”。Python 文件启动配置将被创建并自动运行。 创建的启动配置会自动保存,之后你可以在任何时候从CodeArts IDE主工具栏上的配置列表中选择它。 父主题: 在调试模式下运行程序
  • 测试代码 Python扩展支持使用unittest和pytest框架进行测试。CodeArts可以帮助您配置框架集成,并提供专用的“测试”视图,让您能够方便地识别和运行测试。 以下是一个如何创建和运行一个unittest测试的示例。 创建一个测试对象,也就是新建一个名为 “inc_dec.py” 的文件,它包含以下内容: def increment(x): return x + 1 def decrement(x): return x - 1 创建一个 “unittest” 测试来覆盖这个测试对象,即创建一个名为 “inc_decunittest.py” 的文件,包含以下内容: import inc_dec # The code to test import unittest # The test framework class Test_TestIncrementDecrement(unittest.TestCase): def test_increment(self): self.assertEqual(inc_dec.increment(3), 4) def test_decrement(self): self.assertEqual(inc_dec.decrement(3), 4) if __name__ == '__main__': unittest.main() 在CodeArts IDE中配置unittest框架集成。 单击CodeArts IDE底部面板中的“测试”按钮()打开“测试”视图,单击“Configure Python Tests”按钮。 在弹出的对话框中,选择您想要启用集成的测试框架,在本例中是 “unittest”。 在接下来的对话框中,选择包含测试源文件的项目文件夹。在我们的例子中,是项目根文件夹(“.”)。 下一个对话框中,选择用于标识测试文件的文件通配符模式,本例中为 “*test.py”。 在配置完框架集成后,CodeArts IDE会自动检测测试并在“测试”视图中显示它们。 现在,您可以使用各种命令(在命令面板(“Ctrl Ctrl” / “Ctrl+Shift+P”)中,在编辑器行号区,或在“测试”视图中)来运行和调试测试,包括运行单个测试文件和单个方法。 有关测试Python代码的更多详细信息,请参阅Python 测试文档。 父主题: 简介
  • 从启动配置中包含/排除测试 在“测试/排除测试”区域中,您可以列出要包含在启动配置范围内的测试或要排除的测试。 要向列表中添加测试,请单击“Add New”按钮()。 在打开的“添加测试”窗口中,找到所需的测试。使用代码补全功能(“Ctrl+I” / “Ctrl+空格键” / “Ctrl+Shift+空格键”)让CodeArts IDE列出可用的测试。 在“添加测试”窗口中,单击“Save”以将所选测试添加到列表中。 要从列表中删除测试,请选择它并单击“Remove Selected”按钮()。 父主题: unittest
  • 基本用法 通过按下 “Shift+Shift” / “Ctrl+Shift+A” 来启动SmartSearch。 输入搜索请求。要缩小搜索范围,例如仅搜索类成员或CodeArts IDE命令,可以在SmartSearch窗口中通过按下“Tab”/“Shift+Tab”来切换标签页,或者使用搜索查询语法。 使用光标在条目之间导航,并按下“Enter”键跳转到相应的位置或执行命令。另外,也可以双击所需的条目。要关闭SmartSearch窗口,请按下“Escape”键。 搜索查询语法 搜索运算符 父主题: 代码搜索
  • 搜索运算符 您可以使用AND和OR运算符或其组合来组成复杂的搜索查询,例如class:foo AND (method:bar OR method:baz)。 运算符 语法 描述 “AND” “AND”, “&”, “&&”, (“空格”字符) SmartSearch将定位与每个查询匹配的条目,并仅返回所有条件的交集条目。 “OR” “OR”, “|”, “||” SmartSearch将返回与提供的任何查询匹配的所有条目。 父主题: 基本用法
共100000条