美文网首页我爱编程
车联网大数据平台运行环境部署总结(二)

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

作者: 加班饭不好吃 | 来源:发表于2017-10-13 16:53 被阅读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

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

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

    各模块之间的关系

    图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
    

    即可修复


    图片.png

    相关文章

      网友评论

        本文标题:车联网大数据平台运行环境部署总结(二)

        本文链接:https://www.haomeiwen.com/subject/lhozyxtx.html