• centos7.2+jdk7.9搭建haddoop2.7.0伪分布式环境(亲测成功)


      最近想研究下hadoop,玩一玩大数据,废话不多说,就此开始!

    所用环境:

           xshell 5.0(ssh连接工具,支持ftp,可向虚拟机传文件)

         CentOS-7-x86_64-DVD-1511.iso(网上很多资源,可自行搜索)

           hadoop-2.7.0.tar.gz(下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.0/

         jdk-7u79-linux-x64.tar.gz(下载地址:微盘地址http://vdisk.weibo.com/s/zWP8qIll84xX6,也可以去官网下载)

    (1)首先,我们准备centos7.2的iso镜像,并安装vmware软件,使用vmware安装三个centos7.2系统(自己设置root用户密码,添加名为:hadoop用户,密码也为hadoop,安装过程就不细说了),centos7.2安装完成需要依次输入:1/2/q/yes,本人安装的版本为桌面版。

    (2)配置网络环境,笔者选用的是仅主机模式;

    笔者台式机IP为:192.168.202.1,三台虚拟机IP分别为:192.168.202.101(master)、192.168.202.102(node1)、192.168.202.103(node2),验证方式:保证三个虚拟机之间能互相ping通。

    (3)由于在centos7我们需要创建hadoop用户,可以跳过这一步骤,看步骤(4)。若没有按照之前的创建hadoop用户,请继续往下看

      在centos7.2桌面右键Open in Terminal选项,弹出命令终端;输入su  和管理员密码,使用管理员权限;输入:

        groupadd hadoop    

        useradd hadoop -g hadoop

    然后给hadoop用户设置密码,输入:passwd hadoop,然后自己输入两次设置相同密码,若提示“无效的密码,过于简单”则再次输入确认就行,笔者密码设置为“hadoop”;

    (4)给hadoop用户添加管理员权限,输入:visudo,找到 root ALL=(ALL) ALL 这行,然后在这行下面增加一行内容:hadoop ALL=(ALL) ALL (当中的间隔为tab),按ESC输入“:wq”进行保存,修改内容如下图所示:

    (5)输入命令:su - hadoop,看是否用hadoop用户登录(用户名/密码:hadoop/hadoop),若能成功登陆,验证通过。

    (6)三台虚拟机中均需修改主机名,首先在,master上修改hosts文件(注:IP改成个人设置的虚拟机IP,与主机名对应)

        echo "192.168.202.101 master" >>/etc/hosts
          echo "192.168.202.102 node1" >>/etc/hosts
        echo "192.168.202.103 node2" >>/etc/hosts

    然后,同步到node1,node2上的主机,使用命令,输入用户名密码即可。

         scp /etc/hosts node1:/etc/
         scp /etc/hosts node2:/etc/

    测试:从三台虚拟机分别ping其他主机的主机名,若能ping通,则验证通过。如下如:

    (7)关闭防火墙

         systemctl stop firewalld 
             systemctl disable firewalld

    验证方法,输入命令:systemctl status firewalld.service,查看防火墙状态

    (8)接下来,为三台虚拟机(master/node1/node2)安装JDK,首先得查看是否安装openjdk,若已安装openjdk,则卸载;未安装,则开始安装JDK。检查命令如下:

            rpm -qa|grep openjdk  #检查openjdk,存在则删除

            yum remove *-openjdk-*  ####删除openjdk#####

    使用xshell中的xftp工具将下载的jdk文件拷贝至/usr/目录下,并使用chmod +x /usr/jdk-7u79-linux-x64.tar.gz赋予权限,使用命令解压:

            tar -zxvf /usr/jdk-7u79-linux-x64.tar.gz

    修改java环境变量,使用命令: vim /etc/profile,在内容中添加:(输入:‘:wq’----------保存退出)

            JAVA_HOME=/usr/jdk1.7.0_79
            HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.0
            export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH

    如下图:

    输入命令:source /etc profile ,让环境变量生效。验证方法,输入:java -verison,看能否出现相关版本信息。

    (9)在master,node1,node2上创建相关目录,(直接复制全部内容执行即可)

         sudo mkdir -p /usr/local/hadoop
           sudo chown -R hadoop:hadoop  /usr/local/hadoop
           sudo mkdir -p /data/hadoop/  #创建 hadoop 数据目录结构 
             sudo chown -R hadoop:hadoop  /data/hadoop/
         mkdir -p /data/hadoop/tmp/  #创建 tmp 
           mkdir -p /data/hadoop/hdfs/  #创建hdfs 
           mkdir -p /data/hadoop/hdfs/data  #创建datanode目录 
        mkdir -p /data/hadoop/hdfs/name  #创建namenode目录 
          mkdir -p /data/hadoop/hdfs/namesecondary

    (10)在master,node1,node2上使用ssh免密登录。首先在master上的hadoop用户通过rsa算法生成非对称密钥对:

        ssh-keygen -t rsa 
          cd /home/hadoop/.ssh/ 
                cp id_rsa.pub  authorized_keys 
                chmod go-wx  authorized_keys

    master上的公钥authorized_keys拷贝到node1,node2上的hadoop用户,先分别创建文件夹:mkdir /home/hadoop/.ssh/ ,然后执行以下命令,输入正确密码即可。

         scp authorized_keys node1:/home/hadoop/.ssh/ 
         scp authorized_keys node2:/home/hadoop/.ssh/

    验证测试:从master端,ssh node1、ssh node2看是否不需要输入密码。

    (11)安装hadoop,使用xftp将 tar -zxvf hadoop-2.7.2.tar.gz 拷贝至/usr/local/hadoop/目录下,然后执行

         ar -zxvf hadoop-2.7.2.tar.gz  
           chown -R hadoop:hadoop /usr/local/hadoop/

    然后输入:vim /etc/profile ,参考步骤8图,验证hadoop路径是否与已安装路径一致。

    (12)修改hadoop配置文件,首先进入hadoop目录,

        cd /usr/local/hadoop/hadoop-2.7.0/etc/hadoop/

        cp mapred-site.xml.template mapred-site.xml(ps:hadoop2.7.0版本中不包含mapred-site.xml文件,需要从mapred-site.xml.template复制一份重命名为mapred-site.xml)

        ll(查看目录)

    修改五个配置文件,如下:

      1.vim hadoop-env.sh

    将文件中java_home路径配置为JDK路径(/usr/jdk1.7.0_79),如下图

      2.vim core-site.xml

    将配置文件修改为:

    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/tmp</value>
    </property>

    </configuration>

    参考下图:

      3.vim  hdfs-site.xml

    文件配置如下:

    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/tmp</value>
    </property>

    </configuration>

    如下图:

      4.vim mapred-site.xml

    配置文件如下:

    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>

    如下图:

      5.vim yarn-site.xml

    配置文件如下:

    <configuration>

    <property>

    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    </configuration>

    如下图:

    (13)格式化hdfs,输入命令:

        cd /usr/local/hadoop/hadoop-2.7.0/

        bin/hdfs namenode -format

    (14)启动dfs系统

        cd /usr/local/hadoop/hadoop-2.7.0/sbin/

        ./start-dfs.sh

    (15)使用yarn启动tracker

        cd /usr/local/hadoop/hadoop-2.7.0/sbin/

        ./start-yarn.sh

    (16)验证伪分布集群是否搭建成功

        1.输入jps,查看是否有如下名称6个进程。

        2.从网页上打开http://192.168.202.101:50070/(192.168.202.101为个人设置的master的IP),看是否页面能访问。如下图:

          3.从网页上打开http://192.168.202.101:50030/(192.168.202.101为个人设置的master的IP),看是否页面能访问。如下图:

         4.若以上均无问题,则表示环境搭建成功!恭喜你!

  • 相关阅读:
    文件和数组的排序
    批量删除文档中的注释和空行
    strcat()的编写
    OpenGL鼠标旋转图像
    c++对文件操作的支持(二)
    汉字的16进制存储
    启动程序的c++方法
    HDU 2199 Can you solve this equation? 二分
    HDU 2899 Strange fuction 二分
    HDU 1233 还是畅通工程 最小生成树
  • 原文地址:https://www.cnblogs.com/Mr-zhou/p/7158249.html
Copyright © 2020-2023  润新知