最新编译Apache-impala 的心酸历程。大概花了10天才整好,极度的崩溃!!!由于国内的上网环境大家都懂的,访问国外的s3.amazonaws.com一些资源库的速度极其感人,尤其国家处于疫情的特殊时期,各种KXSW被墙,如果你有高速上网通道,你可以忽略本文,安装官方文档直接编译就行,在Google云上编译很快就能完成,但是拿到本地对于10多G几K的速度而言基本无法忍受。尝试了各种其他各种百度的方式编译都不行情况下,还是回归到官方的编译方式,各种尝试后终于完成。如果跟我一样无法高速上网的同学可以参考下,可以加快进度。

背景:

  • 最近一直在尝试Hive 的Orc格式ACID 功能,但是CDH的impala最新版本都还不支持hive属性 [transactional=true] 表。
  • 各种资料查询发现 IMPALA-8813 可以支持,版本是Apache-impala 最新版本 3.3.0版本,CDH目前还没支持到目前跟之相匹配的版本。
  • Apache-impala 版本的安装好像只能源代码编译安装,本人是没有找到相关的 rpm 、yum  或者其他的安装方式,有的话希望大佬可以分享指点下。

过程:

  1. 准备环境 : Centos 7 虚拟机一台,最好全新的,省的跟自己的本来环境造成冲突。
  2. 下载源代码:wget http://archive.apache.org/dist/impala/3.3.0/apache-impala-3.3.0.tar.gz
  3. 解压好后,修改一个配置文件 /bin/bootstrap_system.sh  把Ant的版本从1.9.13 改成1.9.14,并注释掉 sha512sum 校验。1.9.13已经无法下载,不然编译会报错
  4. 设置环境变量 (新环境直接Copy,无需修改,都是安装后的默认路径)
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
    export JAVA_BIN=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/bin
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME JAVA_BIN PATH CLASSPATH
    export ANT_HOME=/usr/local/apache-ant-1.9.14
    export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin
    export MVN_HOME=/usr/local/apache-maven-3.5.4
    export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin:$MVN_HOME/bin
  5. 【可以跳过】提前下载Python 需要的包,这个好像直接20 30M,可以直接下载,速度稍慢,但是至少是可以成功的。
  6. 提前下载好native-toolchain 文件。
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/tpc-h/2.17.0-gcc-4.9.2/tpc-h-2.17.0-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/re2/20190301-gcc-4.9.2/re2-20190301-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/cdp_components/1352353/tarballs/ranger-1.2.0.7.1.0.0-33-admin.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/cdh_components/1173663/tarballs/kudu-1.10.0-cdh6.x-SNAPSHOT-redhat7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/cdh_components/1173663/tarballs/llama-minikdc-1.0.0.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/cdh_components/1173663/tarballs/hive-2.1.1-cdh6.x-SNAPSHOT.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/cdh_components/1173663/tarballs/hadoop-3.0.0-cdh6.x-SNAPSHOT.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/cdh_components/1173663/tarballs/sentry-2.1.0-cdh6.x-SNAPSHOT.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/cdh_components/1173663/tarballs/hbase-2.1.0-cdh6.x-SNAPSHOT.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/zstd/1.4.0-gcc-4.9.2/zstd-1.4.0-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/zlib/1.2.8-gcc-4.9.2/zlib-1.2.8-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/tpc-ds/2.1.0-gcc-4.9.2/tpc-ds-2.1.0-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/tpc-h/2.17.0-gcc-4.9.2/tpc-h-2.17.0-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/thrift/0.9.3-p7-gcc-4.9.2/thrift-0.9.3-p7-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/llvm/5.0.1-asserts-p1-gcc-4.9.2/llvm-5.0.1-asserts-p1-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/llvm/5.0.1-p1-gcc-4.9.2/llvm-5.0.1-p1-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/avro/1.7.4-p4-gcc-4.9.2/avro-1.7.4-p4-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/binutils/2.26.1-gcc-4.9.2/binutils-2.26.1-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/boost/1.57.0-p3-gcc-4.9.2/boost-1.57.0-p3-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/breakpad/97a98836768f8f0154f8f86e5e14c2bb7e74132e-p2-gcc-4.9.2/breakpad-97a98836768f8f0154f8f86e5e14c2bb7e74132e-p2-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/bzip2/1.0.6-p2-gcc-4.9.2/bzip2-1.0.6-p2-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/cctz/2.2-gcc-4.9.2/cctz-2.2-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/cmake/3.14.3-gcc-4.9.2/cmake-3.14.3-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/crcutil/440ba7babeff77ffad992df3a10c767f184e946e-p1-gcc-4.9.2/crcutil-440ba7babeff77ffad992df3a10c767f184e946e-p1-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/flatbuffers/1.6.0-gcc-4.9.2/flatbuffers-1.6.0-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/gcc/4.9.2-gcc-4.9.2/gcc-4.9.2-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/gdb/7.9.1-p1-gcc-4.9.2/gdb-7.9.1-p1-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/gflags/2.2.0-p2-gcc-4.9.2/gflags-2.2.0-p2-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/glog/0.3.4-p3-gcc-4.9.2/glog-0.3.4-p3-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/gperftools/2.5-gcc-4.9.2/gperftools-2.5-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/gtest/1.6.0-gcc-4.9.2/gtest-1.6.0-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/libev/4.20-gcc-4.9.2/libev-4.20-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/libunwind/1.3-rc1-p3-gcc-4.9.2/libunwind-1.3-rc1-p3-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/lz4/1.7.5-gcc-4.9.2/lz4-1.7.5-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/openldap/2.4.47-gcc-4.9.2/openldap-2.4.47-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/openssl/1.0.2l-gcc-4.9.2/openssl-1.0.2l-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/orc/1.5.5-p1-gcc-4.9.2/orc-1.5.5-p1-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/protobuf/3.5.1-gcc-4.9.2/protobuf-3.5.1-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/flatbuffers/1.6.0-gcc-4.9.2/flatbuffers-1.6.0-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/crcutil/440ba7babeff77ffad992df3a10c767f184e946e-p1-gcc-4.9.2/crcutil-440ba7babeff77ffad992df3a10c767f184e946e-p1-gcc-4.9.2-ec2-package-centos-7.tar.gz
    https://native-toolchain.s3.amazonaws.com/build/51-03506fd053/gcc/4.9.2-gcc-4.9.2/gcc-4.9.2-gcc-4.9.2-ec2-package-centos-7.tar.gz

    下载完成后,在源代码的文件夹下建一个 toolchain文件夹,把没有颜色标注的直接放到toolchain跟目录下,标注颜色的根据网址新建2个文件夹 cdp_components_1352353 cdh_components_1173663 把对应的文件放到对应的文件夹中,编译的过程中有时候明明存在了,还会重新下载的情况下,提前自己解压下就会跳过。(主要的需要的包网址给大家备好,当时就这卡了N久没速度干等,对于网速不好的同学是个挑战,大家各显神通,后续整理好我把本地的上传到网盘分享下)

  7. 执行编译命令

    cd ~/Impala
    export IMPALA_HOME=`pwd`
    $IMPALA_HOME/bin/bootstrap_system.sh
    source $IMPALA_HOME/bin/impala-config.sh
    $IMPALA_HOME/buildall.sh -noclean -notests
  8. 如果能出现(盗图哈,我的当时没截图),就证明差不多快成功了

补充我下载好的资源分享:

链接:https://pan.baidu.com/s/1TCGTW0QS00zJi8iGsn5bmQ
提取码:rzkx

错误:

1.编译失败 ,需要重新执行编译的话,需要删除:

编译失败 需要删除:
cd /usr/local/bin rm -rf ant
cd /var/lib/pgsql yum remove postgresql
rm -rf data/
再次执行编译命令

2.

g++: internal compiler error: Killed (program cc1plus)

执行 :dmesg
[ 4449.266432] Out of memory: Kill process 11351 (cc1plus) score 782 or sacrifice child 虚拟机增加内存,gcc 编译需要很多内存

3. 到编译到最后的时候非常慢,[run maven -B xxxxx]的字样卡住时,这个是在下载maven 的资源库下载到本地,非常慢。需要等待N久。稍后我整理好我的本地的资源统一上传。可以下载大概 500M左右

Impala 3.3.0 源码编译安装的更多相关文章

  1. ambari 2.5.0源码编译安装

    参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...

  2. 源码编译安装MySQL8.0

    源码编译安装MySQL8.0 0.前期准备条件 查看linux的版本 [root@mysql etc]# cat /etc/redhat-release CentOS Linux release 7. ...

  3. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  4. [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程

    标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...

  5. centos 7 下 rabbitmq 3.8.0 & erlang 22.1 源码编译安装

    centos 7 下 rabbitmq 3.8.0 & erlang 22.1 源码编译安装 安装前请检查好erlang和rabbitmq版本是否相匹配参考:RabbitMQ Erlang V ...

  6. centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版

    zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...

  7. 源码编译安装MySQL8.0.20

    1 概述 本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,首先会介绍一些编译安装的相关知识,然后开始编译安装 2 源码编译安装的相关知识 2.1 make与configure make ...

  8. SSH/SSL 源码编译安装简易操作说明

    环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...

  9. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

随机推荐

  1. NB-IoT的PSM模式有什么优点

    在NB-IoT系统中,PSM模式的优点是可进行长时间休眠,缺点是对终端接收(Mobile Terminated,MT)业务响应不及时,主要应用于远程抄表等对下行实时性要求不高的业务.实际上,物联网设备 ...

  2. Java学习的第四十六天

    1.例8.1例类 import java.util.Scanner; public class Cjava { public static void main(String[]args) { Time ...

  3. Java学习的第二十四天

    1. 目录管理 2.文件方法太多记不清 3.明天学习流和流的分类

  4. 300万运算/秒 :VoltDB在电信行业基准测试上可线性扩展性能

    01 总 体 概 述 VoltDB受到全球电信软件解决方案提供商的信赖,后者将其作为首选内存数据库来驱动他们部署在全球100多家运营商处的任务关键型应用.VoltDB受到青睐的原因在于其性能和功能不仅 ...

  5. 《我想进大厂》之Java基础夺命连环16问

    说好了面试系列已经完结了,结果发现还是真香,嗯,以为我发现我的Java基础都没写,所以这个就算作续集了,续集第一篇请各位收好. 说说进程和线程的区别? 进程是程序的一次执行,是系统进行资源分配和调度的 ...

  6. DevExpress XtraReport报表预览时可编辑的功能

    设置控件的EditOptions.Enabled=true即可 注册实现PrintingSystem. EditingFieldChanged事件,可获得当前发生更改的控件的值. 另:XtraRepo ...

  7. java-Queue方法

    Collection>Queue // 1. 新增 add/ offer boolean add(E e); // 队列满,IllegalStateException boolean offer ...

  8. 三、分布式编程总结------linux多线程服务端编程

  9. C/C++中内存对齐问题的一些理解(转)

    内存对齐指令 一般来说,内存对齐过程对coding者来说是透明的,是由编译器控制完成的 如对内存对齐有明确要求,可用#pragma pack(n)指定,以n和结构体中最长数据成员长度中较小者为有效值 ...

  10. Debian 64位内核升级步骤

    安装相关依赖包 apt-get install bzip2 libncurses5-dev kernel-package zlib1g-dev gcc make kernel-package wget ...