hadoop环境搭建

一、单机模式

       1.新建虚拟机

             安装centos-12系统,默认root用户

        2.新建用户

               useradd  centos,设置密码

               在/etc/sudoers文件赋予centos用户权限,chmod  -v  u+w  /etc/sudoers;       centos  ALL=(ALL)    ALL;       

                                               chmod -v u-w /etc/sudoers;      centos用户执行命令要加sudo;   

         3.  配置网络和设置主机名

                 vi  /etc/sysconfig/network-scripts/ifcfg-eth0  ,  设ONBOOT=yes , ping命令验证
                 vi  /etc/hostname:设置主机名,若hostname文件不存在,则自己创建
                 vi  /etc/hosts       :  让主机名与IP地址匹配

             4. 安装jdk和hadoop

                 下载xshell、xftp连接虚拟机,把jdk和hadoop安装包传到虚拟机

                 解压: tar -xzvf   , 把解压的文件(解压就是安装了)复制到自己的目录:   jdk:   /usr/java        hadoop:    /opt/

              5. 配置环境 /etc/profile

                 export JAVA_HOME=/usr/java/jdk1.7.0_80
                 export PATH=$JAVA_HOME/bin:$PATH

                 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

                 HADOOP_HOME=/opt/hadoop-2.7.5
                 PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH

                 让配置文件生效,source命令

              6. hadoop  fs  -ls 查看hadoop的文件是本机的,即单机模式


二、伪分布式模式

     1.在单机模式的基础上操作,在/opt/hadoop-2.7.5/etc/ 下, 复制一份伪分布式的文件:  cp  -R   hadoop   hadoop_virtual

           修改hadoop的文件名;    指定集群:  ln -s  hadoop_virtual   hadoop(系统默认会映射hadoop,让其指向伪分布式文件)
       2. 编辑 /opt/hadoop-2.7.5/etc/hadoop_virtual/hadoop-env.sh   的 JAVA_HOME值, $JAVA_HOME=/usr/java/jdk1.7.0_80
       3.配置 /opt/hadoop-2.7.5/etc/hadoop_virtual 下的文件
          vi  core-site.xml :    (自己指定hadoop.tmp.dir的路径,文件要存在且权限777)  ---  我搭建的时候没有设置,竟然没报错!

                <property>
                        <name>fs.defaultFS</name>
                        <value>hdfs://localhost/</value>
                </property>
                <property>
                          <name>hadoop.tmp.dir</name>
                          <value>/usr/hadoop_tmp</value>
                </property>

         vi  hdfs-site.xml

                     <property>
                            <name>dfs.replication</name>
                            <value>1</value>
                      </property>

           vi  mapred-site.xml

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

            vi  yarn-site.xml
                     <property>
                            <name>yarn.resourcemanager.hostname</name>
                            <value>localhost</value>
                    </property>
                    <property>
                            <name>yarn.nodemanager.aux-services</name>
                            <value>mapreduce_shuffle</value>
                     </property>
   

             4.配置免密登录ssh

               ssh-keygen -t rsa:生成公钥和密钥
              公钥和密钥路径: ls ~/.ssh , 在/home/centos/.ssh/下复制公钥到authorized_keys, cat   id_rsa.pub  >>                                                                                                                                                                                 authorized_keys
              设置文件权限免密操作:     chmod   700   ~/.ssh            chmod    600    ~/.ssh/authorized_keys
              
             5.格式化HDFS,重启   

                hdfs namenode -format

             6. 启动Hadoop集群

                 /opt/hadoop-2.7.5/sbin/start-all.sh   ,    jsp命令验证


三、完全分布式模式   

       1.在伪分布式模式的基础上操作,在/opt/hadoop-2.7.5/etc/ 下, 复制一份完全分布式的文件:  cp  -R    adoop_virtual   hadoop_cluster

          删除hadoop的文件名;   重新 指定集群:  ln -s  hadoop_cluster   hadoop(这里我只是为了共存与区分这三种模式,所以要复制重新指             向啥的,实际上可以直接在原来的基础上去配置,最终配置成完成分布式环境)

       2.克隆三台虚拟机(s1,s2,s3),配置好网络和用户名(这是迁移造成mac地址发生了改变,ip也随着改变了,解决方法                 在最后会说明)

       3.在主机(s0)中配置 /etc/hosts,使各个机器是互通的 , ping  验证

              192.168.176.137     s0           

                   192.168.176.138      s1
                   192.168.176.139      s2
                   192.168.176.140     s3

         4. 远程拷贝主机(s0)中的/etc/hosts到各个机器:   

             sudo  scp  /etc/hosts   [email protected]:/etc/         ,  ssh s1验证       各个主机可以互相免密登录

       5.主机配置/opt/hadoop-2.7.5/etc/hadoop_cluster 下的文件(与伪分布很相似, s0主节点namenode,s1、s2从节点datanode,                         s3为namenode的副本)

          vi  core-site.xml  :   

                <property>
                        <name>fs.defaultFS</name>
                        <value>hdfs://s0/</value>
                </property>
                <property>
                          <name>hadoop.tmp.dir</name>
                          <value>/usr/hadoop_tmp</value>
                </property>

         vi  hdfs-site.xml 

                     <property>
                            <name>dfs.replication</name>
                            <value>2</value>
                      </property>

           vi  mapred-site.xml : 

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

            vi  yarn-site.xml 
                     <property>
                            <name>yarn.resourcemanager.hostname</name>
                            <value>s0</value>
                    </property>
                    <property>
                            <name>yarn.nodemanager.aux-services</name>
                            <value>mapreduce_shuffle</value>
                     </property>

           

             6.配置主机/opt/hadoop-2.7.5/etc/hadoop_cluster 下的slaves文件为:

                              s1
                              s2 

             7.远程拷贝主机(s0)中的/opt/hadoop-2.7.5/etc/hadoop_cluster到各个机器:

                   sudo  scp -r  hadoop_cluster   centos@s3:/opt/hadoop-2.7.5/etc/    (已存在文件夹会覆盖);      ssh切换到各                                                                                                                                                        个机器查看文件是否更改

            

            8.格式化HDFS,重启   

                hdfs namenode -format

            9. 启动Hadoop集群

                 /opt/hadoop-2.7.5/sbin/start-all.sh   ,     jsp命令验证(显示的与伪分布式是有区别的,s0上显示namenode相                                                                                                                                         关的,s1、s2显示datanode相关)





猜你喜欢

转载自blog.csdn.net/huang66666666/article/details/80080978