hadoop集群搭建_hadoop集群搭建心得 - CSDN
精华内容
参与话题
  • hadoop集群搭建(超详细版)

    万次阅读 多人点赞 2019-04-23 15:10:43
    1.准备好需要安装的软件 虚拟机VMware12.pro 操作系统CentOS 6.5 远程控制虚拟机的终端SecureCRT8.1 2.在虚拟机中安装CentOS操作系统 安装好虚拟机,图形界面如下图 创建新的虚拟机,选择...设置虚...

    1.准备好需要安装的软件

    虚拟机VMware12.pro

    操作系统CentOS 6.5

    远程控制虚拟机的终端SecureCRT8.1

    2.在虚拟机中安装CentOS操作系统

    安装好虚拟机,图形界面如下图

    创建新的虚拟机,选择自定义(高级),点击下一步

    虚拟机硬件兼容性默认,浏览需要安装的CentOS6.5镜像文件

    自定义用户名和密码(用于登录)

    设置虚拟机名称和存储路径

    处理器设置默认(后面可以修改),内存设为1GB

    网络类型选择NAT模式

    选择创建新虚拟磁盘

    最大磁盘大小设为20GB,然后将虚拟磁盘存储为单个文件

    将创建好的磁盘文件存储在虚拟机指定目录下

    虚拟机创建完成

    3. 虚拟网络配置

    编辑虚拟网络设置,选择NAT模式

    点击NAT设置,查看网络信息(后面设置ip会用到)

    查看主机ip地址

    修改网络配置文件,将BOOTPROTO值修改为”static”

    重启网络服务network

    再次查看主机ip

    4. 更改主机名称

    修改主机名文件(重启永久生效)

    查看主机名hostname(文件修改后没有重启主机名没有生效,可以用hostname临时生效)

    复制master文件两次,重命名为slave1和slave2,打开虚拟机文件,然后按照同样的方法设置两个节点的ip和主机名

    5.建立主机名和ip的映射

    查看是否能ping通

    6.配置ssh免密码登录

    在root用户下输入ssh-keygen -t rsa 一路回车

    秘钥生成后在~/.ssh/目录下,有两个文件id_rsa(私钥)和id_rsa.pub(公钥),将公钥复制到authorized_keys并赋予authorized_keys600权限

    同理在slave1和slave2节点上进行相同的操作,然后将公钥复制到master节点上的authoized_keys

    将master节点上的authoized_keys远程传输到slave1和slave2的~/.ssh/目录下

    检查是否免密登录(第一次登录会有提示)

    7.关闭防火墙

    关闭selinux(永久)

    8.安装JDK

    三个节点安装java并配置java环境变量

    解压压缩包

    在/etc/profile文件里添加jdk路径

    执行命令source /etc/profile使配置文件生效,并查看java版本信息

    9.安装MySQL(主节点)

    查询系统已安装的mysql

    彻底卸载mysql及其所依赖的包

    解压MySQL包

    安装MySQL有关的三个rpm包,分别为server、client和devel包

    启动mysql /usr/bin/mysqld_safe --skip-grant-tables & 并登陆mysql数据库

    查看mysql中的数据库

    10.安装SecureCRT

    操作比较简单,安装好的图形界面如图

    连接好之后

    12.搭建集群

    12.1 集群结构

    三个结点:一个主节点master两个从节点 内存1GB 磁盘20GB

     

     

    Ip地址

    主机名

    Namenode

    Secondary namenode

    Datanode

    Resource

    Manager

    NodeManager

    192.168.63.16

    master

    Y

    Y

    N

    Y

    N

    192.168.63.17

    slave1

    N

    N

    Y

    N

    Y

    192.168.63.18

    slave2

    N

    N

    Y

    N

    Y

     

    12.2 新建hadoop用户及其用户组

    用adduser新建用户并设置密码

     

    将新建的hadoop用户添加到hadoop用户组

    前面hadoop指的是用户组名,后一个指的是用户名

    赋予hadoop用户root权限

    12.3 安装hadoop并配置环境变量

    由于hadoop集群需要在每一个节点上进行相同的配置,因此先在master节点上配置,然后再复制到其他节点上即可。

    将hadoop包放在/usr/目录下并解压

    配置环境变量

    在/etc/profile文件中添加如下命令

    12.4 搭建集群的准备工作

    在master节点上创建以下文件夹

    /usr/hadoop-2.6.5/dfs/name

    /usr/hadoop-2.6.5/dfs/data

    /usr/hadoop-2.6.5/temp

     

    12.5 配置hadoop文件

    接下来配置/usr/hadoop-2.6.5/etc//hadoop/目录下的七个文件

    slaves    core-site.xml    hdfs-site.xml     mapred-site.xml     yarn-site.xml     hadoop-env.sh   yarn-env.sh

    配置hadoop-env.sh

    配置yarn-env.sh

    配置slaves文件,删除localhost

    配置core-site.xml

     

    配置hdfs-site.xml

     

    配置mapred-site.xml

     

    配置yarn-site.xml

     

    将配置好的hadoop文件复制到其他节点上

    12.6 运行hadoop

    格式化Namenode

    source /etc/profile

    13. 启动集群

     

    展开全文
  • hadoop集群搭建,详细过程

    千次阅读 2018-08-10 21:27:25
    HDFS分布式文件系统会将用户提交的文件存储在一个服务器集群中   HDFS中有两种重要的服务器软件角色: datanode --》负责存储用户文件的块 namenode--》负责记录用户存储的文件的虚拟路径,及文件每一个块的...
    1. 概念

    HDFS分布式文件系统会将用户提交的文件存储在一个服务器集群中

     

    HDFS中有两种重要的服务器软件角色:

    1. datanode --》负责存储用户文件的块
    2. namenode--》负责记录用户存储的文件的虚拟路径,及文件每一个块的具体位置(哪一块在哪一台datanode服务器上)

     

     

    1. 安装一个HDFS集群

     

    1. 准备工作:

    规划:要有一台机器安装namenode

          要有N台datanode服务器

     

     

    准备4台虚拟机:

    在vmware中创建一个虚拟机

    安装linux系统

    安装jdk

    主机名、ip地址、hosts映射

    安装ssh工具

    关闭防火墙

     

     

    关闭配置好的这一台虚拟,克隆出另外3台

          克隆出来的机器需要:

    1. 修改主机名
    2. 修改ip地址
    3. 修改物理网卡删掉eth0,改eth1为eth0,

     

     

    2)安装HDFS软件

    Hdfs/YARN是两个分布式服务系统,mapreduce是运算程序,这些软件通通包含在HADOOP安装包中。那么,我们在安装时,其实对每一台机器都是安装一个整体的HADOOP软件,只是将来会在不同的机器上启动不同的程序。

     

     

    1/ 上传一个hadoop安装压缩包到hdp26-01上,解压到/root/apps/

    2/ 认识hadoop软件的目录结构

     

    2/ 修改配置文件

    hadoop-env.sh:

    配置一个JAVA_HOME目录即可

    export JAVA_HOME=/root/apps/jdk1.8.0_60

     

    core-site.xml

    最核心配置:HDFS的URI

    参数名: fs.defaultFS

    参数值: hdfs://hdp26-01:9000/

    <configuration>

    <property>

    <name>fs.defaultFS</name>

    <value>hdfs://hdp26-01:9000/</value>

    </configuration>

     

     

     

     

     

     

    URI:全球统一资源定位,用于描述一个“资源”(一个网页/一个文件/一个服务)的访问地址;

    举例:我有一个数据库,别人想访问,可以这样指定:

           jdbc:mysql://192.168.33.44:3306/db1

       jdbc:mysql: 资源的类型或者通信协议

       192.168.33.44:3306  服务提供者的主机名和端口号

       /db1  资源体系中的某一个具体资源(库)

     

              我有一个web系统,别人想访问,可以这样指定:

                 http://www.ganhoo.top:80/index.php

    http:  资源的访问协议

    www.ganhoo.top:80  服务提供者的主机名和端口号

    /index.php  资源体系中的某一个具体资源(页面)

             

              我要访问本地磁盘文件系统中的文件

                file://d:/aa/bb/cls.avi

                file:///root/apps/..

     

     

     

     

    hdfs-site.xml

    核心配置:

    1. datanode服务软件在存储文件块时,放在服务器的磁盘的哪个目录

    参数名:dfs.datanode.data.dir

    参数值:/root/hdp-data/data/

     

     

    1. namenode 服务软件在记录文件位置信息数据时,放在服务器的哪个磁盘目录

    参数名:dfs.namenode.name.dir

    参数值:/root/hdp-data/name/

     

    <configuration>

     

    <property>

    <name>dfs.namenode.name.dir</name>

    <value>/root/hdp-data/name/</value>

    </property>

     

    <property>

    <name>dfs.datanode.data.dir</name>

    <value>/root/hdp-data/data/</value>

    </property>

     

    <property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>hdp26-02:50090</value>

    </property>

     

    </configuration>

     

    3/ 拷贝安装包到其他机器

    在hdp26-01上:

       scp -r /root/apps/hadoop-2.8.1    hdp26-02:/root/apps/

       scp -r /root/apps/hadoop-2.8.1    hdp26-03:/root/apps/

       scp -r /root/apps/hadoop-2.8.1    hdp26-04:/root/apps/

     

     

    4/ 手动启动HDFS系统

     

     

     

    为了能够在任意地方执行hadoop的脚本程序,可以将hadoop的安装目录及脚本所在目录配置到环境变量中:

     

    在之前的配置文件中添加如下内容:

    vi /etc/profile

    export HADOOP_HOME=/root/apps/hadoop-2.8.1

    export PATH= $PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

     

    然后

    source /etc/profile

     

     

     

    格式化namenode

    首先,需要给namenode机器生成一个初始化的元数据存储目录

    hadoop namenode -format

     

     

    启动namenode

       在哪里启动namenode:

    在你配的fs.defaultFS=hdfs://hdp26-01:9000中的主机上启namenode

       启动命令:

    hadoop-daemon.sh start namenode

       启动完后检查:

            [liunx#] jps

            2112 NameNode

            使用浏览器访问hdp26-01的50070端口,能打开一个namenode状态信息的网页

     

    启动datanode

       在哪里启动datanode:

    在你想让它成为datanode服务器的机器上启:

    (hdp26-01,hdp26-02,hdp26-03,hdp26-04)

     

       启动命令:

    hadoop-daemon.sh start datanode

       启动完后检查:

            [liunx#] jps

            2112 DataNode

            <使用浏览器访问hdp26-01的50075端口,能打开一个datanode状态信息的网页>

    刷新namenode的网页,看看是否识别出这一台datanode

     

    DATANODE的存储目录不需要事先初始化,datanode软件在启动时如果发现这个存储目录不存在,则会自动创建

     

    启完之后,浏览namenode页面,会发现namenode已经认出4个datanode服务器

     

     

    5/ 脚本自动启动HDFS系统

     

     

     

     

     

    ssh不仅可以远程登录一个linux服务器进行shell会话,还可以远程发送一条指令到目标机器上执行

    ssh hdp26-04 “mkdir /root/test”

     

    ssh hdp26-04 “source /etc/profile; hadoop-daemon.sh start datanode”

     

    但是,远程发送指令执行需要经过ssh的安全验证:

    验证分为两种方式:

    1. 密码验证方式
    2. 密钥验证方式

         需要在hdp26-01上生成一对密钥:

    ssh-keygen

     

         然后将公钥发送到目标机器上:

    ssh-copy-id hdp26-01

            ssh-copy-id hdp26-02

            ssh-copy-id hdp26-03

            ssh-copy-id hdp26-04

     

     

    接着修改 hadoop安装目录/etc/hadoop/slaves文件,列入想成为datanode服务器的主机:

    hdp26-01

          hdp26-02

          hdp26-03

          hdp26-04

     

     

    然后,就可以:

    用start-dfs.sh 自动启动整个集群;

    用stop-dfs.sh 自动停止整个集群;

     

     

    不恰当的format:导致namenode上新生成了clusterid,跟datanode上记录的原clusterid不一致,导致datanode无法向namenode注册!

     

    不恰当的复制(把某台datanode的数据目录复制给了另一台),导致两台datanode上记录的datanodeUUID重复冲突;左右只能有一台datanode能向namenode注册成功

     

    忘记关防火墙,导致namenode无法从外界访问,也会导致datanode无法跟namenode通信

     

    主机名忘了改!

    配置文件写错!

    jdk都没安装好!

     

     

     

     

    展开全文
  • Hadoop集群搭建教程(详细)

    万次阅读 多人点赞 2018-05-26 10:19:39
    需要的安装包: 1.jdk压缩包 2.hadoop压缩包请前往我的github上下载相关安装包开始搭建hadoop集群一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的因为默认的虚拟机主机名都是ubuntu,所以为了便于...

    需要的安装包:

        1.jdk压缩包

        2.hadoop压缩包

    请前往百度云上上下载相关安装包(密码:8op1)


    开始搭建hadoop集群

    一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的,并关闭全部虚拟机的防火墙

            1.因为默认的虚拟机主机名都是ubuntu,所以为了便于虚拟机的识别,创建完成虚拟机后我们对虚拟机名进行修改,我们把用于主节点的虚拟机名称设为master(按自己的喜好创建),把用于从节点的虚拟机名称设为slave1

    • 修改主机名的命令:sudo gedit /etc/hostname


    • 把原主机名ubuntu改为master(在从主机上则改为slave1)

            2.为了虚拟机之间能ping通,需要修改虚拟机的ip地址(这里以在master机器操作为例子,从节点的虚拟机也要进行一致的操作)

        命令:sudo gedit /etc/hosts


    把/etc/hosts中yangcx-virtual-machine修改为刚刚改过的主机名master,同时将前面的ip地址改为实际的ip地址


    怎么知道自己虚拟机的ip地址?

    命令:ifconfig -a



    上图红框标记的就是虚拟机的真实ip地址,因此我们把/etc/hosts中的内容修改为:


    slave1的ip地址就是从虚拟机slave1的真实ip地址。同样,我们在slave1虚拟机上也要进行这一步操作。

            3.关闭虚拟机的防火墙

                一般来说,ubuntu默认都是安装防火墙软件ufw的,使用命令 sudo ufw version,如果出现ufw的版本信息,则说明已有ufw

                使用命令 sudo ufw status查看防火墙开启状态:如果是active则说明开启,如果是inactive则说明关闭

                开启/关闭防火墙 (默认设置是’disable’)

                sudo ufw enable|disable

                 我们使用sudo ufw disble来关闭防火墙,并再次用sudo ufw status  查看防火墙是否关闭



    二.安装jdk(所有虚拟机都要安装配置)

    将jdk的压缩文件拖进master和slave1虚拟机中,压缩(右键文件,extract here),或者用命令行

    tar -zxvf  jdk1.8.0_161.tar.gz(使用自己的压缩文件名)

       配置环境jdk环境:

        命令:sudo gedit /etc/profile


    将jdk的路径添加到文件后面(根据自己的文件路径来,我这里jdk1.8.0_161文件夹的路径是/home/hadoop/java)

    export JAVA_HOME=/home/hadoop/java/jdk1.8.0_161
    export JRE_HOME=/home/hadoop/java/jdk1.8.0_161/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH


    保存退出,为了使配置立即生效,键入命令:source /etc/profile,或者重启虚拟机,命令:shutdown -r now

    检查路径jdk是否安装成功,键入命令:java -version

    如果出现了版本信息,则恭喜配置成功;

    三.安装SSH服务

     1.首先确保虚拟机能连上网

     2.更新源列表:sudo apt-get update


    3.安装ssh:输入"sudo apt-get install openssh-server"-->回车-->输入"y"-->回车-->安装完成。

     4.查看ssh服务是否启动

    打开"终端窗口",输入"sudo ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。


    四、建立ssh无密码登录本机

     ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

    1、创建ssh-key,,这里我们采用rsa方式

    1. ssh-keygen -t rsa -""   //(P是要大写的,后面跟"")

     
    (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

    2、进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的

    1. cd ~/.ssh

     

    1. cat id_rsa.pub >> authorized_keys

     

     
    完成后就可以无密码登录本机了。

     

    3、登录localhost

    1.  ssh localhost

     

    ( 注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。)

    4、执行退出命令

    1. exit​

     1~4步在master和slave1两台虚拟机上都是配置

     5.配置master无密码登陆slave1

        

    mater主机中输入命令复制一份公钥到home中

    cp .ssh/id_rsa.pub ~/id_rsa_master.pub
    • 1

    把master的home目录下的id_rsa_master.pub拷到slave1的home下(我的做法是先拖到windows桌面上,在拖进slave1虚拟机中)

    slave1的home目录下分别输入命令

    cat id_rsa_master.pub >> .ssh/authorized_keys
    • 1

    至此实现了mater对slave1的无密码登陆

    以下的步骤只在master上进行(除了hadoop的环境变量

    配置在slave1上也要进行)

    五.安装hadoop

    1.将hadoop压缩包拖进master虚拟机中,解压(我这里解压的路径是/home/hadoop/hadoop-2.7.3)

    2.在hadoop-2.7.3文件夹里面先创建4个文件夹:

    •     hadoop-2.7.3/hdfs
    •     hadoop-2.7.3/hdfs/tmp
    •     hadoop-2.7.3/hdfs/name
    •     hadoop-2.7.3/hdfs/data

    3.配置 hadoop的配置文件

    先进入配置文件的路径:cd /home/hadoop/hadoop-2.7.3/etc/hadoop(再次强调,使用自己的路径)


    输入:ls

    查看该路径下的文件列表


    被红框框住的文件是我们要进程配置的文件

        1.首先配置core-site.xml文件

    sudo gedit core-site.xml

        在<configuration></configuration>中加入以下代码:

    <property>
       <name>hadoop.tmp.dir</name>
       <value>file:/home/hadoop/hadoop-2.7.3/hdfs/tmp</value>
       <description>A base for other temporary directories.</description>
     </property>
     <property>
      <name>io.file.buffer.size</name>
       <value>131072</value>
     </property>
     <property>
       <name>fs.defaultFS</name>
       <value>hdfs://master:9000</value>
     </property>

    注意:第一个属性中的value和我们之前创建的/hadoop-2.7.3/hdfs/tmp路径要一致。

        2.配置 hadoop-env.sh文件

    sudo gedit hadoop-env.sh

       将JAVA_HOME文件配置为本机JAVA_HOME路径


      3.配置 yarn-env.sh

    sudo gedit yarn-env.sh

     将其中的JAVA_HOME修改为本机JAVA_HOME路径(先把这一行的#去掉)


     4.配置hdfs-site.xml

    sudo gedit hdfs-site.xml
    在<configuration></configuration>中加入以下代码
    <property>
     <name>dfs.replication</name>
       <value>1</value>
     </property>
     <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:/home/hadoop/hadoop-2.7.3/hdfs/name</value>
       <final>true</final>
    </property>
     <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:/home/hadoop/hadoop-2.7.3/hdfs/data</value>
       <final>true</final>
     </property>
     <property>
      <name>dfs.namenode.secondary.http-address</name>
       <value>master:9001</value>
     </property>
     <property>
       <name>dfs.webhdfs.enabled</name>
       <value>true</value>
     </property>
     <property>
       <name>dfs.permissions</name>
       <value>false</value>
     </property>

    注意(其中第二个dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致;因为这里只有一个从主机slave1,所以dfs.replication设置为1)

    5 .复制mapred-site.xml.template文件,并命名为mapred-site.xml

    cp mapred-site.xml.template mapred-site.xml
       配置 mapred-site.xml,在标签<configuration>中添加以下代码
    <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
     </property>

    6.配置yarn-site.xml

    sudo gedit yarn-site.xml

     在<configuration>标签中添加以下代码

    <property>
     <name>yarn.resourcemanager.address</name>
       <value>master:18040</value>
     </property>
     <property>
       <name>yarn.resourcemanager.scheduler.address</name>
       <value>master:18030</value>
     </property>
     <property>
       <name>yarn.resourcemanager.webapp.address</name>
       <value>master:18088</value>
     </property>
     <property>
       <name>yarn.resourcemanager.resource-tracker.address</name>
       <value>master:18025</value>
     </property>
     <property>
       <name>yarn.resourcemanager.admin.address</name>
       <value>master:18141</value>
     </property>
     <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
     </property>
     <property>
         <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
     </property>
    

    7.配置slaves 文件

    sudo gedit slaves

        把原本的localhost删掉,改为slave1

    8.配置hadoop的环境,就像配置jdk一样

    sudo gedit /etc/profile

    根据hadoop文件夹的路径配置,以我的路径/home/hadoop/hadoop-2.7.3 为例

    export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
    export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

    键入命令 source /etc/profile 使配置立即生效

    9.接下来,将hadoop传到slave1虚拟机上面去

    scp -r hadoop-2.7.1 hadoop@slave1:~/ 

    注意:hadoop是虚拟机的用户名,创建slave1时设定的

    传过去后,在slave1上面同样对hadoop进行路径配置,和第8步一样

    9.初始化hadoop

    hdfs name -format

    10.开启hadoop

      两种方法:

    • start-all.sh
    • 先start-dfs.sh,再start-yarn.sh

    如果在mater上面键入jps后看到


    在slave1上键入jps后看到


    则说明集群搭建成功

    六:最后用自带的样例测试hadoop集群能不能正常跑任务

    使用命令

    hadoop   jar   /home/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar  pi 10 10

    用来求圆周率,pi是类名,第一个10表示Map次数,第二个10表示随机生成点的次数(与计算原理有关)

    最后出现结果


    则,恭喜你,hadoop集群搭建完成

    展开全文
  • 史上最简单详细的Hadoop完全分布式集群搭建

    万次阅读 多人点赞 2018-11-01 21:10:08
    一.安装虚拟机环境 Vmware12中文官方版 链接:https://pan.baidu.com/s/1IGKVfaOtcFMFXNLHUQp41w 提取码:6rep 激活秘钥:MA491-6NL5Q-AZAM0-ZH0N2-AAJ5A 这个安装就十分的简单了,只需要不断点击下一步,... 二....

    一.安装虚拟机环境

    Vmware12中文官方版 链接:https://pan.baidu.com/s/1IGKVfaOtcFMFXNLHUQp41w 提取码:6rep

    激活秘钥:MA491-6NL5Q-AZAM0-ZH0N2-AAJ5A

    这个安装就十分的简单了,只需要不断点击下一步,直到安装完成就OK了;

    二.虚拟机的安装(Centos7)

    这个步骤我分享一个详细安装地址:https://www.cnblogs.com/tony-hyn/p/9677902.html

    三.搭建集群

    (1)配置服务器(我这里是以3台为例)

    1个主节点:Mage1(192.168.102.135),2个(从)子节点,Mage2(192.168.102.136),Mage3(192.168.102.137)

    (2)配置主节点名(192.168.102.135)

    在命令行输入: vi /etc/sysconfig/network
    在这里插入图片描述
    添加内容:
    NETWORKING=yes
    HOSTNAME=Mage1
    在这里插入图片描述
    配置两台子节点名(192.168.102.136)和(192.168.102.137):
    vi /etc/sysconfig/network
    添加内容:
    NETWORKING=yes
    HOSTNAME=Mage2

    vi /etc/sysconfig/network
    添加内容:
    NETWORKING=yes
    HOSTNAME=Mage3

    (3)配置hosts

    打开主节点的hosts文件,将文件的前两行注释掉 (注释当前主机的信息)并在文件中添加所有hadoop集群的主机息。

    在命令行输入: vi /etc/hosts
    添加3台服务器的节点名信息

    192.168.102.135   Mage1
    192.168.102.136   Mage2
    192.168.102.137   Mage3
    

    保存之后,将主节点的hosts分别拷贝到其他两个子节点
    命令行分别输入:
    scp /etc/hosts root@192.168.102.136:/etc/
    scp /etc/hosts root@192.168.102.137:/etc/
    然后分别执行(重启服务器也可以不执行下面的语句): /bin/hostname hostsname
    例如:master上执行 /bin/hostsname master,使之生效。

    (4)关闭防火墙

    1.查看防火墙状态
    firewall-cmd --state

    2.停止firewall
    systemctl stop firewalld.service

    3.禁止firewall开机启动
    systemctl disable firewalld.service

    (5)时间同步

    命令行输入:yum install ntp 下载ntp插件 ,
    下载完成后 命令行输入:ntpdate -u ntp1.aliyun.com
    然后命令行输入:date
    如果出现如下情况表示配置成功:
    在这里插入图片描述

    (6)配置ssh无密码访问

    生成公钥密钥对

    在每个节点上分别执行:
    命令行输入:ssh-keygen -t rsa
    一直按回车直到生成结束
    执行结束之后每个节点上的/root/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub
    其中前者为私钥,后者为公钥
    在主节点上执行:
    命令行输入:cp id_rsa.pub authorized_keys

    将子节点的公钥拷贝到主节点并添加进authorized_keys

    将两个子节点的公钥拷贝到主节点上
    分别在两个子节点上执行:
    scp /root/.ssh/id_rsa.pub root@Mage1:/root/.ssh/id_rsa_Mage2.pub
    scp /root/.ssh/id_rsa.pub root@Mage1:/root/.ssh/id_rsa_Mage3.pub

    然后在主节点上,将拷贝过来的两个公钥合并到authorized_keys文件中去
    主节点上执行:
    cat id_rsa_Mage2.pub>> authorized_keys
    cat id_rsa_Mage3.pub>> authorized_keys

    将主节点的authorized_keys文件分别替换子节点的authorized_keys文件
    主节点上用scp命令将authorized_keys文件拷贝到子节点的相应位置
    scp authorized_keys rootMage2:/root/.ssh/
    scp authorized_keys rootMage3:/root/.ssh/

    最后测试是否配置成功

    在Mage1上分别执行
    ssh Mage2
    ssh Mage3
    能正确跳转到两台子节点的操作界面即可,同样在每个子节点通过相同的方式登录主节点和其他子节点也能无密码正常登录就表示配置成功。

    这里的配置方式可以有多种操作步骤,最终目的是每个节点上的/root/.ssh/authorized_keys文件中都包含所有的节点生成的公钥内容。

    (7)安装jdk(三台机器都要安装)

    安装在同一位置**/usl/local/jdk1.8.0_191**
    下载JDK : https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    在这里插入图片描述
    这里推荐一个Windows系统与虚拟机可以相互传输文件的软件FileZilla,下载解压即可用:
    链接:https://pan.baidu.com/s/193E3bfbHVpn5lsODg2ijJQ 提取码:kwiw

    解压JDK : tar -zxvf /usr/local/jdk-8u73-linux-x64.gz
    配置环境变量, 编辑profile文件:
    vi /etc/profile
    在profile文件末尾添加以下代码:

    export JAVA_HOME=/usr/local/jdk1.8.0_191
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
    

    保存后,使刚才编辑的文件生效:source /etc/profile

    测试是否安装成功:java -version
    如下表示jdk环境配置成功:
    在这里插入图片描述

    (8)安装hadoop

    安装位置自定,例如安装在/usr/local目录下面
    下载hadoop包:
    https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
    放在/usr/local目录下,解压hadoop
    tar -zxvf hadoop-2.7.7.tar.gz

    在usr下面生成hadoop-2.7.7目录
    配置环境变量:
    vi /etc/profile
    在末尾添加:

    export HADOOP_HOME=/usr/local/hadoop-2.7.7
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    保存后使新编辑的profile生效:
    source /etc/profile

    (9)配置hadoop

    配置hadoop配置文件

    需要配置的文件的位置为/usr/local/hadoop-2.7.7/etc/hadoop,需要修改的有以下几个文件:
    hadoop-env.sh
    yarn-env.sh
    core-site.xml
    hdfs-site.xml
    mapred-site.xml

    yarn-site.xml
    slaves
    其中hadoop-env.sh和yarn-env.sh里面都要添加jdk的环境变量

    hadoop-env.sh中

    添加如下代码:export JAVA_HOME=/usr/local/jdk1.8.0_191 到如下位置:
    在这里插入图片描述

    yarn-env.sh中

    添加如下代码:export JAVA_HOME=/usr/local/jdk1.8.0_191 到如下位置:
    在这里插入图片描述

    core-site.xml中

    添加如下代码:

    <configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://Mage1:9000</value>
            </property>
            <property>
                    <name>io.file.buffer.size</name>
                    <value>131072</value>
            </property>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>file:/usr/temp</value>
            </property>
            <property>
                    <name>hadoop.proxyuser.root.hosts</name>
                    <value>*</value>
            </property>
            <property>
                    <name>hadoop.proxyuser.root.groups</name>
                    <value>*</value>
            </property>
    </configuration>
    

    注:上面代码中file后的路径下的temp文件夹需要自己创建

    hdfs-site.xml中

    添加如下代码:

    <configuration>
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>Mage1:9001</value>
            </property>
            <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:/usr/dfs/name</value>
            </property>
            <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:/usr/dfs/data</value>
            </property>
            <property>
                    <name>dfs.replication</name>
                    <value>2</value>
            </property>
            <property>
                    <name>dfs.webhdfs.enabled</name>
                    <value>true</value>
            </property>
            <property>
                    <name>dfs.permissions</name>
                    <value>false</value>
            </property>
            <property>
                    <name>dfs.web.ugi</name>
                    <value>supergroup</value>
            </property>
    </configuration>
    

    注:上面代码中file后的路径下的/dfs/data文件夹需要自己创建

    mapred-site.xml中
    (注意要将mapred-site.xml.template重命名为 .xml的文件   Mv mapred-site.xml.template mapred-site.xml)
    

    添加如下代码:

    <configuration>
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>Mage1:10020</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.webapp.address</name>
                    <value>Mage1:19888</value>
            </property>
    </configuration>
    
    
    yarn-site.xml中

    添加如下代码:

    <configuration>
            <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>Mage1:8032</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.scheduler.address</name>
                    <value>Mage1:8030</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.resource-tracker.address</name>
                    <value>Mage1:8031</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.admin.address</name>
                    <value>Mage1:8033</value>
            </property>
            <property>
                    <name>yarn.resourcemanager.webapp.address</name>
                    <value>Mage1:8088</value>
            </property>
    </configuration>
    
    slaves中

    修改成:
    Mage1
    Mage2

    拷贝hadoop安装文件到子节点

    主节点上执行:
    scp -r /usr/hadoop-2.6.4 root@Mage2:/usr
    scp -r /usr/hadoop-2.6.4 root@Mage3:/usr

    拷贝profile到子节点

    主节点上执行:
    scp /etc/profile root@Mage2:/etc/
    scp /etc/profile root@Mage3:/etc/

    在两个子节点上分别使新的profile生效:

    source /etc/profile

    格式化主节点的namenode

    主节点上进入hadoop目录
    然后执行:
    ./bin/hadoop namenode -format
    新版本用下面的语句不用hadoop命令了
    ./bin/hdfs namenode -format
    提示:successfully formatted表示格式化成功

    启动hadoop

    主节点上在hadoop目录下执行:
    ./sbin/start-all.sh

    主节点上jps进程如下:
    NameNode
    SecondaryNameNode
    ResourceManager

    每个子节点上的jps进程如下:
    DataNode
    NodeManager

    如果这样表示hadoop集群配置成功

    展开全文
  • Linux 环境下搭建Hadoop集群(全分布)

    千次阅读 2019-02-22 11:58:29
    一、准备工作 1.1 linux 的环境搭建 自己装好Linux 后,开始环境的搭建: 1.打开网卡的配置文件 输入以上指令 ...再使用如下指令,修改主机名:192.168.41.100 Hadoop 椭圆部分配置的是以后Dat...
  • 大数据hadoop集群搭建

    千次阅读 2018-09-07 20:43:05
    安装一个Linux系统 配置网卡 重启网络服务 ping baidu 修改主机名 关闭防火墙 安装ssh客户端 克隆Linux系统 ...- vi /etc/hadoop/hadoop-env.sh JAVA_HOME在哪里 - export JAVAHOME改为绝对路...
  • hadoop集群搭建-(三台机器)

    千次阅读 2019-07-26 20:46:54
    安装hadoop 配置ssh 配置集群 集群启动及测试 附录 Hadoop组成 HDFS架构概述 YARN架构概述 MapReduce架构概述 大数据技术生态体系 小二是一名学生,他在研究大数据,那么hadoop是必不可少要去学习的。他...
  • 学习参考了给力星的两个节点的hadoop搭建过程,我用VirtualBox开了四个Ubuntu(版本15.10)虚拟机,搭建了四个节点的Hadoop分布式集群,并配置了HA,适合首次搭建的同学参考,节点设计如下: 一、准备工作 在...
  • ## 1. 准备工作 ### 1.1 环境 - Centos 7 - JDK 1.8 - Hadoop 2.10.0
  • hadoop高可用集群搭建

    千次阅读 2019-08-22 10:42:50
    主机配置环境如下表 主机名 IP 系统 软件版本 安装目录 数据目录 ...hadoop-01 ...hadoop-2.7.7、jdk1.8、zookeeper-3.4.6 .../usr/local/hadoop .../data/hadoop ...hadoop-02 ...hadoop-2.7.7、jdk1....
  • 阿里云搭建Hadoop集群

    千次阅读 2017-10-15 17:02:39
    这篇blog主要是讲如何搭建Hadoop集群,是继我上一篇手把手教你如何使用阿里云搭建Hadoop环境 环境下进行的,如果你还没看过上一篇blog,建议你先看一下如何搭建Hadoop环境,在继续往下看。如果你已经在自己的...
  • 三台电脑搭建Hadoop集群

    千次阅读 2018-01-13 16:06:52
    在寝室搭建Hadoop集群,三个室友都没有Linux,有两个装好了双系统,一个引导有问题放弃了。因为已经搭建完,这里记录一些坑点。 三个主机通过交换机相连,分别设置独立IP,无需设置网关。 先分别都能ping通,再...
  • hadoop client 本地开发调试客户端搭建

    千次阅读 2018-09-10 13:44:40
    hadoop client 客户端模式搭建在实际的开发环境中,在集群环境中开发往往存在很多安全隐患,例如集群文件被误删等等,所以一般的开发工作都是本地完成开发的。本地做MR开发时,由于没有hadoop环境,所以调试工作往往...
  • 云服务器搭建hadoop集群

    千次阅读 热门讨论 2018-09-13 16:39:41
    我的阿里云服务器的公网IP为a11.b11.c11.d11,内网IP为a12.b12.c12.d12;腾讯云的服务器的公网IP为a21.b21.c21.d21,内网IP为a22.b22.c22.d22。 以阿里云的服务器为主,跑一个NameNode和一个DataNode,腾讯云服务器...
  • 准备工作:三台虚拟机,其中一台主机,两台节点;需要提前下载好的文件:ubuntu...完全分布式Hadoop集群安装Step1 安装3台Linux虚拟机。1.在Vmware workstation软件里面,新建虚拟机,将一台ubuntu-16.04.4安装好,...
  • 离线分析框架搭建hadoop集群搭建部署Hadoop HA部署Hive安装部署Sqoop组件安装部署实时分析框架搭建 storm kafkakafka安装配置storm集群安装部署
  • hadoop集群搭建 修改配置文件(三台主机都要配置) master 主机配置 1)hadoop-env.sh vimhadoop-env.sh 2)core-site.xml vim core-site.xml <configuration> <!-- 指定HDFS...
  • 使用docker搭建hadoop分布式集群

    万次阅读 多人点赞 2020-07-03 11:14:17
    使用docker搭建部署hadoop分布式集群 在网上找了很长时间都没有找到使用docker搭建hadoop分布式集群的文档,没办法,只能自己写一个了。 一:环境准备: 1:首先要有一个Centos7操作系统,可以在虚拟机中安装...
  • 很多同鞋在学习大数据过程中,也会在自己电脑上搭建环境,但是内存不足确实是个让人头疼的问题,废话不多说,个人有如下一些想法,分享给大家:1、使用apache原生的hadoop搭建集群,除了配置繁琐之外,还可能会有...
  • windows下搭建hadoop+eclipse开发环境

    万次阅读 2014-02-25 09:08:07
    我的环境:windows8+hadoop1.1.2+eclipse4.3(linux为centerOS6.4) 实现步骤 下载eclipse、hadoop,提取hadoop中的hadoop-eclipse-plugin-1.1.2.jar将其拷贝到eclipse中的plugins中(注 :如果没有找到hadoop-...
1 2 3 4 5 ... 20
收藏数 49,670
精华内容 19,868
关键字:

hadoop集群搭建