【愚公系列】2024年02月 大数据教学课程 020

    2025-09-25 23:02:08

    🚀前言在安装Hadoop之前,需要进行以下准备工作:

    确认操作系统:Hadoop可以运行在多种操作系统上,包括Linux、Windows和Mac OS等。选择适合你的操作系统,并确保操作系统版本符合Hadoop的要求。

    安装Java环境:Hadoop是基于Java开发的,因此需要先安装和配置Java环境。确保已经安装了符合Hadoop版本要求的Java Development Kit (JDK),并设置好JAVA_HOME环境变量。

    确认硬件要求:Hadoop是一个分布式系统,因此需要多台计算机组成集群。每台计算机至少需要具备一定的处理能力(如多核处理器)、足够的内存和硬盘空间等。根据Hadoop版本和集群规模,确认硬件要求并准备相应的计算机。

    确认网络连接:Hadoop集群中的各个节点需要能够互相通信,因此需要保证网络连接正常。确保集群中的计算机之间可以通过局域网或云服务商的虚拟网络互相访问。

    下载Hadoop软件包:从Hadoop官方网站下载适合你的操作系统和Hadoop版本的软件包。也可以考虑使用一些Hadoop发行版(如Cloudera、Hortonworks和Apache Bigtop等),它们提供了预配置的Hadoop环境和管理工具,简化安装和配置的过程。

    配置Hadoop:在安装Hadoop之前,需要对Hadoop的相关配置文件进行调整和设置,包括Hadoop的核心配置文件(如hadoop-env.sh、core-site.xml等)和HDFS配置文件(如hdfs-site.xml)等。根据自己的需求和集群规模,进行相应的配置。

    准备工作完成后,可以按照官方文档或相关教程的指引,进行Hadoop的安装和配置。安装完成后,可以启动Hadoop集群并验证其正常运行。

    本文主要讲解Hadoop的安装

    🚀一、appache版本hadoop重新编译🔎1.appache版本hadoop重新编译🦋1.1 为什么要编译hadoop由于appache给出的hadoop的安装包没有提供带C程序访问的接口,所以我们在使用本地库(本地库可以用来做压缩,以及支持C程序等等)的时候就会出问题,需要对Hadoop源码包进行重新编译.

    🦋1.2 编译环境的准备☀️1.2.1 准备linux环境准备一台linux环境,内存4G或以上,硬盘40G或以上,我这里使用的是Centos6.9 64位的操作系统(注意:一定要使用64位的操作系统)

    ☀️1.2.2 虚拟机联网,关闭防火墙,关闭selinux关闭防火墙命令:

    代码语言:javascript代码运行次数:0运行复制service iptables stop

    chkconfig iptables off 关闭selinux

    vim /etc/selinux/config

    ☀️1.2.3 安装jdk1.7注意hadoop-2.7.5 这个版本的编译,只能使用jdk1.7,如果使用jdk1.8那么就会报错

    查看centos6.9自带的openjdk

    rpm -qa | grep java

    将所有这些openjdk全部卸载掉

    rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64

    注意:这里一定不要使用jdk1.8,亲测jdk1.8会出现错误

    将我们jdk的安装包上传到/export/softwares(我这里使用的是jdk1.7.0_71这个版本)

    解压我们的jdk压缩包

    统一两个路径

    代码语言:javascript代码运行次数:0运行复制mkdir -p /export/servers

    mkdir -p /export/softwares

    cd /export/softwares

    tar -zxvf jdk-7u71-linux-x64.tar.gz -C ../servers/配置环境变量

    vim /etc/profile

    代码语言:javascript代码运行次数:0运行复制export JAVA_HOME=/export/servers/jdk1.7.0_71

    export PATH=:$JAVA_HOME/bin:$PATH让修改立即生效

    source /etc/profile

    ☀️1.2.4 安装maven这里使用maven3.x以上的版本应该都可以,不建议使用太高的版本,强烈建议使用3.0.5的版本即可

    将maven的安装包上传到/export/softwares

    然后解压maven的安装包到/export/servers

    代码语言:javascript代码运行次数:0运行复制cd /export/softwares/

    tar -zxvf apache-maven-3.0.5-bin.tar.gz -C ../servers/配置maven的环境变量

    vim /etc/profile

    代码语言:javascript代码运行次数:0运行复制export MAVEN_HOME=/export/servers/apache-maven-3.0.5

    export MAVEN_OPTS="-Xms4096m -Xmx4096m"

    export PATH=:$MAVEN_HOME/bin:$PATH让修改立即生效

    source /etc/profile

    解压maven的仓库

    tar -zxvf mvnrepository.tar.gz -C /export/servers/

    修改maven的配置文件

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/apache-maven-3.0.5/conf

    vim settings.xml指定我们本地仓库存放的路径

    添加一个我们阿里云的镜像地址,会让我们下载jar包更快

    代码语言:javascript代码运行次数:0运行复制

    alimaven

    aliyun maven

    http://maven.aliyun.com/nexus/content/groups/public/

    central

    ☀️1.2.5 安装findbugs解压findbugs

    tar -zxvf findbugs-1.3.9.tar.gz -C ../servers/

    配置findbugs的环境变量

    vim /etc/profile

    代码语言:javascript代码运行次数:0运行复制export JAVA_HOME=/export/servers/jdk1.7.0_75

    export PATH=:$JAVA_HOME/bin:$PATH

    export MAVEN_HOME=/export/servers/apache-maven-3.0.5

    export PATH=:$MAVEN_HOME/bin:$PATH

    export FINDBUGS_HOME=/export/servers/findbugs-1.3.9

    export PATH=:$FINDBUGS_HOME/bin:$PATH让修改立即生效

    source /etc/profile

    ☀️1.2.6 在线安装一些依赖包代码语言:javascript代码运行次数:0运行复制yum install autoconf automake libtool cmake

    yum install ncurses-devel

    yum install openssl-devel

    yum install lzo-devel zlib-devel gcc gcc-c++bzip2压缩需要的依赖包

    代码语言:javascript代码运行次数:0运行复制yum install -y bzip2-devel☀️1.2.7 安装protobuf解压protobuf并进行编译

    代码语言:javascript代码运行次数:0运行复制cd /export/softwares

    tar -zxvf protobuf-2.5.0.tar.gz -C ../servers/

    cd /export/servers/protobuf-2.5.0

    ./configure

    make && make install☀️1.2.8 安装snappy代码语言:javascript代码运行次数:0运行复制cd /export/softwares/

    tar -zxf snappy-1.1.1.tar.gz -C ../servers/

    cd ../servers/snappy-1.1.1/

    ./configure

    make && make install☀️1.2.9 编译hadoop源码对源码进行编译

    代码语言:javascript代码运行次数:0运行复制cd /export/softwares

    tar -zxvf hadoop-2.7.5-src.tar.gz -C ../servers/

    cd /export/servers/hadoop-2.7.5编译支持snappy压缩:

    mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X

    编译完成之后我们需要的压缩包就在下面这个路径里面

    代码语言:javascript代码运行次数:0运行复制/export/servers/hadoop-2.7.5/hadoop-dist/target🚀二、Hadoop的安装集群规划

    服务器IP

    192.168.174.100

    192.168.174.110

    192.168.174.120

    主机名

    node01

    node02

    node03

    NameNode

    SecondaryNameNode

    dataNode

    ResourceManager

    NodeManager

    🔎1.上传apache hadoop包并解压解压命令

    代码语言:javascript代码运行次数:0运行复制cd /export/softwares

    tar -zxvf hadoop-2.7.5.tar.gz -C ../servers/🔎2.修改配置文件🦋2.1 修改core-site.xml第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/hadoop-2.7.5/etc/hadoop

    vim core-site.xml代码语言:javascript代码运行次数:0运行复制

    fs.default.name

    hdfs://node01:8020

    hadoop.tmp.dir

    /export/servers/hadoop-2.7.5/hadoopDatas/tempDatas

    io.file.buffer.size

    4096

    fs.trash.interval

    10080

    🦋2.2 修改hdfs-site.xml第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/hadoop-2.7.5/etc/hadoop

    vim hdfs-site.xml代码语言:javascript代码运行次数:0运行复制

    dfs.namenode.secondary.http-address

    node01:50090

    dfs.namenode.http-address

    node01:50070

    dfs.namenode.name.dir

    file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2

    dfs.datanode.data.dir

    file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2

    dfs.namenode.edits.dir

    file:///export/servers/hadoop-2.7.5/hadoopDatas/nn/edits

    dfs.namenode.checkpoint.dir

    file:///export/servers/hadoop-2.7.5/hadoopDatas/snn/name

    dfs.namenode.checkpoint.edits.dir

    file:///export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits

    dfs.replication

    3

    dfs.permissions

    false

    dfs.blocksize

    134217728

    🦋2.3 修改hadoop-env.sh第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/hadoop-2.7.5/etc/hadoop

    vim hadoop-env.sh代码语言:javascript代码运行次数:0运行复制export JAVA_HOME=/export/servers/jdk1.8.0_141🦋2.4 修改mapred-site.xml第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/hadoop-2.7.5/etc/hadoop

    vim mapred-site.xml代码语言:javascript代码运行次数:0运行复制

    mapreduce.job.ubertask.enable

    true

    mapreduce.jobhistory.address

    node01:10020

    mapreduce.jobhistory.webapp.address

    node01:19888

    🦋2.5 修改yarn-site.xml第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/hadoop-2.7.5/etc/hadoop

    vim yarn-site.xml代码语言:javascript代码运行次数:0运行复制

    yarn.resourcemanager.hostname

    node01

    yarn.nodemanager.aux-services

    mapreduce_shuffle

    yarn.log-aggregation-enable

    true

    yarn.log-aggregation.retain-seconds

    604800

    yarn.nodemanager.resource.memory-mb

    20480

    yarn.scheduler.minimum-allocation-mb

    2048

    yarn.nodemanager.vmem-pmem-ratio

    2.1

    🦋2.6 修改mapred-env.sh第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/hadoop-2.7.5/etc/hadoop

    vim mapred-env.sh代码语言:javascript代码运行次数:0运行复制export JAVA_HOME=/export/servers/jdk1.8.0_141🦋2.7 修改slaves修改slaves文件,然后将安装包发送到其他机器,重新启动集群即可

    第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/hadoop-2.7.5/etc/hadoop

    vim slaves代码语言:javascript代码运行次数:0运行复制node01

    node02

    node03第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/tempDatas

    mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas

    mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2

    mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas

    mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2

    mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/nn/edits

    mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/snn/name

    mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits安装包的分发

    第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/

    scp -r hadoop-2.7.5 node02:$PWD

    scp -r hadoop-2.7.5 node03:$PWD🔎3.配置hadoop的环境变量三台机器都要进行配置hadoop的环境变量

    三台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制vim /etc/profile代码语言:javascript代码运行次数:0运行复制export HADOOP_HOME=/export/servers/hadoop-2.7.5

    export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH配置完成之后生效

    代码语言:javascript代码运行次数:0运行复制source /etc/profile🔎4.启动集群要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个模块。

    注意: 首次启动 HDFS 时,必须对其进行格式化操作。 本质上是一些清理和

    准备工作,因为此时的 HDFS 在物理上还是不存在的。

    hdfs namenode -format 或者 hadoop namenode –format

    准备启动

    第一台机器执行以下命令

    代码语言:javascript代码运行次数:0运行复制cd /export/servers/hadoop-2.7.5/

    bin/hdfs namenode -format

    sbin/start-dfs.sh

    sbin/start-yarn.sh

    sbin/mr-jobhistory-daemon.sh start historyserver三个端口查看界面

    http://node01:50070/explorer.html#/ 查看hdfs

    http://node01:8088/cluster 查看yarn集群

    http://node01:19888/jobhistory 查看历史完成的任务