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

目录

  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

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

  • webservice
  • datacollector
  • dataprocessor
  • alertprocessor
  • simulator
  • ddhbase
  • vehicle(Web网站)

各模块之间的关系

车联网大数据平台运行环境部署总结(二)_第1张图片
图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:
新添加的节点配置如下

  • 解压 hadoop hbase zookeeper jdk /usr/htdadao/

  • 配置profile(邵网盘)

  • 配置 core-site.xml 指定管理节点

  • 配置 zookeeper/conf/zoo.cfg

每个节点都要配置:

  • hadoop/etc/hadoop/slaves 增加数据节点
  • hadoop hdfs-site.xml 修改备份数量
  • zoo.cfg, 增加节点 server.2=hadoop2:2888:3888
  • 修改新的节点 cd /usr/htdadao/tmp/zookeeper 改myid 改成2 ,与3中对应
  • 修改hbase配置 增加节点 管理数据的节点
#vim /usr/htdadao/habase/conf/regionserver 
  • 修改hbase配置
#vim /usr/htdadao/habase/conf/hbase-site.xml  hadoop1,hadoop2,...

Q:

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

A:

  • 注意查看hadoop、hbase、zookeeper的配置文件是否都修改对了
  • 注意查看各个主机之间是否可以免密ssh登录
  • 注意文件的权限,是否都有执行权限
  • 如果新节点中的文件是从原来的节点中拷过来的,很多很多tmp和data中的数据是hadoop1中的,没有清,所以会导致dfs进入安全模式,应该直接用干净的文件夹
  • 查看日志tail hbase-hadoop-master-hadoop1.log寻找原因

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

即可修复


车联网大数据平台运行环境部署总结(二)_第2张图片
图片.png

你可能感兴趣的:(车联网大数据平台运行环境部署总结(二))