在Redhat7中安装Hadoop

1、安装Linux、JDK、关闭防火墙、配置主机名
    
    解压:tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/
    设置Hadoop的环境变量:  vi ~/.bash_profile
            HADOOP_HOME=/root/training/hadoop-2.7.3
            export HADOOP_HOME
            PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
            export PATH
        生效

        source ~/.bash_profile(在安装hadoop之前要先安装jdk)

2、Hadoop的目录结构


三种安装模式:

1.本地模式(一台机器)

特点:没有HDFS、只能测试MapReduce程序
          MapReduce处理的是本地Linux的文件数据


    vi hadoop-env.sh
    25 export JAVA_HOME=/root/training/jdk1.8.0_144(先查看echo $JAVA_HOME)
    
    测试MapReduce程序:
    1、创建目录  mkdir ~/input
    2、运行(只能测试mapreduce)
            例子:/root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
            hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/input/data.txt ~/output

2.伪分布模式(一台机器)

    特点:是在单机上,模拟一个分布式的环境
          具备Hadoop的主要功能
          
    HDFS: namenode+datanode+secondarynamenode

    Yarn: resourcemanager + nodemanager

配置文件如下:
        hadoop-env.sh
     export JAVA_HOME=/root/training/jdk1.8.0_144(也要添加jdk路径)
    hdfs-site.xml

                        (原则:一般数据块的冗余度跟数据节点(DataNode)的个数一致;最大不超过3)
            <!--表示数据块的冗余度,默认:3-->
            <property>
               <name>dfs.replication</name>
               <value>1</value>
            </property>
                
            先不设置
            <!--是否开启HDFS的权限检查,默认true-->
            <property>
               <name>dfs.permissions</name>
               <value>false</value>
            </property>
    
        core-site.xml
            <!--配置NameNode地址,9000是RPC通信端口-->
            <property>
               <name>fs.defaultFS</name>
               <value>hdfs://bigdata111:9000</value>
            </property>    


            <!--HDFS数据保存在Linux的哪个目录,默认值是Linux的tmp目录-->
            <property>
               <name>hadoop.tmp.dir</name>
               <value>/root/training/hadoop-2.7.3/tmp</value>
            </property>    
            
        mapred-site.xml 默认没有 cp mapred-site.xml.template mapred-site.xml
        <!--MR运行的框架-->
        <property>
           <name>mapreduce.framework.name</name>
           <value>yarn</value>
        </property>    
        
        yarn-site.xml
        <!--Yarn的主节点RM的位置-->
        <property>
           <name>yarn.resourcemanager.hostname</name>
           <value>bigdata111</value>
        </property>    


        <!--MapReduce运行方式:shuffle洗牌-->
        <property>
           <name>yarn.nodemanager.aux-services</name>
           <value>mapreduce_shuffle</value>
        </property>    

        

在配置好后需要格式化:HDFS(NameNode)
       命令: hdfs namenode -format
        
        日志:
        Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.


    启动停止Hadoop的环境
        start-all.sh
        stop-all.sh
        
    访问:通过Web界面(在访问web页面时要先关闭防火墙或者打开防火墙的下面两个端口,防火墙关闭命令为systemctl                           stop firewalld.service

              systemctl disable firewalld.service)

            web页面

                 HDFS:  http://192.168.157.111:50070
        Yarn:  http://192.168.157.111:8088

3.全分布模式

特点:正在的分布式环境,用于生产
    做好规划
    
    1、准备工作
        (*)关闭防火墙
              systemctl stop firewalld.service
              systemctl disable firewalld.service
              
        (*)安装JDK
        (*)配置主机名  vi /etc/hosts
                192.168.157.112 bigdata112
                192.168.157.113 bigdata113
                192.168.157.114 bigdata114
                
        (*)配置免密码登录:两两之间的免密码登录
            (1) 每台机器产生自己的公钥和私钥
                    ssh-keygen -t rsa
                    
            (2) 每台机器把自己的公钥给别人
                    ssh-copy-id -i .ssh/id_rsa.pub root@bigdata112
                    ssh-copy-id -i .ssh/id_rsa.pub root@bigdata113
                    ssh-copy-id -i .ssh/id_rsa.pub root@bigdata114
    
        (*)保证每台机器的时间同步(建议直接在虚拟机上直接设置同步主机时间)
                如果时间不一样,执行MapReduce程序的时候可能存在问题
    
    2、在主节点上(bigdata112)安装
        (1)解压设置环境变量
            tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/
            
            设置:112 113 114
            HADOOP_HOME=/root/training/hadoop-2.7.3
            export HADOOP_HOME
            PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
            export PATH
            
        (2) 修改配置文件
            hadoop-env.sh
                    export JAVA_HOME=/root/training/jdk1.8.0_144
            hdfs-site.xml
                <!--表示数据块的冗余度,默认:3-->
                <property>
                   <name>dfs.replication</name>
                   <value>2</value>
                </property>
            
            core-site.xml
                <!--配置NameNode地址,9000是RPC通信端口-->
                <property>
                   <name>fs.defaultFS</name>
                   <value>hdfs://bigdata112:9000</value>
                </property>    


                <!--HDFS数据保存在Linux的哪个目录,默认值是Linux的tmp目录-->
                <property>
                   <name>hadoop.tmp.dir</name>
                   <value>/root/training/hadoop-2.7.3/tmp</value>
                </property>                
    
            mapred-site.xml 默认没有 cp mapred-site.xml.template mapred-site.xml


                <!--MR运行的框架-->
                <property>
                   <name>mapreduce.framework.name</name>
                   <value>yarn</value>
                </property>    
    
        yarn-site.xml
    
                <!--Yarn的主节点RM的位置-->
                <property>
                   <name>yarn.resourcemanager.hostname</name>
                   <value>bigdata112</value>
                </property>    


                <!--MapReduce运行方式:shuffle洗牌-->
                <property>
                   <name>yarn.nodemanager.aux-services</name>
                   <value>mapreduce_shuffle</value>
                </property>    
                
        slaves
            bigdata113
            bigdata114
            
        (3) 格式化NameNode: hdfs namenode -format
        (4) 把主节点上配置好的hadoop复制到从节点上
                scp -r hadoop-2.7.3/ root@bigdata113:/root/training(解压后的hadoop的存放目录)
                scp -r hadoop-2.7.3/ root@bigdata114:/root/training

        (5) 在主节点上启动  start-all.sh

启动后输入jps,发现有jps,namenode,datanode,secondrynamenode,resourcemaner,nodemanger,则为正常启动
--------------------- 
作者:博得不在 
来源:CSDN 
原文:https://blog.csdn.net/xxw_sample/article/details/80139489 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值