您的位置:首页 > 大数据 > Hadoop

Linux虚拟机搭建Hadoop集群环境

2020-01-15 11:12 1351 查看

Linux虚拟机搭建Hadoop集群环境

1.1虚拟机环境准备

1.1.1创建虚拟机

使用VBox创建一个新的Cos7虚拟机

1.1.2更改虚拟机IP地址

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

修改为如下内容,设置ip为192.168.56.200

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=2bc72089-8564-4966-abb0-6638df3383c7
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.200

重启网络

systemctl restart network

1.1.3修改主机名

  1. 设置主机名

    设置为classhadoop

    hostnamectl set-hostname classhadoop

    查看

    hostnamectl

  2. 修改主机名查询静态表

    编辑

    vi /etc/hosts

    插入内容

    192.168.56.200 classhadoop

1.1.4关闭防火墙

  1. 关闭防火墙

    systemctl stop firewalld

  2. 禁用防火墙

    systemctl disable firewalld

    显示以下内容表示禁用成功:

    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

1.1.5创建hadoop用户

  1. 创建hadoop用户方便管理

添加用户

useradd hadoop

设置密码

passwd hadoop

  1. 为hadoop用户添加使用sudo不用输密码的权限

使用root用户修改/etc/sudoers文件

chmod 660 /etc/sudoers

vi /etc/sudoers

​ 找到"Allow root to run any commands anywhere"
添加:

root    ALL=(ALL)     ALL
kgc   ALL=(ALL)     ALL(或者是NOPASSWD:ALL)

​ 此时在test用户下使sudo不用输入root密码(在第一次使用时要输入test密码确认身份)

1.1.6创建Hadoop环境存放的目录

在/opt目录下创建文件夹

  1. 在/opt目录下创建install、software文件夹

  2. 修改install、software文件夹的所有者

    chown hadoop:hadoop /opt/install/ /opt/software/

1.2安装JDK

hadoop是使用java开发的,所以要先安装java环境

在linux系统下hadoop用户下的software目录中上传软件包。

  1. 解压tar压缩包

    tar -zxf jdk* -C /opt/install/

    如果是.gz格式参数用-zxvf

  2. 配置jdk环境变量

    vi /etc/profile

    在最后在PATH和CLASSPATH添加jJAVA_HOME和JRE_HOME的lib目录与bin目录

    export JAVA_HOME=/opt/install/jdk1.8.0_161
    export JRE_HOME=/usr/lib/jdk1.8.0_161/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
    export PATH=$JAVA_HOME/bin:$PATH

    source /etc/profile

  3. 测试jdk

    java -version

1.3安装Hadoop

1.3.1下载安装hadoop

  1. Hadoop下载地址:

https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/

  1. 将Hadoop安装包解压安装文件到/opt/install下面

tar -zxf hadoop-2.7.2.tar.gz -C /opt/install/

  1. 将hadoop添加到环境变量

    [ol]

    获取hadoop安装路径

    [root@classhadoop hadoop-2.6.0-cdh5.14.2]# pwd

  2. 打开/etc/profile文件

    vi /etc/profile

    ##HADOOP_HOME
    export HADOOP_HOME=/opt/install/hadoop-2.6.0-cdh5.14.2
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin

    source /etc/profile

[/ol]

hadoop集群设计

classhadoop(200) classhadoop1(201) classhadoop2(202)
HDFS NameNode
DataNode
DataNode SecondaryNameNode
DataNode
YARN NodeManager ResourceManager
NodeManager
NodeManager

1.3.2配置hadoop

hadoop的配置文件放在{HADOOP_HOME}/etc/hadoop/下

  1. hadoop-env.sh

    vi hadoop-env.sh

    # The java implementation to use.
    export JAVA_HOME=/opt/install/jdk1.8.0_161	//这里放自己的java目录
  2. hadoop核心配置文件core-site.xml

    mkdir /opt/hadoopdata

    vi core-site.xml

    将下面内容复制到configuration标签中

    <property>
    <!-- 指定HDFS中NameNode的地址 -->
    <name>fs.defaultFS</name>
    <value>hdfs://classhadoop:9000</value>
    </property>
    <!--设置hdfs文件存储目录-->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoopData</value>
    </property>
    <!--设置用户权限,默认是root用户-->
    <property>
    <name>hadoop.proxyuser.root.users</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
    </property>
  3. hdfs-site.xml:hdfs文件系统配置
    配置副本数量为2

    vi hdfs-site.xml

    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    <!--设置secondaryNN-->
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>classhadoop2:50090</value>
    </property>
    </configuration>
  4. 测试

    格式化NameNode(第一次启动时格式化,以后就不要总格式化)

    hdfs namenode -format

  5. 启动NameNode

    hadoop-daemon.sh start namenode

  6. 启动DataNode

    hadoop-daemon.sh start datanode

  7. 查看是否启动成功

    jps

    下面说明ok

    [root@classhadoop logs]# jps
    10896 Jps
    10787 DataNode
    10734 NameNode
  • mapreduce配置文件

      mapred-env.sh
      配置java_home

      export JAVA_HOME=/opt/install/jdk1.8.0_161

    1. mapred-site.xml

    cp mapred-site.xml.template mapred-site.xml

    vi mapred-site.xml

    <configuration>
    <!-- 指定mr运行在yarn上 -->
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>
  • yarn-site.xml

    vi yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    <!-- 指定YARN的ResourceManager的地址 -->
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>classhadoop1</value>
    </property>
    <!-- reducer获取数据的方式 -->
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    </configuration>
  • 2.3.3 SSH无密码登录

    1. 生成公钥私钥
      使用hadoop用户

      ssh-keygen -t rsa

    2. 将公钥放到authorized_keys文件中

      cat id_rsa.pub > authorized_keys

    配置两个从机

    复制classhadoop1,更改主机名与ip地址

    集群测试

    1. 如果是第一次启动需要格式化NameNode

      hdfs namenode -format

    2. 启动HDFS

      start-dfs.sh

    3. 启动YARN

      start-yarn.sh

      注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

    • 点赞 1
    • 收藏
    • 分享
    • 文章举报
    Quite-quiet 发布了15 篇原创文章 · 获赞 7 · 访问量 5万+ 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: