ピンポイント入門
Pinpointは、Javaで記述された大規模分散システム用のAPMツールです。このようなツールをチェーンシステムや分散追跡システムと呼ぶことを好む人もいます。フロントエンドがバックエンドへのクエリリクエストを開始し、バックエンドサービスが複数のサービスを呼び出し、各サービスが他のサービスを呼び出し、最終的に結果を返し、ページに要約する場合があることはわかっています。特定のリンクに異常が発生した場合、エンジニアが問題の原因となったサービスコールを正確に特定することは困難です。ピンポイントなどの関連ツールの機能は、各リクエストの完全なコールリンクを追跡し、各サービスのパフォーマンスを収集することです。エンジニアが問題をすばやく特定できるようにするためのデータ。Githubアドレス:https://github.com/naver/pinpoint
アーキテクチャ図は次のとおりです(写真は公式Webサイトからのものです)。
アーキテクチャの説明:
-
ピンポイント-コレクター:さまざまなパフォーマンスデータを収集します
-
Pinpoint-Agent:実行しているアプリケーションに関連付けられているプローブ
-
Pinpoint-Web:収集したデータをWEBページの形式で表示します
- HBaseストレージ:収集されたデータはHBaseに保存されます
ピンポイントビルド
ここではデータをHDFSに直接保存するため、全体的な計画は次のようになります。
ソフトウェアバージョン:
JDKをインストールします
JDKをoptディレクトリに解凍し、環境変数を構成します
tar xf jdk-8u131-linux-x64.tar.gz -C /opt
vim / etc / profile
export JAVA_HOME=/opt/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
環境変数をロードする
source /etc/profile
パスワードなしで構成する
10.2.42.61、10.2.42.62、および10.2.42.63ノード間の相互信頼を構成します。これらのノードは同時に3つを操作できます。
ssh-keygen
ssh-copy-id 10.2.42.61
ssh-copy-id 10.2.42.62
ssh-copy-id 10.2.42.63
ssh-copy-idがない場合は、次のコマンドを使用してインストールします
yum -y install openssh-clients
ホストマッピングの構成
ホストマッピングを使用して5つのホストを構成する必要があります。
vim / etc / hosts
10.2.42.61 DCA-APP-COM-pinpoint-HBaseMaster
10.2.42.62 DCA-APP-COM-pinpoint-HBaseSlave01
10.2.42.63 DCA-APP-COM-pinpoint-HBaseSlave02
Zookeeperクラスターをインストールします
インストールパッケージをoptディレクトリに解凍すると、3つを同時に操作できます。
tar xf zookeeper-3.4.10.tar.gz -C /opt/
cd /opt/zookeeper-3.4.10/conf
cp zoo_sample.cfg zoo.cfg
zoo.cfgに来ました
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/data/zookeeper/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=10.2.42.61:12888:13888
server.2=10.2.42.62:12888:13888
server.3=10.2.42.63:12888:13888
データディレクトリを作成する
mkdir /data/zookeeper/data -p
10.2.42.61にキャンペーンIDを追加します
echo 1 > /data/zookeeper/data/myid
10.2.42.62にキャンペーンIDを追加します
echo 2 > /data/zookeeper/data/myid
10.2.42.63にキャンペーンIDを追加します
echo 3 > /data/zookeeper/data/myid
サービス開始
/opt/zookeeper-3.4.10/bin/zkServer.sh start
クラスターステータスの表示
[root@DCA-APP-COM-pinpoint-HBaseMaster data]# /opt/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
Hadoopクラスターをインストールします
インストールファイルをoptディレクトリに解凍します。注:特別な指示がない場合、次の操作は3台のマシンで同時に実行されます。
tar xf hadoop-2.8.3.tar.gz -C /opt/
Hadoop構成ファイルのディレクトリに入り、構成します
cd /opt/hadoop-2.8.3/etc/hadoop
構成しhadoop-env.shは、Javaの動作環境を指定する
のvim hadoop-env.shのHadoopの
#export JAVA_HOME=${JAVA_HOME} # 默认就是这个,所以实际上这一步可以跳过
export JAVA_HOME=/opt/jdk1.8.0_131
構成するコア-site.xmlには、アクセスにHadoopのWebインターフェイスにアクセスするために指定する
Vimのコア-site.xmlの
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://10.2.42.61:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>10.2.42.61:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 指定namenode数据存放临时目录,自行创建 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/hadoop/dfs/name</value>
</property>
<!-- 指定datanode数据存放临时目录,自行创建 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data/hadoop/dfs/data</value>
</property>
</configuration>
mapreduceのタスク構成であるmapred-site.xmlを構成すると、完了したジョブのステータスを表示できます。
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>0.0.0.0:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>0.0.0.0:19888</value>
</property>
</configuration>
ヤーンサイト.xmlを構成します。datanodeはこの構成ファイルを変更する必要はありません。
vimyarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>10.2.42.61:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.2.42.61:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.2.42.61:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>10.2.42.61:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>10.2.42.61:8088</value>
</property>
</configuration>
namenodeが
vimスレーブを呼び出すのを容易にするようにdatanodeを構成します
10.2.42.62
10.2.42.63
データディレクトリを作成する
mkdir /data/hadoop/tmp -p
mkdir /data/hadoop/dfs/name -p
mkdir /data/hadoop/dfs/data -p
ネームノードをフォーマットします。ネームノード
のファイルシステムはHDFSであるため、フォーマットする必要があります。
/opt/hadoop-2.8.3/bin/hdfs namenode -format
以下は、フォーマットが成功したことを示しています。
クラスターを開始します
/opt/hadoop-2.8.3/sbin/start-all.sh
出力ログは次のとおりです
。jobhistoryサービスを開始し、mapreduceの実行ステータスを確認します
/opt/hadoop-2.8.3/sbin/mr-jobhistory-daemon.sh start historyserver
URL経由でアクセスされるアドレス
http://10.2.42.61:50070 #整个hadoop 集群
http://10.2.42.61:50090 #SecondaryNameNode的情况
http://10.2.42.61:8088 #resourcemanager的情况
http://10.2.42.61:19888 #historyserver(MapReduce历史运行情况)
HBaseクラスターを構成する
注:特別な記述はありません。次の操作は、3つのノードで同時に実行されます。
**
インストールパッケージをoptディレクトリに解凍します
tar xf hbase-1.2.6-bin.tar.gz -C /opt/
hdfs構成ファイルをコピーします。これは、hbaseとhdfsの両側の構成ファイルの整合性を確保するためです。
cp /opt/hadoop-2.8.3/etc/hadoop/hdfs-site.xml /opt/hbase-1.2.6/conf/
HBase構成ファイル
vimhbase-site.xmlを構成します
<configuration>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>10.2.42.61,10.2.42.62,10.2.42.63</value>
<description>The directory shared by RegionServers.</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/zookeeper/zkdata</value>
<description>
注意这里的zookeeper数据目录与hadoop ha的共用,也即要与 zoo.cfg 中配置的一致
Property from ZooKeeper config zoo.cfg.
The directory where the snapshot is stored.
</description>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://10.2.42.61:9000/hbase</value>
<description>The directory shared by RegionServers.
官网多次强调这个目录不要预先创建,hbase会自行创建,否则会做迁移操作,引发错误
至于端口,有些是8020,有些是9000,看 $HADOOP_HOME/etc/hadoop/hdfs-site.xml 里面的配置,本实验配置的是
dfs.namenode.rpc-address.hdcluster.nn1 , dfs.namenode.rpc-address.hdcluster.nn2
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>tre</value>
<description>分布式集群配置,这里要设置为true,如果是单节点的,则设置为false
The mode the cluster will be in. Possible values are
false: standalone and pseudo-distributed setups with managed ZooKeeper
true: fully-distributed with unmanaged ZooKeeper Quorum (see hbase-env.sh)
</description>
</property>
</configuration>
regionserversファイルを設定します
vimregionservers
10.2.42.62
10.2.42.63
hbase-env.shを構成します。自分でzookeeperを作成したので、次のコードを追加する必要があります。
export HBASE_MANAGES_ZK=false
クラスターを開始します
/opt/hbase-1.2.6/bin/start-hbase.sh
クラスタステータスの
表示1.URL
経由で表示:http://10.2.42.61:16010 / master-status2。コマンドライン経由で表示
/opt/hbase-1.2.6/bin/hbase shell
hbase(main):002:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 2.0000 average load
エラーが報告された場合:エラー:org.apache.hadoop.hbase.PleaseHoldException:マスターが初期化中
です1.最初にHBaseを停止します:/opt/hbase-1.2.6/bin/stop-hbase.sh
2. regionserverを起動します:/ opt / hbase- 1.2.6 / bin / hbase-daemon.sh start regionserver
3.マスターの開始:/opt/hbase-1.2.6/bin/hbase-daemon.shマスターの開始
HBaseのPinPointライブラリを初期化します。hbase-create.hbaseをダウンロードする必要があります。
アドレスは次のとおりです:https://github.com/naver/pinpoint/tree/master/hbase/scripts
/opt/hbase-1.2.6/bin/hbase shell /root/install/hbase-create.hbase
PinPoint-Collecterを構成する
warパッケージをtomcatのwebappsディレクトリに解凍します
unzip pinpoint-collector-1.7.1.war -d /home/tomcat/apache-tomcat-8.0.47/webapps/ROOT
構成ファイルディレクトリ/home/tomcat/apache-tomcat-8.0.47/webapps/ROOT/WEB-INF/classes
は構成ファイルhbase.propertiesを変更します
hbase.client.host=10.2.42.61,10.2.42.62,10.2.42.63
hbase.client.port=2181
......
構成ファイルpinpoint-collector.propertiesを変更します
cluster.enable=true
cluster.zookeeper.address=10.2.42.61,10.2.42.62,10.2.42.63
......
flink.cluster.zookeeper.address=10.2.42.61,10.2.42.62,10.2.42.63
flink.cluster.zookeeper.sessiontimeout=3000
Tomcatを開始します
/home/tomcat/apache-tomcat-8.0.47/bin/startup.sh
PinPoint-WEBを構成する
対応するwarパッケージをtomcatのwebappsディレクトリに解凍します
unzip pinpoint-web-1.7.1.war -d /home/tomcat/apache-tomcat-8.0.47/webapps/ROOT
構成ファイルディレクトリ/home/tomcat/apache-tomcat-8.0.47/webapps/ROOT/WEB-INF/classesvim
hbase.properties
hbase.client.host=10.2.42.61,10.2.42.62,10.2.42.63
hbase.client.port=2181
......
vim pinpoint-web.properties
cluster.enable=true
cluster.web.tcp.port=9997
cluster.zookeeper.address=10.2.42.61,10.2.42.62,10.2.42.63
cluster.zookeeper.sessiontimeout=30000
cluster.zookeeper.retry.interval=60000
.......
Tomcatを開始します
/home/tomcat/apache-tomcat-8.0.47/bin/startup.sh
URLにアクセス:http://10.2.42.60:8080 / # / main
プローブを構成します
pinpoint-agent-1.7.1.tar.gzをアプリケーションサーバーにコピーし、tomcatディレクトリに解凍します
tar xf pinpoint-agent-1.7.1.tar.gz -C /home/tomcat
構成ファイルを変更します:
vim /home/tomcat/ppagent/pinpoint.config
# ip为pinpoint-collecter的服务器ip
profiler.collector.ip=10.2.42.59
tomcatのCatalina.sh起動スクリプトを構成し、次のコードをスクリプトに追加します
CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=$AGENT_ID"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=$APPLICATION_NAME"
jarパッケージの場合は、Javaから直接開始し、次のパラメーターに従う必要があります。
java -javaagent:/home/tomcat/tmp/ppagent/pinpoint-bootstrap-1.7.1.jar -Dpinpoint.agentId=jss-spring-boot-app11201 -Dpinpoint.applicationName=jss-spring-boot-app -jar jssSpringBootDemo-0.0.1-SNAPSHOT.jar
構成後にtomcatを再起動し、WEB側で以下を確認します。