-
目前OpenTSDB提供的地址是 region内可访问
-
场景介绍本项目以某水务公司锅炉异常检测为实例,引导用户熟悉实时数据接入、实时数据处理及实时数据展示。通过该项目引导用户熟悉华为云的DIS(数据接入服务)、CS(实时流计算服务)、CloudTable(表格存储服务)服务的使用。我们将模拟水务设备实时产生的数据,将其上传至华为云,并通过华为云服务对锅炉进行异常检测,并提供报表按不同维度展示过去一段时间锅炉的运行状态数据,以便在锅炉异常时产生告警及持续观察锅炉运行状态。基本场景如下图所示:图1 基本场景用户期望通过检测,上报锅炉运行情况,针对锅炉温度、压力、水位等指标超过阈值后通知区域巡检员进行紧急处理。并通过持续观测实时数据,以判断锅炉运行的健康状态,进而通过工程维修组对锅炉进行更换、维修等。数据介绍如下为监控设备检测到的设备数据示例(一条记录)。{"equId":"15","equType":"2","zoneId":"1","uploadTime":1527000545560,"runningTime":52.0,"temperature":66.9,"pressure":1.31,"waterLine":42.6,"targetTemperature":68.0,"targetPressure":2.07,"targetWaterLine":38.0,"feedWater":0.116,"noxEmissions":50.3,"unitLoad":83.9}公有云方案方案架构:锅炉检测设备获取设备运行数据后,通过DIS上传至华为云,CloudStream配置数据处理规则,在异常情况下触发短信告警。同时检测数据进入CloudTable(OpenTSDB)中,通过Grafana持续观测设备运行数据,以获取设备运行的健康状态。图1 方案架构使用到的华为云服务:DIS:数据接入服务,将检测设备上的数据上传至华为云,并实时导入到华为云CloudStream服务。CloudStream:实时流计算服务,可配置数据处理规则,并在异常情况下触发SMN发送告警短信。CloudTable:表格存储服务,提供OpenTSDB,可以通过Grafana对接该服务,实时观测设备运行情况并作出设备健康状态判断。SMN:消息通知服务,订阅手机短信通知,使手机可以接受到设备告警短信,例如,锅炉压力过大短信告警。ECS:弹性云服务器,预安装了EI实时数据演示DemoUI,用户通过镜像快速对接实践环境,实现数据展示功能。例如,在本场景中,用户可以通过WebUI进行锅炉监控查询。DLF:数据湖工厂,购买“IoT实时数据处理和存储”套餐,可以对DIS、CloudStream、CloudTable、DemoUI一键开通和配置,快速实现一个IoT实时流处理的应用。操作指导参考以下指导便可简单几步快速实现上述场景的流应用:https://support.huaweicloud.com/bestpractice-cloudtable/cloudtable_07_0002.html
-
Grafana是在网络架构和应用分析中最流行的时序数据展示工具,并且也在工业控制、自动化监控和过程管理等领域有着广泛的应用。grafana有热插拔控制面板和可扩展的数据源,目前已经支持绝大部分常用的时序数据库。特别是对接OpenTSDB,具有很好的兼容性。环境准备Grafana需要运行在一个单独的ECS服务器上。1、先创建一个CloudTable集群,创建的时候必须包含OpenTSDB功能。2、创建一个与CloudTable相同VPC和安全组的ECS服务器,该ECS服务器需要满足如下条件: A. 操作系统必须为Linux,本文为了方便起见,使用SUSE Enterprise 12 SP2 64bit。如果需要使用其它版本的Linux系统,请参考http://docs.grafana.org/installation/rpm/ B. ECS的硬件配置最小需要1核2GB内存以上。建议使用4核8GB以上的配置,以获得更好的性能。 C.需要配置EIP。建议EIP的网速配置高一些。 D.确认安全组中没有限制访问该ECS的3000端口。 安装Grafana使用SSH工具登录ECS服务器后,通过如下方法可以快速安装Grafana1、进入/opt目录,并执行如下命令获取Grafana软件wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm2、安装Grafana软件sudo rpm -i --nodeps grafana-5.1.3-1.x86_64.rpm3、启动Grafana软件sudo service grafana-server start说明:如果ECS是其它操作系统,安装Grafana的方法可以参考:http://docs.grafana.org/installation/rpm/ 配置GrafanaGrafana需要接入到CloudTable的OpenTSDB服务,可以执行如下步骤进行配置:1. Grafana提供web服务,所以在浏览器中可以登录Grafana服务。例如ECS服务器的EIP地址为XXX.XXX.XXX.XXX的话,那么Grafana的服务地址为:http://XXX.XXX.XXX.XXX:30002. 在Grafana的登录页面中输入用户名和密码。默认的用户名密码都是admin。3. 进入Grafana的主页后,首先需要创建一个Data Source。4. 在Data Soure的配置页面中,在【Name】中输入自定义的名字,在【Type】中选择“OpenTSDB”,在【URL】中输入CloudTable的OpenTSDB的URL,在【Version】中选择“==2.3“版本。其中,CloudTable的OpenTSDB的URL,可以在CloudTable集群信息中获取到。5. 配置后,点击【Save & Test】,如果出现【Data source is working】表示配置成功。 Grafana使用配置Data Source完毕后,就可以使用Grafana的功能了。具体的使用方法,可以参考Grafana的官方文档http://docs.grafana.org/guides/getting_started/?spm=a2c4g.11186623.2.4.OmTEzV下面简要说明一下如何快速创建一个Dashboard:1. 首先在Grafana的主页左边可以快速进入创建Dashboard的页面2. 进入Dashboard的创建页面后,可以选择创建多种类型的Dashboard。这里我们选择创建一个【Graph】3. 进入Graph的创建页面后,我们继续进入编辑页面。4. 进入编辑页面后,我们可以选择需要查询的时间范围。时间范围可以自己输入,也可以使用已经预定义好的时间标签。5. 然后继续在编辑页面中编辑OpenTSDB数据的查询条件。【Metric】与【Aggregator】是必选项。同时还可以根据需要选择是否使用Down Sample、Filters等其它功能。6、假设OpenTSDB中已经**了如下的数据:{"metric":"money", "timestamp":1527037556, "value":100, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037566, "value":105, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037576, "value":150, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037586, "value":90, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037596, "value":80, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037606, "value":70, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037616, "value":180, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037626, "value":100, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037636, "value":110, "tags":{"card":"card1"}}{"metric":"money", "timestamp":1527037646, "value":120, "tags":{"card":"card1"}} {"metric":"money", "timestamp":1527037556, "value":200, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037566, "value":210, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037576, "value":180, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037586, "value":190, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037596, "value":230, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037606, "value":250, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037616, "value":200, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037626, "value":180, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037636, "value":199, "tags":{"card":"card2"}}{"metric":"money", "timestamp":1527037646, "value":220, "tags":{"card":"card2"}}经过上面的设置后,我们可以得到一个很美观的图形了。Grafana还有很多好用的功能,快点来申请一个CloudTable集群试一下吧。
-
【摘要】 华为云表格存储服务CloudTable正式商用 华为云表格存储服务CloudTable正式商用表格存储服务(CloudTable Service,简称CloudTable)是华为云基于Apache HBase提供的分布式、可伸缩、全托管的毫秒级NoSQL数据存储服务。它提供了毫秒级的随机读写能力,适用于海量结构化数据、半结构化数据存储和查询应用。同时,基于OpenTSDB和GeoMesa提供了强大的时序数据库能力和时空大数据查询和分析能力。CloudTable为什么要Cloud化在跟我们的一些客户访谈之后,我们总结出了,对于有以下几类诉求的业务,会期望将业务搬迁或构建到云上:业务访问量可能出现巨大的波峰和波谷例如一些电商业务,在当前火热的618/双11的活动大促期间,业务量会呈现暴增,大促之后可能会出现急剧的跌落,然后慢慢恢复到正常水平。还有一些比如专门针对世界杯这类只在确定的一个小时间范围发生的赛事相关的业务,本身就是只需要存在一段时间。此时对公有云强大的弹性伸缩和按需付费的能力有着强烈的诉求。同时,HBase本身就具有良好的横向扩展能力以及SchemaLess特性与这类业务形成了非常好的契合,CloudTable基于此打造可以更适用于灵活业务特征的数据存储、查询服务。业务刚起步或成本更敏感对于线下搭建HBase/OpenTSDB/GeoMesa集群,由于增加机器难度大,因此需要一开始投资较多的资源,造成较大的资金压力和较多的资源浪费。基于公有云ECS自建集群,比前者有了很大的进步,至少ECS可以很好的扩容。而对于底层存储仍然需要预先规划足够的资源。CloudTable不仅具有公有云的弹性扩容能力,还具有底层存储Serverless化特点,存储资源完全按需,小于5GB时,存储免费。极大减少投入成本。运维难、费时费人力只想专注于业务开发而不是对基础平台的专研和维护对于这部分诉求,我只想说非常理解你,找CloudTable就对了。HBase起源于Google三驾马车之BigTable,其架构的复杂程度以及使用的门槛之高基本可以说是这三驾马车之首了。要想用好维护好他,需要有很深的功力。CloudTable是全托管服务,免运维,背后还有一支强大的专家队伍进行支撑,免除你的后顾之后。综上所述,当我们谈CloudTable的时候,我们在谈的是能给你解决什么问题。下面我们用一张图介绍一下CloudTable是什么,能解决什么问题。更多精彩内容,请扫描下方二维码关注“华为云”公众号~ 【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
-
本帖最后由 RamboZhong 于 2018-5-24 15:47 编辑Grafana是在网络架构和应用分析中最流行的时序数据展示工具,并且也在工业控制、自动化监控和过程管理等领域有着广泛的应用。grafana有热插拔控制面板和可扩展的数据源,目前已经支持绝大部分常用的时序数据库。特别是对接OpenTSDB,具有很好的兼容性。 环境准备Grafana需要运行在一个单独的ECS服务器上。 [*]先创建一个CloudTable集群,创建的时候必须包含OpenTSDB功能。 [*]创建一个与CloudTable相同VPC和安全组的ECS服务器,该ECS服务器需要满足如下条件: [*]操作系统必须为Linux,本文为了方便起见,使用SUSE Enterprise 12 SP2 64bit。如果需要使用其它版本的Linux系统,请参考http://docs.grafana.org/installation/rpm/ [*]ECS的硬件配置最小需要1核2GB内存以上。建议使用4核8GB以上的配置,以获得更好的性能。 [*]需要配置EIP。建议EIP的网速配置高一些。 [*]确认安全组中没有限制访问该ECS的3000端口。 安装Grafana使用SSH工具登录ECS服务器后,通过如下方法可以快速安装Grafana1、进入/opt目录,并执行如下命令获取Grafana软件 wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm2、安装Grafana软件sudo rpm -i --nodeps grafana-5.1.3-1.x86_64.rpm 3、启动Grafana软件sudo service grafana-server start 说明:如果ECS是其它操作系统,安装Grafana的方法可以参考:http://docs.grafana.org/installation/rpm/ 配置GrafanaGrafana需要接入到CloudTable的OpenTSDB服务,可以执行如下步骤进行配置:1. Grafana提供web服务,所以在浏览器中可以登录Grafana服务。例如ECS服务器的EIP地址为XXX.XXX.XXX.XXX的话,那么Grafana的服务地址为:http://XXX.XXX.XXX.XXX:30002. 在Grafana的登录页面中输入用户名和密码。默认的用户名密码都是admin。3. 进入Grafana的主页后,首先需要创建一个Data Source。158644. 在Data Soure的配置页面中,在【Name】中输入自定义的名字,在【Type】中选择“OpenTSDB”,在【URL】中输入CloudTable的OpenTSDB的URL,在【Version】中选择“==2.3“版本。其中,CloudTable的OpenTSDB的URL,可以在CloudTable集群信息中获取到。158985. 配置后,点击【Save & Test】,如果出现【Data source is working】表示配置成功。15866 Grafana使用配置Data Source完毕后,就可以使用Grafana的功能了。具体的使用方法,可以参考Grafana的官方文档http://docs.grafana.org/guides/getting_started/?spm=a2c4g.11186623.2.4.OmTEzV下面简要说明一下如何快速创建一个Dashboard:1. 首先在Grafana的主页左边可以快速进入创建Dashboard的页面158672. 进入Dashboard的创建页面后,可以选择创建多种类型的Dashboard。这里我们选择创建一个【Graph】158683. 进入Graph的创建页面后,我们继续进入编辑页面。158694. 进入编辑页面后,我们可以选择需要查询的时间范围。时间范围可以自己输入,也可以使用已经预定义好的时间标签。158705. 然后继续在编辑页面中编辑OpenTSDB数据的查询条件。【Metric】与【Aggregator】是必选项。同时还可以根据需要选择是否使用Down Sample、Filters等其它功能。158716、假设OpenTSDB中已经写入了如下的数据。下面是写入数据的命令,在ECS服务器上执行即可。其中【OpenTSDB的URL】需要替换为真实的OpenTSDB的URL。curl -i -X POST -d ´{"metric":"money", "timestamp":1527037556, "value":100, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037566, "value":105, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037576, "value":150, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037586, "value":90, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037596, "value":80, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037606, "value":70, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037616, "value":180, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037626, "value":100, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037636, "value":110, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037646, "value":120, "tags":{"card":"card1"}}´ http://【OpenTSDB的URL】:4242/api/put?sync curl -i -X POST -d ´{"metric":"money", "timestamp":1527037556, "value":200, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037566, "value":210, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037576, "value":180, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037586, "value":190, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037596, "value":230, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037606, "value":250, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037616, "value":200, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037626, "value":180, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037636, "value":199, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?synccurl -i -X POST -d ´{"metric":"money", "timestamp":1527037646, "value":220, "tags":{"card":"card2"}}´ http://【OpenTSDB的URL】:4242/api/put?sync经过上面的设置后,我们可以得到一个很美观的图形了。15872Grafana还有很多好用的功能,快点来申请一个CloudTable集群试一下吧。
-
不同的业务场景下,往往需要针对具体业务场景对系统进行性能调优,以获得最佳性能。CloudTable提供了丰富的可配置参数接口,可以方便用户根据自身的业务特征来进行性能优化。以下针对随机读密集型、顺序读密集型、写密集型三种典型的业务场景,给出优化思路和方法。1.随机读密集型思路:对于随机读密集型的工作负载,可以主要从如下2点思考进行优化:(1)高效利用缓存(2)更好地索引配置参数介绍建议hfile.block.cache.size块缓存是读缓存(LRU)。该属性定义块缓存可以使用的堆的最大百分比对于随机读密集型负载,增加缓存使用的堆的百分比hbase.regionserver.global.memstore.lowerLimithbase.regionserver.global.memstore.upperLimit这两个参数可以限定MemStore可以使用的堆的最大百分比对于随机读密集型负载,想通过增加块缓存占用堆的百分比(hfile.block.cache.size)来提升读性能时,需要同步使用这2个参数来减少MemStore占用的百分比HFile数据块大小HFile数据块大小可以在创建表的时候,通过BLOCKSIZE属性来指定。默认情况下,HFile Block size是64KB,通常来说,该值较为合理。但在随机读密集型负载下,可以尝试将该值减小,通过减少IO交互来提升随机读性能。布隆过滤器布隆过滤器可以通过在创建表的时候,通过BLOOMFILTER属性来指定。打开布隆过滤器可以减少为查找指定行的Key Value对象而读取的HFile数量。当值支持多种类型的布隆过滤器激进缓存可以在创建表的时候,通过IN_MEMORy属性来指定。该参数可以在列族层次设置,以便该列族比其他列族更加激进的进行缓存。该设置可以尽可能多的缓存数据,以此来提升读性能。合理的选择开启激进缓存的列族是性能调优的关键。关闭其他表和列族的缓存可以在列族层次设置,在读的时候不在BlockCache中进行缓存。通过创表中的BLOCKCACHE属性设置如果有一些列族被用于随机读而其他的列族没有被用到,没有被用到的列族可能会污染缓存。关闭它们的缓存会提升你的缓存命中率2.顺序读密集型思路:对于顺序读密集型的工作负责,读缓存不会带来太多好处,甚至有可能使用缓存比不使用缓存需要更频繁的访问硬盘。针对顺序度密集型的负载,可以考虑通过增加每次访问硬盘时的预读数据量来提高性能。配置参数介绍建议HFile数据块大小HFile数据块大小可以在创建表的时候,通过BLOCKSIZE属性来指定。数据块越大,每次访问硬盘可以获取的数据就越多,在顺序读场景下,可以有效提升性能hbase.client.scanner.caching该参数定义了扫描器上调用next方法时取回的行的数量。该数值越高,扫描操作时客户端需要向RegionServer发起的RPC调用越少,性能也就越高。代价是,该数字越高,客户端使用的内存越多。通过Scan.setCacheBlocks()API关闭数据块的缓存该参数定义被扫描的数据块是否应该放进块缓存扫描通常带来顺序读,在顺序读场景下,缓存不仅起不到正面作用,反而会因为连续的换入换出影响性能。因此对于大规模扫描操作,通过将该参数置为false来将数据块的cache关闭是一个好选择。关闭表缓存可以在设置列族时指定同上3.写密集型思路:因为在flush、Compaction、split过程中,会带来大量的读写IO,影响性能。所以,在写密集型业务下,可以通过避免频繁的flush,compaction,split来提升性能。配置参数介绍建议hbase.hregion.max.filesize该参数定义了region对应的存储文件的最大大小。如果列族的存储文件超过这个大小,那么该region被拆分。region越大意味着在写入时拆分越少。在写密集场景下,可以尝试调高该参数来提升性能。为表提前做的预分区在创建表时,可以指定为表做提前预分区通过提前做预分区,来避免写入过程中region分裂来影响性能。hbase.hregion.memstore.flush.size该参数定义了memstore的大小,当memstore超过这个值时,则会被flush到硬盘中。一个周期性运行的线程会检查memstore的大小通过调大该参数,可以减少生成的hfile数量,进而减少compaction次数。hbase.hstore.blockingWaitTime当到达Hfile的数量限制时(由hbase.hstore.blockingStoreFiles参数指定),阻塞hregion更新数据的时间。调小该参数值,可以减小阻塞时间hbase.hstore.blockingStoreFiles阻塞写入的最大Hfile数量值调大该参数值,可以降低或避免因hfile数量过多导致的阻塞(在写密集业务下,hfile数量会增长较快)hbase.hstore.compaction.min可以运行compaction的符合条件的最少hfile数量调大该值,可以减少hfile被compaction的总次数,进而减少Compaction操作处理的总数据量。hbase.hstore.compaction.max一次minor compaction所能选择的最大hfile数量调大该值,可以减少hfile被compaction的总次数,进而减少Compaction操作处理的总数据量。hbase.hstore.compaction.max.size超过该值得hfile将不会被选中做compaction大文件做compaction的性价比很低,通过适当调小该值,可以让较大的文件,避免被选中做compaction,减少IO占用。
-
如何访问CloudTable集群?
-
创建CloudTable集群要准备什么?
-
为什么要选择CloudTable服务?
-
使用CloudTable服务时需要关注什么?
-
本帖最后由 大脸猫 于 2017-11-7 17:00 编辑[color=rgb(0,0,0)]CloudTable集群能够提供什么服务?
上滑加载中
推荐直播
-
华为AI技术发展与挑战:集成需求分析的实战指南
2024/11/26 周二 18:20-20:20
Alex 华为云学堂技术讲师
本期直播将综合讨论华为AI技术的发展现状,技术挑战,并深入探讨华为AI应用开发过程中的需求分析过程,从理论到实践帮助开发者快速掌握华为AI应用集成需求的框架和方法。
去报名 -
华为云DataArts+DWS助力企业数据治理一站式解决方案及应用实践
2024/11/27 周三 16:30-18:00
Walter.chi 华为云数据治理DTSE技术布道师
想知道数据治理项目中,数据主题域如何合理划分?数据标准及主数据标准如何制定?数仓分层模型如何合理规划?华为云DataArts+DWS助力企业数据治理项目一站式解决方案和应用实践告诉您答案!本期将从数据趋势、数据治理方案、数据治理规划及落地,案例分享四个方面来助力企业数据治理项目合理咨询规划及顺利实施。
去报名
热门标签