Hadoop3.3.0--Linux编译安装

基础环境:Centos 7.7

编译环境软件安装目录

mkdir -p /export/server


Hadoop编译安装

  • 安装编译相关的依赖

    yum install gcc gcc-c++ make autoconf automake libtool curl lzo-devel zlib-devel openssl openssl-devel ncurses-devel snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop libXtst zlib -y

    yum install -y doxygen cyrus-sasl* saslwrapper-devel*

  • 手动安装cmake

    #yum卸载已安装cmake 版本低
    yum erase cmake

    #解压
    tar zxvf CMake-3.19.4.tar.gz

    #编译安装
    cd /export/server/CMake-3.19.4

    ./configure

    make && make install

    #验证
    [root@node4 ~]# cmake -version
    cmake version 3.19.4

    #如果没有正确显示版本 请断开SSH连接 重写登录

  • 手动安装snappy

    #卸载已经安装的

    rm -rf /usr/local/lib/libsnappy*
    rm -rf /lib64/libsnappy*

    #上传解压
    tar zxvf snappy-1.1.3.tar.gz

    #编译安装
    cd /export/server/snappy-1.1.3
    ./configure
    make && make install

    #验证是否安装
    [root@node4 snappy-1.1.3]# ls -lh /usr/local/lib |grep snappy
    -rw-r–r-- 1 root root 511K Nov 4 17:13 libsnappy.a
    -rwxr-xr-x 1 root root 955 Nov 4 17:13 libsnappy.la
    lrwxrwxrwx 1 root root 18 Nov 4 17:13 libsnappy.so -> libsnappy.so.1.3.0
    lrwxrwxrwx 1 root root 18 Nov 4 17:13 libsnappy.so.1 -> libsnappy.so.1.3.0
    -rwxr-xr-x 1 root root 253K Nov 4 17:13 libsnappy.so.1.3.0

  • 安装配置JDK 1.8

    #解压安装包
    tar zxvf jdk-8u65-linux-x64.tar.gz

    #配置环境变量
    vim /etc/profile

    export JAVA_HOME=/export/server/jdk1.8.0_65
    export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
    export CLASSPATH=.: J A V A _ H O M E / l i b / d t . j a r : JAVA\_HOME/lib/dt.jar: JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar

    source /etc/profile

    #验证是否安装成功
    java -version

    java version “1.8.0_65”
    Java™ SE Runtime Environment (build 1.8.0_65-b17)
    Java HotSpot™ 64-Bit Server VM (build 25.65-b01, mixed mode)
    You have new mail in /var/spool/mail/root

  • 安装配置maven

    #解压安装包
    tar zxvf apache-maven-3.5.4-bin.tar.gz

    #配置环境变量
    vim /etc/profile

    export MAVEN_HOME=/export/server/apache-maven-3.5.4
    export MAVEN_OPTS=“-Xms4096m -Xmx4096m”
    export PATH=: M A V E N _ H O M E / b i n : MAVEN\_HOME/bin: MAVEN_HOME/bin:PATH

    source /etc/profile

    #验证是否安装成功
    [root@node4 ~]# mvn -v
    Apache Maven 3.5.4

    #添加maven 阿里云仓库地址 加快国内编译速度
    vim /export/server/apache-maven-3.5.4/conf/settings.xml

    alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central
  • 安装ProtocolBuffer 3.7.1

    #卸载之前版本的protobuf

    #解压
    tar zxvf protobuf-3.7.1.tar.gz

    #编译安装
    cd /export/server/protobuf-3.7.1
    ./autogen.sh
    ./configure
    make && make install

    #验证是否安装成功
    [root@node4 protobuf-3.7.1]# protoc --version
    libprotoc 3.7.1

  • 编译hadoop

    #上传解压源码包
    tar zxvf hadoop-3.3.0-src.tar.gz

    #编译
    cd /root/hadoop-3.3.0-src

    mvn clean package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib

    #参数说明:

    Pdist,native :把重新编译生成的hadoop动态库;
    DskipTests :跳过测试
    Dtar :最后把文件以tar打包
    Dbundle.snappy :添加snappy压缩支持【默认官网下载的是不支持的】
    Dsnappy.lib=/usr/local/lib :指snappy在编译机器上安装后的库路径

  • 编译之后的安装包路径

    /root/hadoop-3.3.0-src/hadoop-dist/target

  • Hadoop 完全分布式安装

    • 集群规划

      主机

      角色

      node1

      NN DN RM NM

      node2

      SNN DN NM

      node3

      DN NM

    • 基础环境

      # 主机名 hosts映射
      vim /etc/hosts

      127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

      192.168.227.151 node1.itcast.cn node1
      192.168.227.152 node2.itcast.cn node2
      192.168.227.153 node3.itcast.cn node3

      JDK 1.8安装 上传 jdk-8u65-linux-x64.tar.gz到/export/server/目录下

      cd /export/server/
      tar zxvf jdk-8u65-linux-x64.tar.gz

      #配置环境变量
      vim /etc/profile
      
      export JAVA\_HOME=/export/server/jdk1.8.0\_65
      export PATH=$PATH:$JAVA\_HOME/bin
      export CLASSPATH=.:$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar
      
      #重新加载环境变量文件
      source /etc/profile
      

      集群时间同步

      ntpdate ntp5.aliyun.com

      防火墙关闭

      firewall-cmd --state #查看防火墙状态
      systemctl stop firewalld.service #停止firewalld服务
      systemctl disable firewalld.service #开机禁用firewalld服务

      ssh免密登录

      #node1生成公钥私钥 (一路回车)
      ssh-keygen 
      
      #node1配置免密登录到node1 node2 node3
      ssh-copy-id node1
      ssh-copy-id node2
      ssh-copy-id node3
      
    • 上传Hadoop安装包到node1 /export/server

      hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

      tar zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

    • 修改配置文件(配置文件路径 hadoop-3.3.0/etc/hadoop)

      • hadoop-env.sh

        export JAVA_HOME=/export/server/jdk1.8.0_65

        #文件最后添加
        export HDFS_NAMENODE_USER=root
        export HDFS_DATANODE_USER=root
        export HDFS_SECONDARYNAMENODE_USER=root
        export YARN_RESOURCEMANAGER_USER=root
        export YARN_NODEMANAGER_USER=root

      • core-site.xml

        fs.defaultFS hdfs://node1:8020 hadoop.tmp.dir /export/data/hadoop-3.3.0 hadoop.http.staticuser.user root hadoop.proxyuser.root.hosts \* hadoop.proxyuser.root.groups \*
      • hdfs-site.xml

        dfs.namenode.secondary.http-address node2:9868
      • mapred-site.xml

        mapreduce.framework.name yarn mapreduce.jobhistory.address node1:10020 mapreduce.jobhistory.webapp.address node1:19888 yarn.app.mapreduce.am.env HADOOP\_MAPRED\_HOME=${HADOOP\_HOME} mapreduce.map.env HADOOP\_MAPRED\_HOME=${HADOOP\_HOME} mapreduce.reduce.env HADOOP\_MAPRED\_HOME=${HADOOP\_HOME}
      • yarn-site.xml

        yarn.resourcemanager.hostname node1 yarn.nodemanager.aux-services mapreduce\_shuffle yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false yarn.log-aggregation-enable true yarn.log.server.url http://node1:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800
      • workers

        node1
        node2
        node3

    • 分发同步hadoop安装包

      cd /export/server

      scp -r hadoop-3.3.0 root@node2: P W D s c p − r h a d o o p − 3.3.0 r o o t @ n o d e 3 : PWD scp -r hadoop-3.3.0 root@node3: PWDscprhadoop3.3.0root@node3:PWD

    • 将hadoop添加到环境变量(3台机器)

      vim /etc/proflie

      export HADOOP_HOME=/export/server/hadoop-3.3.0
      export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin

      source /etc/profile

  • Hadoop集群启动

    • 首次启动)格式化namenode

      hdfs namenode -format

    • 脚本一键启动

      [root@node1 ~]# start-dfs.sh
      Starting namenodes on [node1]
      Last login: Thu Nov 5 10:44:10 CST 2020 on pts/0
      Starting datanodes
      Last login: Thu Nov 5 10:45:02 CST 2020 on pts/0
      Starting secondary namenodes [node2]
      Last login: Thu Nov 5 10:45:04 CST 2020 on pts/0

      [root@node1 ~]# start-yarn.sh
      Starting resourcemanager
      Last login: Thu Nov 5 10:45:08 CST 2020 on pts/0
      Starting nodemanagers
      Last login: Thu Nov 5 10:45:44 CST 2020 on pts/0

    • Web UI页面

    • 错误1:运行hadoop3官方自带mr示例出错。

      • 错误信息

        Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

        Please check whether your etc/hadoop/mapred-site.xml contains the below configuration:

        yarn.app.mapreduce.am.env
        HADOOP_MAPRED_HOME= f u l l p a t h o f y o u r h a d o o p d i s t r i b u t i o n d i r e c t o r y < / v a l u e > < / p r o p e r t y > < p r o p e r t y > < n a m e > m a p r e d u c e . m a p . e n v < / n a m e > < v a l u e > H A D O O P _ M A P R E D _ H O M E = {full path of your hadoop distribution directory}</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP\_MAPRED\_HOME= fullpathofyourhadoopdistributiondirectory</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME={full path of your hadoop distribution directory}


        mapreduce.reduce.env
        HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}

      • 解决 mapred-site.xml,增加以下配置

        yarn.app.mapreduce.am.env HADOOP\_MAPRED\_HOME=${HADOOP\_HOME} mapreduce.map.env HADOOP\_MAPRED\_HOME=${HADOOP\_HOME} mapreduce.reduce.env HADOOP\_MAPRED\_HOME=${HADOOP\_HOME}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: spark-3.3.0-bin-hadoop3.tgz和spark-3.3.0-bin-without-hadoop.tgz是Apache Spark开源项目提供的两种软件包。它们都是用于在分布式计算环境中进行大规模数据处理和分析的工具。 spark-3.3.0-bin-hadoop3.tgz包含了Apache Spark的二进制文件以及Hadoop分布式文件系统的依赖库。Hadoop是一个开源的分布式计算框架,它提供了分布式存储和处理大规模数据的能力。如果你计划在Hadoop集群上运行Spark应用程序,那么你应该选择这个软件包。 spark-3.3.0-bin-without-hadoop.tgz是一个独立的Spark软件包,没有包含Hadoop依赖库。如果你已经在你的系统上配置了Hadoop环境,或者你想在其他分布式文件系统上运行Spark应用程序,那么你可以选择这个软件包。 在选择软件包时,你应该根据你的需求和环境来决定。如果你已经有了Hadoop环境并且想在上面运行Spark应用程序,那么应该选择spark-3.3.0-bin-hadoop3.tgz。如果你只是想在单机或其他分布式文件系统上运行Spark应用程序,那么可以选择spark-3.3.0-bin-without-hadoop.tgz。 ### 回答2: spark-3.3.0-bin-hadoop3.tg和spark-3.3.0-bin-without-hadoop.tgz是Apache Spark的不同版本的压缩文件。 spark-3.3.0-bin-hadoop3.tg是包含了Apache Hadoop版本3.x的已编译的Apache Spark版本。Apache Spark是一个开源的分析引擎,用于处理大规模数据计算和分析。它支持并行处理,能够在大规模集群上进行分布式计算任务的执行。而Apache Hadoop是一个用于处理大数据的开源框架,它提供了分布式存储和计算的能力。因此,当使用spark-3.3.0-bin-hadoop3.tg时,可以方便地在与Hadoop版本3.x兼容的环境中使用Apache Spark,并且可以充分利用Hadoop的优势。 spark-3.3.0-bin-without-hadoop.tgz是不包含Apache Hadoop的已编译Apache Spark版本。这个版本适用于用户已经在集群中安装了独立的Hadoop环境,或者希望使用其他版本的Hadoop的情况。通过使用spark-3.3.0-bin-without-hadoop.tgz,用户可以自由选择与他们的Hadoop环境兼容的Spark版本,并且可以更容易地进行集成和调试。 总之,spark-3.3.0-bin-hadoop3.tg和spark-3.3.0-bin-without-hadoop.tgz是Apache Spark的不同版本的压缩文件,分别适用于已安装Hadoop版本3.x的环境和希望使用其他版本Hadoop或已有独立Hadoop环境的用户。用户可以根据自己的需求选择对应的版本进行安装和使用。 ### 回答3: spark-3.3.0-bin-hadoop3.tg 和 spark-3.3.0-bin-without-hadoop.tgz 是两个版本的 Apache Spark 软件包。 spark-3.3.0-bin-hadoop3.tg 是一个含有 Hadoop 的 Apache Spark 软件包。Hadoop 是一个用于处理大规模数据的开源框架,它提供了分布式存储和计算的能力。这个软件包的目的是为了与 Hadoop 3.x 版本兼容,它包含了与 Hadoop 的集成以及针对分布式存储和计算的优化。如果你想要在已经安装Hadoop 3.x 的集群上使用 Apache Spark,这个软件包将是一个好的选择。 另一方面,spark-3.3.0-bin-without-hadoop.tgz 是一个不包含 Hadoop 的 Apache Spark 软件包。这个软件包主要用于那些已经在集群中运行了其他的大数据处理框架(如 Hadoop、Hive 等)的用户。如果你的集群已经配置好了其他的大数据处理框架,而且你只需要 Spark 的计算引擎,那么这个软件包会更加适合你。 无论你选择哪个软件包,它们都提供了 Apache Spark 的核心功能,例如分布式计算、内存计算、数据处理、机器学习等。你可以根据你的实际需求和环境选择合适的软件包进行安装和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值