- 921. Minimum Add to Make Parentheses Valid 使括号有效的最少添加
- 915. Partition Array into Disjoint Intervals 分割数组
- 932. Beautiful Array 漂亮数组
- 940. Distinct Subsequences II 不同的子序列 II
PinPoint是开源在github上的一款APM监控工具,它是由java编写的,用于大规模分布式系统的监控;它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。PinPoint支持的功能比较丰富,可以支持如下几种功能:
pipoint由pinpoint agent、pinpoint collector、pinpoint web、HBase 4部分组成;
架构图如下:
1)将安装包hbase-1.4.9-bin.tar.gz上传到服务器/home目录,并解压;
tar -xzvf hbase-1.4.9-bin.tar.gz
2)修改HBase配置文件hbase-site.xml
注:HBase支持HDFS存储,但是需要安装Hadoop等组件,这里为了方便,暂时先不使用HDFS。另外,生产环境建议搭HBase集群,这里暂时只搭HBase单节点。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///app/application/data/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/app/application/data/zookeeper</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>300000</value>
<description>加大zookeeper会话超时时间</description>
</property>
<property>
<name>hbase.regionserver.restart.on.zk.expire</name>
<value>true</value>
<description>设置 regionserver 起死回生</description>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>50</value>
<description>regionserver处理IO请求的线程数</description>
</property>
<property>
<name>hbase.zookeeper.property.tickTime</name>
<value>60000</value>
<description>Client端与zk发送心跳的时间间隔</description>
</property>
<property>
<name>zookeeper.session.timeout.localHBaseCluster</name>
<value>300000</value>
<description>本地模式HMasterCommandLine类中的startMaster方法会将zookeeper.session.timeout.localHBaseCluster设置给zookeeper.session.timeout,本地模式默认10000ms</description>
</property>
<property>
<name>hbase.localcluster.assign.random.ports</name>
<value>false</value>
<description>本地模式端口号是随机分配,取消随机端口才能变成默认端口</description>
</property>
</configuration>
3)修改启动文件hbase-env.sh的JAVA_HOME环境变量位置
vi /home/hbase-1.4.9/conf/hbase-env.sh
# 在27行左右的位置,修改如下
export JAVA_HOME=/opt/jdk1.8.0/
# 在124行开启自带zookeeper
export HBASE_MANAGES_ZK=true
4)配置环境变量
#配置环境变量HBASE_HOME
vi /etc/profile
#在末尾添加:
export HBASE_HOME=/home/hbase-1.4.9
#让环境变量生效
source /etc/profile
5)启动HBase
cd /home/hbase-1.4.9/bin
./start-hbase.sh
6)验证是否启动成功:
jps
启动成功会看到HMaster进程
7)初始化HBase的pinpoint库
执行pinpoint提供的Hbase初始化语句
cd /home/hbase-1.4.9/bin
./hbase shell /home/hbase-create.hbase
执行成功:
8)结果验证
方法1:进入数据库,查看初始化表
#进入数据库
cd /home/hbase-1.4.9/bin
./hbase shell
#查看初始化表
list
方法2:登录web,查看初始化数据是否成功;
HbaseWeb地址 : http://192.168.197.129:16010/master-status,IP地址为hbase数据库所在服务器的IP地址
9)命令
进入自带zookeeper模式命令
./hbase zkcli
进入hbase命令
./hbase shell
pinpoint-collector-boot-2.3.3.jar默认端口为8081,可自行修改application.yml的端口地址
nohup java -Dpinpoint.zookeeper.address=localhost -jar /home/pinpoint/pinpoint-collector-boot-2.3.3.jar >/var/logs/pinpoint-collector.log 2>&1 &
pinpoint-collector-boot-2.3.3.jar默认端口为8080,可自行修改application.yml的端口地址
nohup java -Dpinpoint.zookeeper.address=localhost -jar /home/pinpoint/pinpoint-web-boot-2.3.3.jar >/var/logs/pinpoint-web.log 2>&1 &
浏览器上输入:http://ip:8080,可以进入到PinPoint主界面。由于此时还没有在被测服务上运行agent,因此页面上没有应用可以显示。
注:PinPoint-Agent需要与被测应用安装在一起
1)修改agent配置文件
vim /home/pinpoint-agent-2.3.3/profiles/release/pinpoint.config
profiler.collector.ip=192.168.197.131 hbase服务器地址
profiler.transport.grpc.collector.ip=192.168.0.10 即安装pinpoint-collector的虚拟机IP
profiler.sampling.counting.sampling-rate=1采样率配置,访问量不大的情况,建议全部采集
2)增加监控的服务的启动命令
# 启动应用A
nohup java -javaagent:/root/pinpoint/pinpoint-agent-2.3.3/pinpoint-bootstrap-2.3.3.jar -Dpinpoint.agentId=demoA -Dpinpoint.applicationName=demoA -jar demoA.jar > nohup.out 2>&1 &
刷新PinPoint页面,即可看到应用,使用JMeter客户端工具对demoA发起调用,则可以显示出调用关系。
collector默认输出级别为info,当服务多,访问高时,日志量比较大,可以设置为warn
文件路径:pinpoint-collector-boot-2.3.3.jar\BOOT-INF\classes\profiles\release\log4j2.xml
修改hbase/conf/hbase-env.sh配置文件
修改/新增配置如下:
注意修改GC日志路径/app/application/linux/hbase-1.4.9为实际部署路径
export HBASE_HEAPSIZE=4G
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xms4g -Xmx4g"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xloggc:/app/application/linux/hbase-1.4.9/logs/hbase.gc.log -XX:ErrorFile=/app/application/linux/hbase-1.4.9/logs/hs_err_pid.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -Xmx4g -Xms4g"
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我可以从哪里下载 cakephp 1.3 的手册.......? 最佳答案 强烈建议不要下载手册,因为它与开发的方式相同,并且可以改进和更改。但是,我承认需要离线副本,您可以在此处找到有关在哪里查看以
我想使用 GKSession 连接两台设备,其中一台作为服务器,另一台作为客户端。使用此配置我无法使用 GKPeerPickerController。 我在连接两个设备时遇到问题: 仅使用蓝牙:不可能
我花了相当多的时间寻找教程并在 Web 服务目录上实现签名和加密。现在我需要扩展该功能以允许每个用户拥有自己的签名和加密 key 。 出于这个原因,我开始四处寻找一些关于如何使用 WSS4J 拦截器的
使用ggplot2我通常使用geom_text和position=jitter之类的东西来注释我的图。 但是 - 对于一个漂亮的情节,我经常发现手动注释是值得的。如下所示: data2 <- stru
谁能推荐一本好的 ANSI SQL 引用手册吗? 我不一定是指教程,而是当您需要基本或更深入的解释或示例时可以查找的适当引用文档。 目前我正在使用W3Schools SQL Tutorial和 SQL
我正在尝试为我的 CS 1 类(class)编写代码。 代码的要点是编写一个代码,您可以在其中从一百美元的钞票中进行任何金额的找零,我需要归还适当的钞票和硬币。 我必须手动编写 JFrame 如果有人
我正在阅读 shellcoder 的手册。我正在跟踪,但由于某种原因无法让我的 shellcode 运行。我已经编译了该程序 gcc -mpreferred-stack-boundary=2 -m32
我的作业(不是家庭作业,只是“如果你能做到就试试”的事情)是使用位操作来加密和解密 .txt 文件。 这是程序。它成功打开文件进行读/写,但将所有 0 和空格放入 output.txt 文件而不是预期
我在谷歌上搜索了很多关于 C 的不必要结果。我希望能在本地获得最好的 C 手册。我发现引用资料很有用 here.我想自己做笔记并删除手册。 Can I manage it somehow like a
我在这个例子中 w.r.t. shellcoder's handbook(second edition),还有一些关于栈的问题 root@bt:~/pentest# gdb -q sc Readin
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
所以我有一份 PDF 手册,我们正在尝试为其创建可打印的 HTML 版本。我遇到了一些障碍,包括: 100% 缩放与缩小以适合(FF/IE 中的默认设置似乎不同) 只打印一页,后面没有空格页脚(或者甚
当我开始使用 PHP(大约 10 年前)时,最吸引我的是 .chm 格式的手册。我过去常常让“索引”选项卡保持打开状态,然后在其中输入我需要的任何内容,它会引导我进入一个漂亮、简洁但详尽的引用页面。
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我想更好地了解如何使用 LLDB 调试我的 iOS 代码。我经常看到我的同事使用提示进行调试,例如查看变量的值等等。我在哪里可以找到一些关于如何在命令行上使用 LLDB 调试器的文档? 提前致谢。 最
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
Springer 的 Consolidated Ada Reference Manual 2005 Edition (ISO/IEC 8652:2007(E), Ed. 3) 和 Annotated
我遇到过几个关于使用 mysql 连接器/C++ 的文档,其中所有文档都使用不同的函数来完成相同的事情。例如 `sql::mysql::MySQL_Driver *driver; sql::Conne
我是一名优秀的程序员,十分优秀!