我爱编程

车联网大数据平台运行环境部署总结(二)

2017-10-13  本文已影响62人  加班饭不好吃

目录

  1. 概述
  2. 系统安装(CentOS 7.3)
  3. 大数据环境配置(java hadoop hbase zookeeper)
  4. 软件运行环境配置(docker mysql kafka redits zookeeper tomcat)
  5. 软件部署
  6. 跑起来
  7. 注意事项
  8. Q&A

软件部署

应用软件安装在主机webserver上,
IP 192.168.34.124

应用软件由某单位开发,主要包括以下几个:

各模块之间的关系

图2

这些应用软件的部署,主要工作是修改配置文件,确保与实际部署环境一致

应用软件部署

将以上安装包(除vehicle)放到 /opt/dadao/service/ 目录下

注意所有项目的配置文件中,关于mysql、WebService、kafka、redis、hbase、zookeeper等需要与部署机的主机名ip端口等匹配,相关配置例如在WebService中配置如下:

mysql:

druid.url=jdbc:mysql://192.168.34.124:30003/vms?characterEncoding=utf8&useSSL=true

hbase:

spring.data.hbase.quorum=hadoop1:2181
spring.data.hbase.rootdir=hdfs://hadoop1:9000/hbase
spring.data.hbase.port=16000
spring.data.hbase.infoPort=16010
spring.data.hbase.dataDir=/usr/htdadao/data/hbase/zookeeper
spring.data.hbase.clientPort=2181

kafka:

kafka.broker.address=192.168.34.124:30002
kafka.groupId=xinchangzheng

redis

spring.redis.host=192.168.34.124
spring.redis.port=30001
spring.redis.password=
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
spring.redis.pool.max-idle=8   
spring.redis.pool.min-idle=0   
spring.redis.timeout=0 

主要是将每个配置文件中的ip和主机名改为实际部署的名称

web软件部署

将vehicle.war放到 /usr/tomcat8/webapps/ 目录下

启动tomcat的时候就可以启动该web服务,注意配置文件的修改,目录为

/usr/tomcat8/webapps/vehicle/WEB-INF/classes

如果有配置文件没有修改好,服务可能启动不起来,或者有问题,在这里掉了很多次坑

Run

大数据平台启动

大数据平台启动脚本在之前的文章中提到过,直接运行即可,注意查看各个节点的运行状态

docker启动

#cd /lyc/basicEnv
#docker-compose up -d
#docker-compose ps

注意查看四个服务是不是都启动了

软件启动

#cd /opt/dadao/service/webservice/bin
#./start.sh

#cd /opt/dadao/service/collector/bin
#./start.sh

#cd /opt/dadao/service/dataprocessor/bin
#./start.sh

#cd /opt/dadao/service/alertprocesser/bin
#./start.sh

#cd /opt/dadao/service/ddhbase/bin
#./start.sh

#cd /opt/dadao/service/simulator/bin
#./start.sh

#cd /usr/tomcat8/bin
#./startup.sh

通过以下指令查看应用启动情况

#jps -l

访问网站

在浏览器输入以下地址

http://192.168.34.124:8088/vehicle

如果各个软件启动成功,则可访问网站

注意查看是否有在线车辆显示,历史数据是否可以成功访问

注意事项

  1. 注意各个文件的权限,为了方便,凡是我用到的,我都将权限设为 755
  2. 大数据平台,第一次启动的时候,执行启动脚本需要把每台机子的profile变量写到 ~/.bashrc
#echo 'source /etc/profile' >> ~/.bashrc
  1. 遇到问题,找配置文件,找日志

Q&A

Q:

配置网络的时候

#vi /etc/sysconfig/network-scripts/ifcfg-eno1

改成静态启动,添加ip地址、网关、掩码,将ONBOOT=yes
执行

#service network restart 

此步骤出错

A:

解决方法:

参考 http://doc.okbase.net/1169607/archive/113415.html ,使用命令运行

cat /var/log/messages | grep network

命令查看日志中出现的与network相关的信息,发现network 默认去启动的是eth0这个网卡,但是这个网卡我没有配置,

#ls /etc/sysconfig/network-scripts/

发现真的有一个ifcfg-eth0的空文件,rm掉,再次运行以下指令成功,ping也可以通

#service network restart

Q:

SELinux 永久关闭,docker-compose up无法启动镜像

A:

原因是,权限不够,修改basicEnv下的文件权限,将所有的文件添加执行权限,即可

Q:

在hadoop未启动的状态下怎么增加一个数据节点?

A:
新添加的节点配置如下

每个节点都要配置:

#vim /usr/htdadao/habase/conf/regionserver 
#vim /usr/htdadao/habase/conf/hbase-site.xml  hadoop1,hadoop2,...

Q:

在新添加数据节点之后,无法启动大数据平台

A:

Q:

网站可正常访问,历史信息查不到,查验ddhbase日志,如下错误

2017-09-29 10:48:48.733 ERROR 6315 --- [http-nio-8081-exec-3] o.a.h.hbase.zookeeper.ZooKeeperWatcher   : hconnection-0x5d0ed76f0x0, quorum=hadoop1:2181,hadoop2:2181,hadoop3:2181, baseZNode=/hbase Received unexpected KeeperException, re-throwing exception

A:

在hadoop3上 jps -l发现hbase没有启动,date查看时间,发现hadoop3的时间有问题,与其他两个主机相差太大

修改hadoop3的系统时间,启动服务,一切正常

第二次部署中遇到的问题:

Q: SSH远程登录hadoop1特别慢,怎么回事?
A: ssh -v hadoop1 可查看debug信息,(或者ssh -vvv hadoop1 查看更详细的debug信息),发现卡在了 debug1: Applying options for * ,输出这句话后就一直在等,上网查
https://zhidao.baidu.com/question/556624340.html
解决办法:
请在主机的/etc/hosts文件里添加
你执行ssh的机器的IP信息。
比如说你在192.168.1.21上执行的ssh
192.168.1.212/etc/hosts里要有
192.168.1.21 sshclient
这样的信息

在hadoop1 的主机上 /etc/hosts 添加一行: 192.168.56.5 hadoop1
解决了登录过慢的问题

Q: 启动hadoop时,NameNode进程启动后消失,log中出现:java.io.IOException: NameNode is not formatted
A: 参考 http://mrlee23.iteye.com/blog/2009777 NameNode未初始化,初始化一下

注意:初始化会清除之前的数据

# hadoop namenode -format

提示是否重新初始化namenode,输入y
初始化成功后,hadoop即可登录,但是hbase中的东西都没了

于是需要从原来部署成功的机子上,将数据拷贝恢复到这个集群:

参考1 http://greatwqs.iteye.com/blog/1839232
参考2 http://blog.csdn.net/bigkeen/article/details/51034902

因为部署的是hbase 1.2.0
因此表的位置和参考1的不太一样
表位于hadoop文件结构的 /hbase/data/default 下面
按照参考2的离线迁移方法,将整个default文件夹拷贝和恢复即可
参考2中第4步
在我的hbase 1.2.0 中并没有add_table.rb这个文件
因此继续查
http://blog.csdn.net/jiangheng0535/article/details/10387167
执行(重新分区)指令

#hbase hbck -fixAssignments

即可修复


图片.png
上一篇 下一篇

猜你喜欢

热点阅读