美文网首页源码编译系列
使用centos编译hadoop

使用centos编译hadoop

作者: cdarling | 来源:发表于2019-01-13 10:22 被阅读0次

    使用ubuntu的时候,由于主机名方面的原因,连接的时候不够方便,打算尝试一下centos
    在苹果电脑上,打算使用vmware fusion

    前期准备:
    centos 7.6 iso,可以在清华源下载

    目标,在centos上可以编译出完整native library的hadoop

    步骤1,更换软件源
    使用清华的centos源,参考官方说明
    使用vi编辑,yum makecache,即可

    步骤2,安装open-vm-tools,与主机共享文件夹
    首先在虚拟机界面打开共享文件夹功能,并指定要共享的文件夹
    安装虚拟机通信的软件
    yum install open-vm-tools
    可以尝试使用命令列出共享文件夹,并挂载
    /usr/bin/vmware-hgfsclient
    mkdir -p /mnt/hgfs
    vmhgfs-fuse .host:/ /mnt/hgfs
    也可以添加到/etc/fstab,开机自动挂载
    sudo mkdir -p /mnt/hgfs
    sudo chown <usrname>:<usergroup> /mnt/hgfs
    getent group
    在/etc/fstab添加一行:
    .host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,auto_unmount,defaults 0 0
    以上的hgfs文件夹的owner,与uid/gid两个数值,要在系统的用户列表里确认
    fstab参数解释参考链接,用户名及用户id列表参考链接
    不知道是不是我自己拼写错了,开机进入紧急模式的话,可以把auto_unmount去掉就好了

    相关内容在SO,还有未解决的提问未妥善解决的提问
    其他参考链接1参考链接2参考链接3

    步骤3,下载安装java和maven
    因为centos提供的java是openjdk,而maven版本是3.0,达不到3.3的需求,需要手动安装
    下载jdk.tar.gz和maven.tar.gz放到共享文件夹中
    在centos中,/opt目录下,分别对jdk和maven用tar xzf解压
    创建文件夹链接,以便以后升级,直接升级软链接即可
    ln -s jdk1.8.0_192 java-oracle
    ln -s apache-maven-3.6.0 apache-maven
    添加环境变量JAVA_HOME
    export JAVA_HOME=/opt/java-oracle/
    echo "export JAVA_HOME=/opt/java-oracle/" >> ~/.bashrc
    添加本地的maven repo,把用户文件夹下的.m2文件夹添加到虚拟机共享文件夹
    如果需要,在其中改好settings.xml,使用国内源,比如ali nexus,然后给虚拟机用:
    ln -s /mnt/hgfs/.m2 ~/.m2
    然后,把这几个命令使用alternatives添加到系统/bin/目录,以便直接运行命令
    alternatives --install /bin/java java /opt/java-oracle/bin/java 1
    alternatives --install /bin/javac javac /opt/java-oracle/bin/javac 1
    alternatives --install /bin/jps jps /opt/java-oracle/bin/jps 1
    alternatives --install /bin/mvn mvn /opt/apache-maven/bin/mvn 1
    alternatives --install /bin/mvnDebug mvnDebug /opt/apache-maven/bin/mvnDebug 1
    alternatives --install /bin/mvnyjp mvnyjp /opt/apache-maven/bin/mvnyjp 1

    安装oracle java可参考链接参考链接2参考链接3参考链接4
    使用alternatives可以参考系统手册man或info,也可以参考链接
    不手动解压安装,也可以尝试maven wrapper,好像不够方便

    步骤4,安装编译需要的环境
    对照ubuntu上的build-essentials,centos需要安装
    yum install gcc gcc-c++ make
    其他hadoop需要的库中,zstd不在标准的repo,需要添加一个epel的repo
    yum install epel-release
    然后把epel的地址改为清华源,注意原来的/pub改完后没有了:
    vim /etc/yum.repos.d/epel.repo
    安装hadoop需要的库,比如:
    yum install libzstd-devel snappy-devel bzip2-devel cmake protobuf-devel openssl-devel zlib-devel

    有关epel的其他参考链接1参考链接2
    有关openssl-devel的参考链接
    不使用epel就需要手动编译的提问

    步骤5,解压并编译
    在/opt目录使用tar xzf解压hadoop-2.9.2-src.tar.gz
    mvn package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true

    编译之后,把得到的hadoop-dist/target/hadoop-x.y.z/lib/native/libhadoop.so.1.0.0放到/opt/hadoop-x.y.z/lib/native/,就能圆满地bin/hadoop checknative了

    另外,如果想用ifconfig但找不到,可以参考链接

    相关文章

      网友评论

        本文标题:使用centos编译hadoop

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