zoukankan      html  css  js  c++  java
  • Windows 上用IntelliJ Idea调试百度大数据分析框架Apache Doris FE

    A. 环境准备

    1. 安装jdk1.8+, Intelij IDEA

    2. linux上编译好fe前端代码,主要目的是获取自动生成的代码,加入到前段工程里面去用于在idea中编译fe工程。具体编译请参照本人前期博文:CentOS 上使用vscode 调试百度大数据分析框架Apache Doris BE,编译好之后:

    tar -cvf /home/workspace/palo0.8.1/genSrc/buid/java.tar  /home/workspace/palo0.8.1/gen_cpp/buid/java  #打包自动生成的java代码
    sz  /home/workspace/palo0.8.1/gen_cpp/buid/java.tar #下载自动生成代码到windows本地

     自动生成的文件结构如图:

    其中,

    analysis文件夹下为sql语法扫描和解析的自动生成代码,是通过调用java-cup-0.11a.jar & jflex-1.4.3.jar 生成的语法分析代码和词法分析代码,对应的输入源为..../parser/sql_parser.y 和..../parser/sql_scanner.flex

    buildins文件夹下为通过调用python2.7自动生成的palo内置类型和函数的代码,输入源为.../scripts/目录下的.py文件

    common文件夹下为通过protocobuf生成的通信协议流代码,输入源为.../proto/目录下的.proto文件

    thrift文件夹下为通过调用/thirdparty/installed/bin/thrift生成的通讯代码,palo FE和BE之间进行通信是使用thrift来进行的,输入源为.../gensrc/thrift下的.thrift文件

    3. 把自动生成的代码复制到windows fe代码的正确目录下,在本人机器上是......fesrccomaidupalo,如图:

    B) 调试:
    1. 用idea导入fe工程;

    2. 在fe目录下创建lib库,把引用的库文件放置到lib目录下:

    3. 编译idea,结果一定是失败的!

    4. 将lib目录下的help-resource.zip复制到/fe/output(idea工程默认的输出目录)的...feoutproductionaidu目录下,在本机中是C:Temppalo-0.8.1-betafeoutproductionaidu目录,可以参照自己机器的具体路径进行正确配置。该文件的作用是解压后生成帮助文件,具体使用位置为:

    5. 在IdeaJ中设置环境变量:JAVA_OPTS,PALO_HOME,PID_DIR,LOG_DIR,在本人机器上,配置为如下,各位可以根据自己的实际情况进行配置。

    JAVA_OPTS=-Xmx1024m
    PALO_HOME=C:Temppalo-0.8.1-betafe
    PID_DIR=C:Temppalo-0.8.1-betafe
    LOG_DIR=C:Temppalo-0.8.1-betafelog 

    其中JAVA_OPTS可以不配置。

    6. 在PALO_HOME文件夹下创建目录,palo-meta(必须手动创建),该目录是fe存放meta data的目录,fe所有的元数据均存放在此位置。

    7. 设置导入label的保留时间

    vim fe/conf/fe.conf

    添加:

    label_keep_max_second = 3600  #second, the default value is 3600*24*7= 7 days

    设置这个属性,在导入数据调试时很有用处,可以避免大量label干扰视线,可能个人有洁癖。

    8. 设置be的最大使用内存

    set exec_mem_limit=21474836480;  #设置为20G,只针对当前session 有效,默认值为2G
    set global exec_mem_limit=21474836480; #设置为20G,全局永久生效,配置将保存在fe的元数据中,默认值为2G

    9. 在IdeaJ中开始你的调试之旅,have fun with big data using palo!!

  • 相关阅读:
    iView -- TimePicker 自定义修改时间选择器选择时间面板样式
    Go语言--容器:存储和组织数据的方式--数组、切片
    php递归实现一维数组转为指定树状结构 --- 省市区处理
    Go语言--基础语法笔记
    Mongodb 安装错误汇总
    GIt -- git push 远程分支老是需要重新输入公钥密码问题处理?
    GIt -- fatal: refusing to merge unrelated histories 问题处理
    Linux -- Centos6 yum安装相关问题与处理
    Linux -- Xshell ,Xftp远程连接中文乱码怎么解决?
    Laravel 多数据库配置及查询操作
  • 原文地址:https://www.cnblogs.com/lenmom/p/9507173.html
Copyright © 2011-2022 走看看