ITPub博客

首页 > 大数据 > Hadoop > CDH impala for Apache HADOOP 安装编译步骤.

CDH impala for Apache HADOOP 安装编译步骤.

原创 Hadoop 作者:babyyellow 时间:2020-01-13 14:26:43 0 删除 编辑

CDH impala   + kudu  一个不错的sql 查询框架. 


如果安装在 CDH   发行的hadoop 集群中,那是相当的容易. 


直接CDH  安装界面点击几下就ok 了. 


这个不表了. 


如果投产的是 apache 发行的hadoop 版本. 那么编译过程中还是会遇到相当多的问题. 


这里简单列一下给各位同行参考. 


IMPALA   3.3.0  版本. 


需求. 

<1 > 

IMPALA 的官网上有相关的硬件需求. 


  1. CPU  要求 SSSE4_2 以上指令集.   这个条件, 现在已经没有问题了. 主流cpu 都支持了. 


    2.  python    版本要求.     python 2.6.x  或者 python 2.7.x 


    3.  os 版本.   linux  7.x  版本. 


这是硬性规定了. 代码中限制了这些硬性规定. 


<2> .  关于 需求的python 虚拟机环境问题. 


impala  需要自行构建一个  pythonenv  虚拟机. 子包含 Python 组件. 


需要指定版本的   virtualenv-13.1.0.tar.gz  


这个很重要.   比他更高版本的  对不起.  无法构建.  更低版本, 没有测试. 


<3>   python 需要的各种组件package . 


  1.   因为 impala  开发团队.  自己构建了一个pip_down load 代码.   所以只能指定 .tar.gz 的源代码编译模式. 


     2.   python 2.7.5  需要 安装 setuptool. 


    3.   不要在 os 的python 环境下 自作聪明的安装对应的python 包. 不管用. 


    4.  根据 apache-impala-3.3.0/infra/python/deps/ *.txt  

                指定的各个 pkg 以及对应的版本号.  

    5.  到 https://pypi.org/simple/xxxxx/  下面下载指定版本的pkg  然后放到    apache-impala-3.3.0/infra/python/deps/ 

            注意 只能使用 .tar.gz 格式的. 其他的将无法处理. 



<4>  编译过程中的问题. 


    1.   上面的 python 包全部按照要求搞定后以后.  那么根据官方的. 文档 的安装命令. 


        

  1. cd ~/Impala
  2. export IMPALA_HOME=`pwd`
  3. $IMPALA_HOME/bin/bootstrap_system.sh
  4. source $IMPALA_HOME/bin/impala-config.sh
  5. $IMPALA_HOME/buildall.sh -noclean -notests


    这里会遇到一个坑.  

    apache-impala-3.3.0/infra/python/deps/ 下面有个  pip_download.py 

    代码. 这个无论你是否设置 代理服务器. 都会报错. 

    暂时不清楚原因. 


    我在os层面设置了 . https_proxy  , http_proxy  .  报错.   指定的 代理服务器非法. 


    我修改  pip_download.py , 按照 python urllib3  代码里的格式指定 python 对象   的代理服务器. 也是报错. 


    鉴于  我们先前已经完成了.  所有的需要的 pkg 的下载. 这一步不要也罢. 


       处理方案:     直接在main() 的第一行  执行报错退出   我就是直接把第一行 代码注意改了下, 直接报python 语法错误. 


             然后退出. 


            然后安装程序 会调用 我们已经 下载的pkg 构建python 虚拟环境. 


<5>   C++ 编译过程中的问题. 

            上面的ptyhon虚拟环境构建ok了.   


            就会进行 c++/c 代码的build 了.  


            在  [ 98% ]  的时候 报错. 


        [ 98%] Linking CXX executable ../../build/debug/service/impalad

/data/soft/apache-impala-3.3.0/be/src/common/logging.cc:131: error: undefined reference to 'google::InstallLogMessageListenerFunction(void (*)(std::string*, bool*))'

../../../toolchain/openldap-2.4.47/lib/libldap.a(os-ip.o):os-ip.c:function ldap_int_poll: warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead

../../../toolchain/openldap-2.4.47/lib/libldap.a(os-ip.o):os-ip.c:function ldap_int_poll: warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead

collect2: error: ld returned 1 exit status

make[3]: *** [be/build/debug/service/impalad] Error 1

make[2]: *** [be/src/service/CMakeFiles/impalad.dir/all] Error 2

make[1]: *** [be/src/service/CMakeFiles/impalad.dir/rule] Error 2

make: *** [impalad] Error 2


这个地方应该可以归为 impala 的一个bug  . 


        这个问题是因为  impala  调用了glog-0.3.4  pach 3    的logging.h  头文件. 


        如果os 层面安装了 glog   0.3.4    或者  glog  0.3.5    都将报错.   无法编译. 


        问题出在    glog-0.3.4-P3 的 logging.h 里多了一行.   定义.   


          

    GOOGLE_GLOG_DLL_DECL void InstallLogMessageListenerFunction(

                                void (*listener_func)(std::string* message, bool* changed));

  

        导致这里出错. 


        解决方案:  


        1.  移除  os 层面安装的 glog 的头文件. 以及对应lib.     但是不确定是否能够成功编译.  , 不过大概率可以编译通过. 


        2.  将  apache-impala-3.3.0/toolchain/glog-0.3.4-p3/include/glog  copy 到/usr/local/include 下面

                   apache-impala-3.3.0/toolchain/glog-0.3.4-p3/lib/*      copy 到 /usr/local/lib 下面. 


        

    然后重新编译 .  大概率应该会通过了. 


<6>   测试过程中遇到的问题. 


        1. imapad 编译完成后. 应该会生成个各种测试.   这里需要配置 maven 的 代理服务器. 


        /etc/maven/setting.xml   里面配置http  跟https 的代理服务器. 

    

        如果单个项目失败了. 那么就去那个子目录下面   重新运行     mvn  -B install -DskipTests  


 

<7>   请一开始  就在 OS 层面设置 https  , http 代理服务器. 


<8>  祝你玩的愉快. 





    

    

    


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-2673049/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。 潜意识沟通实证者 心理咨询师。 禅修布道者, 禅修指导员。 禅定实证者。

注册时间:2010-12-02

  • 博文量
    367
  • 访问量
    1908687