Hadoop2.7 安装

第三节 Hadoop2.7 安装

介绍

Step1: 配置远程登录

由于我们没有安装桌面环境,虚拟机中Centos的终端相对简陋,我们在宿主机终端通过SSH登录Centos即可.(主机系统为Ubuntu ,我们不需要下载其他的远程连接工具)

  • 将服务器IP设为静态

    打开网络配置文件,命令如下

    1
    sudo  vi /etc/sysconfig/network-scripts/ifcfg-ens33

    用如下内容替换文件中的内容,将注释内容更改为自己服务器相应的。

    1
    2
    3
    4
    5
    6
    7
    8
    TYPE="Ethernet"
    BOOTPROTO="static"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR=192.168.200.101 #IP
    NETMASK=255.255.255.0 #子网掩码
    GATEWAY=192.168.200.2 #网关
    DNS1=114.114.114.114

    重启网络

    1
    sudo service network restart
  • 在宿主机hosts文件中添加相应服务器的域名映射.

    1
    sudo gedit /etc/hosts

    img

  • 测试SSH登录

    1
    sudo ssh hadoop14

    image-20210505210240332

  • 更改主机名

    1
    sudo vi /etc/hostname # 修改为master

    image-20210505223717010

Step2: 安装JDK

  • Hadoop支持Openjdk ,因此我们可用使用命令 安装openjdk7,替代Oracle JDK。

    1
    su -c "yum install java-1.7.0-openjdk"
  • 查看Java版本

    1
    java -version

    image-20210505211303880

  • 配置Java环境变量

    1
    2
    3
    sudo vi /etc/profile
    # java
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64

    Step3: 安装Hadoop2.7.3

  • 新建资源目录

    1
    2
    sudo mkdir /opt/softwares   
    sudo mkdir /opt/modules
  • 安装wget

    1
    yum install wget
  • 下载hadoop2.7.3 ,速度较慢

    推荐使用百度网盘下载到本地后,使用scp命令上传到服务器

    链接: https://pan.baidu.com/s/1W_S5BcghFqjwdUi0GfqeSQ 密码: p2ek

    1
    2
    3
    wget  https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz #在线下载

    sudo scp -r hadoop-2.7.3.tar.gz hadoop14:/opt/softwares/ #本地上传
  • 解压hadoop,转到hadoop文件夹下,执行以下命令。

    1
    tar -xvf  hadoop-2.7.3.tar.gz
  • 关闭防火墙 由于hadoop需要打开的端口太多,因此此处暂时关闭了防火墙。要关闭防火墙,必须在root用户下使用以下命令:

    1
    2
    3
    4
    #Close the firewall
    systemctl stop firewalld.service
    #Turn off boot and self-start
    systemctl disable firewalld.service

    创建数据存储目录

    1
    2
    3
    cd /usr/local/hadoop
    mkdir tmp
    mkdir -p hdfs/data hdfs/name
  • 配置环境变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
        sudo vi /etc/profile
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
    export HADOOP_HOME=/opt/softwares/hadoop
    export HADOOP_INSTALL=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    使用以下命令初始化变量。
    source /etc/profile
    完成后,您现在可以检查是否设置了环境变量。运行以下命令。
    echo $JAVA_HOME
    它应该提供以下输出。
    /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
    同时运行以下命令。
    echo $HADOOP_HOME
    它应该显示以下输出。
    /opt/softwares/hadoop
  • 配置,进入hadoop目录下

    1 修改core-site.xml文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <configuration>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value> #
    </property>
    <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop/tmp</value> #
    <description>Abase for other temporary directories.</description>
    </property>
    </configuration>

    2 修改hdfs-site.xml文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <configuration>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>linux-node1:9001</value>
    <description># View HDFS status </description> through the web interface
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/dfs/name</value> #
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hadoop/dfs/data</value> #
    </property>
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    <description># Each Block has two backups </description>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    </configuration>

    3 修改mapred-site.xml (重命名mapred-site.xml.template并添加以下内容) (这是MapReduce任务的配置。因为Hadoop 2.x使用yarn框架来实现分布式部署,所以必须在mapreduce.framework.name属性下配置yarn。mapred.map.tasks和mapred.reduce.tasks分别是map和reduce的任务数。)

    1
    mv mapred-site.xml.template mapred-site.xml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value> #
    </property>
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value> #
    </property>
    </configuration>

    4 配置节点yarn-site.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <configuration>
    <!-- Site specific YARN configuration properties -->
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8032</value> #
    </property>
    <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8030</value> #
    </property>
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value> #
    </property>
    <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:8033</value> #
    </property>
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8088</value> #
    </property>
    <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>8192</value>
    </property>
    </configuration>

    5 配置hadoop环境变量

    1
    2
    3
    4
    5
    6
    [root@master ~]$   vi /etc/profile
    #Replace the previously modified java environment variable.
    export JAVA_HOME=java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    1
    2
    3
    4
    5
    [hadoop@master ~]$   vi ~/.bashrc
    export JAVA_HOME=java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    Step4:克隆虚拟机

  • 克隆Hadoop02,Hadoop03节点。

    关闭虚拟机master,然后在VMware左侧的虚拟机列表中右键单击【Hadoop01】,选择【Manager】->【Clone】

image-20210506213059244

点击下一步,在Clone Type处选择Create a full clone

image-20210506213229331

修改虚拟机名称与文件路径,点击完成,等待克隆完成

image-20210506213538939

克隆Hadoop03的步骤同上

  • 修改节点主机名

    首先修改Hadoop02和Hadoop03的主机名(他们目前都是master)

    1
    2
    3
    vi /etc/hostnames
    # Hadoop02修改为slave1
    # Hadoop03修改为slave2

    image-20210506213818091

  • 修改IP

    1
    2
    3
    4
    sudo  vi /etc/sysconfig/network-scripts/ifcfg-ens33
    # 修改Hadoop02的IP为192.168.200.102
    # 修改Hadoop03的IP为192.168.200.103
    sudo service network restart #重启网络

    image-20210506214147981

  • 添加域名解析

    1
    2
    3
    4
    5
    6
    7
    8
    9
    分别修改Hadoop01,Hadoop02,Hadoop03,及宿主机的域名映射文件
    sudo vi /etc/hosts
    # 在host文件末尾追加以下内容:

    # 192.168.200.101 master

    # 192.168.200.102 slave1

    # 192.168.200.103 slave2

    image-20210506220314774

  • 在各节点使用ping命令检查是否配置成功:

    1
    2
    3
    ping master
    ping slave1
    ping slave2

    image-20210506220516744

Step5:配置ssh免密登录

  • 生成密钥文件:

    1
    2
    3
    ssh-keygen -t rsa
    # 生成中按enter即可
    # 在三台服务器中执行此命令
  • SSH分发

    1
    2
    3
    4
    5
    ssh-copy-id master
    ssh-copy-id slave1
    ssh-copy-id slave2
    # 在三台服务器中执行上述命令
    #Are you sure you want to continue connecting (yes/no)? 需输入yes

    image-20210506220952744

  • 验证SSH登录

    1
    2
    3
    4
    ssh master
    ssh slave1
    ssh slave2
    #三台机器中分别执行上述命令

    image-20210506221045657

  • 格式化一个新的分布式文件系统:

1
2
3
4
5
hadoop namenode -format
#在第一使用 Hadoop 之前,需要先格式化
#在master上,执行上述命令
#显示 tmp/dfs/name has been successfully formatted
#及Exiting with status 0 表明格式化成功

image-20210507142357281

Step6: 启动Hadoop

1
2
3
#在master上执行
cd /usr/app/hadoop-2.7.3/sbin/
./start-all.sh
  • jps查看各节点启动进程

    image-20210507160031766

    image-20210507150351988

    image-20210507150409026

Step7: 集群web

1
2
3
Hadoop集群启动并运行后,可以通过web-ui进行集群查看,如下所述:
然后本机访问http://(Hadoop01 IP):50070 #hdfs
http://(Hadoop01 IP):8088 #yarn

image-20210507160547096

image-20210507193430132

Step8:验证

  • 验证 HDFS HA 首先向 hdfs 上传一个文件

    1
    2
    hadoop fs -put /etc/profile /
    hadoop fs -ls /

    image-20210507194605490

    通过浏览器访问:http://192.168.200.11:50070

  • 验证 YARN

    运行一下 hadoop 提供的 demo 中的 WordCount 程序:

    1
    hadoop jar /usr/app/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /profile /out

    image-20210507194159027

至此,hadoop安装完成 下节Zookeeper安装


:D 一言句子获取中...