海洋大数据环境部署问题汇总及解决方案

  • 问题一

    • 问题描述: 系统开发程序(传数据)连不上集群服务器
    • 原因分析:该开发程序需要连接到每一个节点,而在集群中只有一个公网ip,其他都是内网ip无法访问,即主机无法ping通内网。
    • 解决方案:将程序打成jar包,传输至集群中的master节点,即具有公网ip的服务器上,这样程序就可以访问其它节点,从而实现相关功能。
    • 具体实现:
      • 将程序打包,生成jar文件。
      	流程:project-structure ——> Artifaces——>+——>from module——>选择程序的主类——>ok
      	——>将include选项勾选上——>build——>Build Ariti——>rebuild
      
      • 将生成的jar文件拷贝至服务器的/opt/ocean中,建立数据文件夹,将要拷贝的数据放入指定好的文件夹中。
      • 在当前目录下命令行终端运行
        java -jar hbaseTest.jar
此时数据会自动传送到hbase中。问题一至此解决完毕
  • 问题二

    • 问题描述:javaweb项目的部署问题,javaweb项目要能够访问不了所有节点.
    • 原因分析:同问题一一样.
    • 解决方案: 将javaweb项目部署到服务器中的tomcat服务器上去访问.
    • 具体实现:
      • 将一个配置好的tomcat7拷贝至服务器master节点的/opt目录下.
      • 将本地程序打包成war包
        选择Build——>Rebuild——>选择在idea编辑器的右侧的Maven project——>点击package选项 生成的war包地址可以再project structure的Artifacts中的Output directory中查看,一般在项目的target目录下
      • 将该war包拷贝至服务器的/opt/tomcat7下的 webapp中,在bin目录下重启tomcat,tomcat会自动解压war包,接着就可以在浏览器ip:8080/项目名对web项目进行访问。

此时javaweb项目成功部署到集群中

  • 问题三

    • 问题描述:项目部署好后,tomcat无法启动
    • 原因分析:项目中的war包与tomcat的包冲突导致无法启动
    • 解决方案:删除项目中的jar包
    • 具体实现:
      • 首先删除项目中的maven配置,重新打成war包后部署到tomcat中观察是否可以访问,如果不能则原因是war包中的jar包仍然存在,用压缩软件打开删除并保存。
        jar包名:
        compiler.jar runtime.jar jsp.jar
  • 问题四

    • 问题描述:没有hive环境
    • 原因分析:在集群部署时未装hive
    • 解决方案:按照教程搭建一个hive环境,尤其注意要将各种配置文件配置好。
    • 具体实现:
      • 准备hive1.2.1的gz文件,解压。
      • 配置mysql,主要是为登陆的用户赋予权限
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION FLUSH PRIVILEGES
      • 配置hive-site.xml
       mv hive- default.xml.template hive-site.xml
       
      javax.jdo.option.ConnectionURL
      jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true
       
      .3
      
         javax.jdo.option.ConnectionDriverName
         com.mysql.jdbc.Driver
      
      
      
         javax.jdo.option.ConnectionUserName
         root
      
      
      
         javax.jdo.option.ConnectionPassword
         root
      
      ``
      
    • 配置hive-env.xml
    最后一行添加:
    export HIVE_HOME=/usr/.....
    export HIVE_CONF_DIR=/usr/.....
    
    • 配置hive-config.sh
    最后一行添加:
    export HIVE_NAME=/usr/...
    export JAVA_HOME=/usr/...
    export  HADOOP_HOME=/usr/....
    
    • 添加驱动和环境变量
    将mysql connection的驱动添加到hive的lib下边
    将hive的lib下的Jline的包替换hadoop下边的包
    vim /etc/profile
    
    HIVE_HOME=/usr/..
    HIVE_CONF_DIR=/usr...conf/
    CLASS_PATH到lib
    PATH到bin
    注意:在配置环境变量的时候,如果是单独export的PATH的时候
    PATH=$PATH:....
    
    • 执行环境变量生效
    source /etc/profile
    
    • 如果出现spark相关jar包找不到,则在hive的bin目录下找到hive 编辑
    sparkAssemblyPath=`ls ${SPARK_HOME}/jars/*.jar'
    
  • 问题五

    • 问题描述:hive绑定mysql
    • 解决方案:基本是可以连接到mysql上。
    • 需要注意的点就是hive的debug模式可以查看在hive启动过程中是否出现问题
    ./hive -hiveconf hive.root.logger,console
    
  • 问题六

    • 问题描述:JDBC无法连通hive数据库.
    • 原因分析:
    报错信息:Apache Hive client throw NoSuchFieldError: HIVE_CLI_SERVICE_PROTOCOL_V8
    

    原因是hive的依赖jar包版本不对

    • 解决方案:将原有的maven相关依赖jar包注释掉,换成1.1.0版本
    • 具体实现:
    
          org.apache.hive
          hive-metastore
          1.1.0
      
      
          org.apache.hive
          hive-jdbc
          1.1.0
      
      
          org.apache.hive
          hive-exec
          1.1.0
      
    
  • 问题七

    • 重要文件位置 以及相关操作密令
      • tail -n 10 文件名 在查看日志文件时非常好用。
      • tomcat的日志文件logs下catalina.out,记录程序的输出信息。
      • tomcat的 catalina.2019-03-07.log 日志文件对于记录很重要。
      • 海洋大数据项目内外都要能够访问网络。

你可能感兴趣的:(海洋大数据环境部署问题汇总及解决方案)