OpenTSDB的编译、安装、支持中文显示

解决opentsdb无法写入和显示中文的问题

官网地址http://opentsdb.net/docs/build/html/user_guide/writing.html
The following rules apply to metric and tag values:
Strings are case sensitive, i.e. "Sys.Cpu.User" will be stored separately from "sys.cpu.user"
Spaces are not allowed
Only the following characters are allowed: a to z, A to Z, 0 to 9, -, _, ., / or Unicode letters (as per the specification)
官网这里明确说明了。只支持a to z, A to Z, 0 to 9, -, _, ., /这些以及Unicode的字母,如果修改的话只能修改源码

解决方案
进入opentsdb 的github地址下载2.3.0源码
Opentsdb的源码使用的是ISO-8859-1,要支持中文源码要改成UTF-8
解压源码,进入到opentsdb-2.3.0目录下,运行
perl -pi -e 's|ISO-8859-1|UTF-8|g' `find ./ -type f`
进入到opentsdb-2.3.0/src/tsd目录下,查看WordSplitter.java文件
已变成UTF-8
完成这一步,之后编译的话,会解决中文不能写入的问题,但opentsdb的页面上显示仍然会乱码,下面是解决中文乱码的问题
进入到opentsdb-2.3.0/src/graph目录,有个Plot.java文件

在291行处
加上红线那一行
"set term png font '/usr/share/fonts/truetype/chinese/simsun.ttc,12'\n"
/usr/share/fonts/truetype/chinese/simsun.ttc目录下放的是中文字体(宋体),确保这个目录下存在这个字体,如没有,可以在window的字体中拷贝,或者
在这个地址中下载,放到对应的目录下即可
操作完成,在opentsdb-2.3.0目录下执行
./build.sh
开始编译,一般不会有问题,编译完成后执行
env COMPRESSION=NONE HBASE_HOME=/home/hadoop/hbase src/create_table.sh
此命令是在hbase里生成四张表(如表已存在,可忽略)
修改src目录下的opentsdb.conf
# 接受请求的端口
tsd.network.port = 4343
# 接受请求的网卡
tsd.network.bind = 0.0.0.0
# HTTP客户端的GUI静态页面,这个使用默认值即可。
tsd.http.staticroot = ./staticroot
# cache 路径,最好提前创建好,保证读写权限。
tsd.http.cachedir = /home/opentsdb/tsdb_cache
# 是否能自动创建统计指标
tsd.core.auto_create_metrics = true

修改完成。
进入到build目录下执行
./tsdb mkmetric sys.batch.test
创建sys.batch.test的metric
运行
./tsdb tsd --port=4343 --staticroot=./staticroot --cachedir=/home/hadoop/app/opentsdb-2.3.0/opentsdb_cache
完成启动,输入数据(tags为中文),在
界面可以看见输出

以上为测试结果。有什么问题可以再联系

参考链接
中文入库问题

重新编译opentsdb

中文乱码问题
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值