zoukankan      html  css  js  c++  java
  • vmware搭建hadoop集群完整过程笔记

    搭建hadoop集群完整过程笔记

    一、虚拟机和操作系统

      环境:ubuntu14+hadoop2.6+jdk1.8

      虚拟机:vmware12

     

    二、安装步骤:

    先在一台机器上配置好jdk和hadoop:

      1.新建一个hadoop用户

        用命令:adduser hadoop

      2.为了让hadoop用户有sudo的权限:

        用root用户打开sudors文件添加红色框里面的内容:

        打开文件:

        

        添加内容:

        

       3.配置jdk,我把jdk的压缩包放在了hadoop的用户目录下,然后也解压在当前目录下

        

        修改配置文件(配置环境变量):在下面这个位置添加红色框里面的内容,其中红色下划线上面的内容根据个人jdk的安装路径而修改

        

        修改配置文件之后要让配置文件起效,输入以下命令:

        

        输入命令:java -version,如果出现jdk的版本则表示安装成功,如下:

        

        *****************到这里,成功配置了jdk,接下来是配置hadoop*********************

        4.同样是把hadoop的压缩包放到hadoop的用户主目录下(/home/hadoop),然后解压在当前目录下:

        

        5.修改配置文件(配置hadoop环境变量),在刚刚配置的jdk环境变量上添加内容:

        

        修改后,也要让配置文件重新起效

        

        然后进入hadoop的安装目录的bin目录下

        

        输入以下命令查看hadoop的版本,如果能看到hadoop的版本信息,则证明配置成功:

        

        

        ************************以上以及配置好了单机版本的hadoop环境***********************************

    接下来克隆配置好的机器,克隆两台:打开vmvare:  虚拟机>管理>克隆。(建议新克隆出来的两台机器分别命令为slave1,slave2)

      

      一直点击 下一步 完成克隆。其中克隆类型选择创建完整克隆。

      

      1.分别修改各虚拟机的hostname,分别为master,slave1,slave2

       

      2.修改三台虚拟机的hosts文件,这样接下来就不需要记住ip地址了,用主机名代替ip地址就可以了

        (ip地址分别为三台机器的Ip地址,可以分别在三台机器上通过ifconfig命令查看)

       

       这一步完成后,最好重启一次系统,以便生效。然后可以用ping master(或slave1、slave2)试下,正常的话,应该能ping通

       注:hostname不要命名为“xxx.01,xxx.02”之类以“.数字”结尾,否则到最后hadoop的NameNode服务将启动失败。

       3.设置静态ip

        master主机设置静态ip,在slave上也要参考设置修改成具体的ip

        执行命令

        sudo  gedit   /etc/network/interfaces

         打开文件修改成已下内容

        auto lo

        iface lo inet loopback

        auto eth0

        iface eth0 inet static

        address 192.168.140.128   //这里是本机器的Ip地址

        netmask 255.255.255.0      //不用修改

        network 192.168.140.0       //网段,根据Ip修改

        boardcast 192.168.140.255    //根据Ip修改

        gateway 192.168.140.2           //网关,把ip地址后面部门修改成2

        4.配置ssh面密码登录  

        在ubuntu上在线安装

        执行命令

        sudo  apt-get  install  ssh

        **********************************************

        配置ssh的实现思路:

        在每台机子上都使用ssh-keygen生成public key,private key

        所有机子的public key都拷到一台机子如master上

        在master上生成一个授权key文件authorized_keys

        最后把authorized_keys拷给所有集群中的机子,就能保证无密码登录

        ***************************************************

        实现步骤:

        1 .先在master上,在当前用户目录下生成公钥、私钥对

        执行命令

        $cd  /home/hadoop      

        $ssh-keygen  -t  rsa  -P ''

         即:以rsa算法,生成公钥、私钥对,-P ''表示空密码。

        该命令运行完后,会在个人主目录下生成.ssh目录,里面会有二个文件id_rsa(私钥) ,id_rsa.pub(公钥)

         2 .导入公钥

         执行命令

        cat  .ssh/id_rsa.pub  >>  .ssh/authorized_keys

         执行完以后,可以在本机上测试下,用ssh连接自己

        执行命令

        $ssh master

         如果不幸还是提示要输入密码,说明还没起作用,还有一个关键的操作

        查看权限,如果是属于其他用户的,需要修改该文件给其他用户权限

        执行命令

        chmod  644  .ssh/authorized_keys

         修改文件权限,然后再测试下 ssh master,如果不需要输入密码,就连接成功,表示ok,一台机器已经搞定了。

        如出现问题试解决

        请先检查SSH服务是否启动,如果没启动,请启动!

        如果没有.ssh目录则创建一个:

        执行命令

        $cd  /home/hadoop

        $mkdir     .ssh

        如无权限,使用命令修改要操作文件夹的owner为当前用户:

        执行命令

        sudo  chown  -R  hadoop  /home/hadoop

        3 .在其它机器上生成公钥、密钥,并将公钥文件复制到master

         以hadoop身份登录其它二台机器 slave1、slave2,执行 ssh-keygen -t rsa -P  '' 生成公钥、密钥

         然后用scp命令,把公钥文件发放给master(即:刚才已经搞定的那台机器)

        执行命令

        在slave1上:

        scp  .ssh/id_rsa.pub   hadoop@master:/home/hadoop/id_rsa_1.pub

        在slave2上:

        scp  .ssh/id_rsa.pub  hadoop@master:/home/hadoop/id_rsa_2.pub

        这二行执行完后,回到master中,查看下/home/hadoop目录,应该有二个新文件id_rsa_1.pub、id_rsa_2.pub,

        然后在master上,导入这二个公钥

         执行命令

        $cat id_rsa_1.pub >> .ssh/authorized_keys

        $cat id_rsa_2.pub >> .ssh/authorized_keys

        这样,master这台机器上,就有所有3台机器的公钥了。

         4 .将master上的“最全”公钥,复制到其它机器

        继续保持在master上

        执行命令

        $scp .ssh/authorized_keys  hadoop@slave1:/home/hadoop/.ssh/authorized_keys

        $scp .ssh/authorized_keys  hadoop@slave2:/home/hadoop/.ssh/authorized_keys

        修改其它机器上authorized_keys文件的权限

        slave1以及slave2机器上,均执行命令

        chmod  600  .ssh/authorized_keys

        5. 验证

        在每个虚拟机上,均用命令  ssh+其它机器的hostname 来验证,如果能正常无密码连接成功,表示ok

        如在slave1

        执行命令

        ssh  slave1

        ssh  master

        ssh  slave2

        分别执行以上命令要保证所有命令都能无密码登录成功。

        5.修改hadoop配置文件

          先配置hdfs,所以先修改4个配置文件:core-site.xml , hdfs-site.xml , hadoop-env.sh , slaves

        到hadoop的该目录下:

        

        1).修改core-site.xml

          
        上面配置的路径/home/hadoop/tmp,如果不存在tmp文件夹,则需要自己新建tmp文件夹

        2.修改hdfs-site.xml

        

        3.修改hadoop-env.sh,(有教程上面还需要配置HADOOP_HOME的环境变量,本人这里没有配置但是没问题,因为在前面已经配置过了)

        

        4.修改slaves,删掉原来的内容,添加其他两个节点的主机名

         

        5.分发到集群的其它机器

        把hadoop-2.6.0文件夹连同修改后的配置文件,通过scp拷贝到其它2台机器上。

        执行命令

        $scp -r hadoop-2.6.0/  hadoop@slave1: hadoop-2.6.0

        修改这四个文件之后,hdfs服务就配置成功了。通过运行start-dfs.sh启动hdfs服务,检查是否配置成功。

        

        启动完毕之后,输入jps,如果显示NameNode和Jps则表示配置成功。

        6.接下来配置mapreduce,要修改yarn-site.xml ,  mapred-site.xml文件

        修改yarn-site.xml文件

        

        7.修改mapred-site.xml

        

        8.分发到集群的其它机器

        把hadoop-2.6.0文件夹连同修改后的配置文件,通过scp拷贝到其它2台机器上。

        执行命令

        $scp -r hadoop-2.6.0/  hadoop@slave1: hadoop-2.6.0

        运行start-yarn.sh脚本,启动mapreduce服务。显示红色框里面的三个内容则表示配置成功。

        

  • 相关阅读:
    年轻人的第一个 Spring Boot 应用,太爽了!
    面试问我 Java 逃逸分析,瞬间被秒杀了。。
    Spring Boot 配置文件 bootstrap vs application 到底有什么区别?
    坑爹的 Java 可变参数,把我整得够惨。。
    6月来了,Java还是第一!
    Eclipse 最常用的 10 组快捷键,个个牛逼!
    Spring Cloud Eureka 自我保护机制实战分析
    今天是 Java 诞生日,Java 24 岁了!
    厉害了,Dubbo 正式毕业!
    Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
  • 原文地址:https://www.cnblogs.com/Zchaowu/p/7350922.html
Copyright © 2011-2022 走看看