环境
部署环境
ip | 目录 | 功能 | 备注 |
---|---|---|---|
10.225.254.178 | /usr/local/hadoop/ | hadoop | |
/usr/local/hbase/ | hbase | ||
/usr/local/zookeeper | zookeeper | ||
10.225.254.179 | /usr/local/hadoop/ | hadoop | |
/usr/local/hbase/ | hbase | ||
/usr/local/zookeeper | zookeeper | ||
10.225.254.180 | /usr/local/hadoop/ | hadoop | |
/usr/local/hbase/ | hbase | ||
/usr/local/zookeeper | zookeeper | ||
10.225.255.141 | /usr/local/tomcatppcollector | collector | |
/usr/local/tomcatppwebbak | web |
试验环境
ip | 目录 | 功能 | 备注 |
---|---|---|---|
10.255.209.25 | zk | ||
10.255.254.78 | DB | ||
10.3.253.25 | /data/tomcat/apache-tomcat-order | web | |
10.3.25.79 | /data/wms-app-order/wms-biz-job | ||
/data/wms-app-order/wms-biz-main | |||
/data/wms-app-order/wms-platform-main | |||
/data/wms-app-order/wms-transfer-out-main |
基础系统部署
一、环境说明
集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个node,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:
Hostname | IP | User | Password |
---|---|---|---|
master | 10.255.254.178 | hadooptest | hadooptest |
node1 | 10.255.254.179 | hadooptest | hadooptest |
node2 | 10.255.254.180 | hadooptest | hadooptest |
三个节点均使用CentOS 6.5系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同hadoop、hbase、zookeeper目录结构。
二、准备工作
2.1 安装JDK
在三台机器上配置JDK环境,下载 jdk-8u51-Linux-x64.rpm 文件直接安装:
rpm -ivh jdk-8u51-linux-x64.rpm
修改配置文件 vim /etc/profile:
然后重新加载配置文件使之生效:
source /etc/profile
2.2 添加HOSTS映射关系
分别在三个节点上添加hosts映射关系:
2.3 集群之间SSH无密码登陆
CentOS默认安装了ssh,如果没有你需要先安装ssh 。
集群环境的使用必须通过ssh无密码登陆来执行,本机登陆本机必须无密码登陆,主机与从机之间必须可以双向无密码登陆,从机与从机之间无限制。
2.3.1 设置MASTER无密码自登陆
主要有三步:①生成公钥和私钥、②导入公钥到认证文件、③更改权限
ssh-keygen -t rsa -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
测试,第一次登录可能需要yes确认,之后就可以直接登录了:
ssh localhost
Last login: Sat Jun 18 22:57:44 2015 from localhost
对于 node1 和 node2,进行无密码自登陆设置,操作同上。
2.3.2 设置主机->从机的无密码登录
cat ~/.ssh/id_rsa.pub | ssh hadooptest@slave1 'cat - >> ~/.ssh/authorized_keys'
cat ~/.ssh/id_rsa.pub | ssh hadooptest@slave2 'cat - >> ~/.ssh/authorized_keys'
测试:
[hadoop@master ~]$ ssh hadooptest@node1
Last login: Sat Jun 18 23:25:41 2017 from master
[hadoop@master ~]$ ssh hadooptest@node2
Last login: Sat Jun 18 23:25:14 2017 from master
2.3.3 设置从机->主机的无密码登录
分别在node1、node2上执行:
cat ~/.ssh/id_rsa.pub | ssh hadooptest@master 'cat - >> ~/.ssh/authorized_keys'
三、HADOOP集群安装配置
这里会将hadoop、hbase、zookeeper的安装包都解压到/usr/local/文件夹下,并重命名为hadoop、hbase、zookeeper。
3.1 修改HADOOP配置
配置文件都在$hadoop/etc/目录下
3.1.1 CORE-SITE.XML
3.1.2 HADOOP-ENV.SH
添加JDK路径:
3.1.3 HDFS-SITE.XML
3.1.4 MAPRED-SITE.XML
3.1.5 修改MASTERS文件
3.1.6 修改SLAVES文件
注意:三台机器上都进行相同的配置,都放在相同的路径下。
使用scp命令进行从本地到远程(或远程到本地)的轻松文件传输操作:
scp -r /usr/local/hadoop node1:/usr/local/hadoop
scp -r /usr/local/hadoop node2:/usr/local/hadoop
3.2 启动HADOOP集群
进入master的/usr/local/hadoop目录,执行以下操作:
bin/hadoop namenode -format
格式化namenode,第一次启动服务前执行的操作,以后不需要执行。
然后启动hadoop:
sbin/start-all.sh
通过jps命令能看到除jps外有5个进程:
四、ZOOKEEPER集群安装配置
解压zookeeper-3.4.10.tar.gz并重命名为zookeeper。
4.1 修改配置文件ZOO.CFG
进入/usr/local/zookeeper/conf目录:
cp zoo_sample.cfg zoo.cfg
拷贝zoo_sample.cfg文件为zoo.cfg,并编辑如下:
4.2 新建并编辑MYID文件
在dataDir目录下新建myid文件,输入一个数字(master为1,node1为2,node2为3):
mkdir /zookeeper/data
echo "1" > /zookeeper/data/myid
同样使用scp命令进行远程复制,只不过要修改每个节点上myid文件中的数字。
scp -r /usr/local/zookeeper node1:/usr/local/zookeeper
scp -r /usr/local/zookeeper node2:/usr/local/zookeeper
4.3 启动ZOOKEEPER集群
在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本:
cd /usr/local/zookeeper/bin/;./zkServer.sh start
- 如果启动报类似异常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888 是可以忽略的,因为该服务启动时会尝试连接所有节点,而其他节点尚未启动。通过后面部分可以看到,集群在选出一个Leader后,最后稳定 了。其他结点可能也出现类似问题,属于正常。
- 关闭防火墙。在hadoop集群环境(linux系统)中最好关闭防火墙,不然会出现很多问题,例如namenode找不到datanode等。如果不关闭防火墙,客户端使用API操作HDFS以及ZooKeeper,可能就会出现下面常见的两种异常:
1) 使用API操作HDFS时会出现异常:java.net.NoRouteToHostException: No route to host
2) 使用API操作ZK时会出现异常:org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for xxxx - 使用root权限登陆后,输入关闭防火墙命令:
/etc/init.d/iptables stop
service iptables stop - 修改禁用selinux: /etc/selinux/config文件,设置”SELINUX=disabled”
五、HBASE集群安装配置
解压hbase-1.0.1.1-bin.tar.gz并重命名为hbase。
5.1 HBASE-ENV.SH
export JAVA_HOME=/usr/java/jdk1.8.0_51
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop/
export HBASE_MANAGES_ZK=false
5.2 HBASE-SITE.XML
5.3 更改 REGIONSERVERS
在 regionservers 文件中添加slave列表:
5.4 分发并同步安装包
将整个hbase安装目录都拷贝到所有slave服务器:
scp -r /usr/local/hbase node1:/usr/local/
scp -r /usr/local/hbase node2:/usr/local/
六、启动集群
6.1.启动ZOOKEEPER
/usr/local/zookeeper/bin/zkServer.sh start
6.2.启动HADOOP
/usr/local /hadoop/sbin/start-all.sh
6.3.启动HBASE
/usr/local /hbase/bin/start-base.sh
6.4.启动后,MASTER上进程和SLAVE进程列表
6.5.进入HBASE SHELL进行验证
部署完成后可以通过页面验证
hbase:http://10.255.254.178:60010/tablesDetailed.jsp
hadoop:http://10.255.254.178:50070/dfshealth.html#tab-overview
PINPOINT部署
ip | 目录 | 作用 | 备注 |
---|---|---|---|
10.225.255.141 | /usr/local/tomcatppcollector | collector | |
/usr/local/tomcatppwebbak | web |
1、 下载war包,或自己编译自定义版本
https://github.com/naver/pinpoint/releases
2、 将war包上传至141服务器对应的容器目录中,启动容器
/usr/local/tomcatppcollector/webapps/ROOT
/usr/local/tomcatppwebbak/webapps/ROOT
3、 配置说明
hbase.properties 配置我们pp-web从哪个数据源获取采集数据,这里我们只指定Hbase的zookeeper地址。
jdbc.properties pp-web连接自身Mysql数据库的连接认证配置。
sql目录 pp-web本身有些数据需要存放在MySQL数据库中,这里需要初始化一下表结构。
pinpoint-web.properties 这里pp-web集群的配置文件,如果你需要pp-web集群的话。
applicationContext-* .xml 这些文件在后续的调优工作中会用到。
log4j.xml 日志相关配置。
4、 修改web配置
4.1 Jdbc配置
告警用的,若不使用告警,也可以不配置(我是直接部署上的,没有尝试不部署会不会影响启动)
4.2修改hbase配置
4.3修改pinpoint配置
5、 修改pinpoint collector配置
5.1修改hbase配置
5.2修改pinpoint collector配置
6、 初始化数据库
执行pinpoint提供的Hbase初始化语句,这时会初始化一会
6.1上传hbase-create.hbase脚本
cd $hbase
./hbase shell /home/pp_res/hbase-create.hbase
通过./hbase shell或者http://10.255.254.178:60010/tablesDetailed.jsp界面查看
7、 启动
7.1启动ppcollector
/usr/local/tomcatppcollector/bin/startup.sh
7.2 启动web
/usr/local/tomcatppwebbak/bin/startup.sh
应用配置
10.3.253.25配置
将PINPOINT AGENT上传至服务器目录/OPT/PINPOINT161/
修改PINPOINT的配置
将profiler.collector.ip的值修改成collector服务器ip,这里的配置项较多,不一一解释,根据自己的实际需求配置(一般情况下默认即可)
采集应用配置指向采集器部署的服务器
进入TOMCAT部署目录修改CATALINA.SH
将agent配置到启动java_opts中,需要注意的是agent_id必须唯一,applicationname是在web界面显示用的,最好起的有意义一些
RESTART应用
restart应用
10.3.25.79配置
将PINPOINT AGENT上传至服务器目录/OPT/PINPOINT161/
修改PINPOINT的配置
采集应用配置指向采集器部署的服务器
修改应用的启动脚本
查看效果
1、 打开pinpointweb部署的url:此实验为http://10.255.255.141:8280/