Hadoop-环境搭建-完全分布式

一、 安装centos7并配置集群时间

二、增加用户和用户权限

  1. 增加用户
useradd wangchao
  1. 修改密码
passwd wangchao
  1. 赋予权限
    1)编辑

    vim /etc/sudoers
    

    2) 增加

    wangchao ALL=(ALL)      NOPASSWD: ALL
    

三、修改主机名(每个节点对应各自的主机名)

hostnamectl --static set-hostname hadoop101

三、修改静态ip

  • 编辑文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
  • 修改BOOTPROTO="static"也就是将dhcp改为static
  • 修改ONBOOT=“yes” 意思是将网卡设置 为开机启用
  • 同时在下方添加
IPADDR=192.168.88.101 #静态IP   
GATEWAY=192.168.88.2  #默认网关(通过netstat -rn查看)  
NETMASK=255.255.255.0 #子网掩码   
DNS1=192.168.0.1      #DNS 配置   
DNS2=8.8.8.8          #谷歌地址 
  • 重启网络
service network restart

四、关闭防火墙

  1. 查看防火墙状态
firewall-cmd --state
  1. 停止firewall
systemctl stop firewalld.service
  1. 禁止firewall开机启动
systemctl disable firewalld.service

五、克隆3份虚拟机并修改各自的ip和主机名

从第六节开始是用xshell登录wangchao账户操作

  • 注意:使用创建完全克隆

六、修改hosts

  1. 编辑vim /etc/hosts,增加:
 192.168.88.101 hadoop101  
 192.168.88.102 hadoop102  
 192.168.88.103 hadoop103

并且尝试一下是否可以ping

  1. window修改hosts文件 增加一样的
  2. 三个机器都要配置

七、配置免密登录

  • 一般配置到ResourceManage的机器上(在hadoop102上配置即可)
  • 生成公钥和私钥
ssh-keygen -t rsa
  • 将公钥拷贝到要免密登录的目标机器上
ssh-copy-id hadoop101  
ssh-copy-id hadoop102  
ssh-copy-id hadoop103  

八、安装JDK和Hadoop

JDK版本1.8,Hadoop版本2.7.2 下载地址,失效联系,提取码:m04o
下面基本上都是在hadoop102上配置,如需配置所有节点有说明

  1. 创建soft和module目录
    1)创建目录

     sudo mkdir /opt/soft  /opt/module 
    

    2)赋予wangchao用户权限

     sudo chown -R wangchao /opt/soft /opt/module
    
  2. 上传jdk和hadoop到soft目录,并解压到module目录

  3. 配置jdk和hadoop环境变量 (所有节点都需要配置)
    1)编辑 /etc/profile文件

    sudo vim /etc/profile
    

    增加

    JAVA_HOME=/opt/module/jdk1.8.0_121
    HADOOP_HOME=/opt/module/hadoop-2.7.2
    PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export PATH JAVA_HOME HADOOP_HOME
    

    2)刷新

    source /etc/profile
    

    3)测试

    输入jps和hadoop fs 
    
  4. 编写xsync和xcall脚本放在/home/wangchao/bin 目录下,bin目录需要创建
    1)xsync脚本

    #!/bin/bash
    #校验参数是否合法
    if(($#==0))
    then
    	echo 请输入要分发的文件!
    	exit;
    fi
    #获取分发文件的绝对路径
    dirpath=$(cd `dirname $1`; pwd -P)
    filename=`basename $1`
    
    echo 要分发的文件的路径是:$dirpath/$filename
    
    #循环执行rsync分发文件到集群的每条机器
    for((i=101;i<=103;i++))
    do
    	echo ---------------------hadoop$i---------------------
    	rsync -rvlt $dirpath/$filename  wangchao@hadoop$i:$dirpath
    done
    

    2)xcall脚本

    #!/bin/bash
    #在集群的所有机器上批量执行同一条命令
    if(($#==0))
    then
    	echo 请输入您要操作的命令!
    	exit
    fi
    
    echo 要执行的命令是$*
    
    #循环执行此命令
    for((i=101;i<=103;i++))
    do
    	echo ---------------------hadoop$i-----------------
    	ssh hadoop$i $*
    done
    

    3)赋予权限

    chmod u+x xsync 
    chmod u+x xcall 
    

    4)输入xcall和xsync测试是否可用

  5. 配置Hadoop(配置文件都在/opt/module/hadoop-2.7.2/etc/hadoop下)
    1)配置core-site.xml

    vim core-site.xml
    

    修改为

    <configuration>
        <!-- 指定HDFS中NameNode的地址 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop101:9000</value>
        </property>
        <!-- 指定Hadoop运行时产生文件的存储目录 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/module/hadoop-2.7.2/data/tmp</value>
        </property>
    </configuration>
    

    2)配置hdfs-site.xml

    vim hdfs-site.xml
    

    修改为

    <configuration>
        <!-- 指定Hadoop辅助名称节点主机配置 -->
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop103:50090</value>
        </property>
    </configuration>
    

    3)配置yarn-site.xml

    vim yarn-site.xml
    

    修改为

    <configuration>
        <!-- reducer获取数据的方式 -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop102</value>
        </property>
        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
        </property>
        <!-- 日志保留时间设置7天 -->
        <property>
                <name>yarn.log-aggregation.retain-seconds</name>
                <value>604800</value>
        </property>
    </configuration>
    

    4)配置mapred-site.xml

    mv mapred-site.xml.template mapred-site.xml
    vim mapred-site.xml
    

    修改为

    <configuration>
            <!-- 指定mr运行在yarn上 -->
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>hadoop101:10020</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.webapp.address</name>
                    <value>hadoop101:19888</value>
            </property>
            <!--第三方框架使用yarn计算的日志聚集功能 -->
            <property>
                    <name>yarn.log.server.url</name>
                    <value>http://hadoop101:19888/jobhistory/logs</value>
            </property>
    </configuration>
    
  6. 分发文件,JDK和Hadoop(在配置免密登录的机器上执行,我的是hadoop102)
    1)分发JDK

    xsync /opt/module/jdk1.8.0_121/
    

    2)分发Hadoop

    xsync /opt/module/hadoop-2.7.2/
    

    执行过后在所有节点上的 /opt/module/ 下都应有jdk和hadoop文件

  7. 集群说明及配置
    1)Hadoop各节点说明

    hadoop101			hadoop102			hadoop103
    datanode			datanode			datanode
    nodemanager		    nodemanager			nodemanager
    namenode			resourcemanager		secondarynamenode
    JobHistoryServer
    

    2)格式化namenode,在hadoop101上执行

    hadoop namenode -format
    

    3)配置集群

    vim slaves
    

    修改为:

    hadoop101
    hadoop102
    hadoop103
    

    注意不要有空行

    4)配置.bashrc,注意一定要先cd(所有节点都需要配置)

    cd
    vim .bashrc
    

    增加

    source /etc/profile
    

    输入xcall jps测试是否成功

九、启动Hadoop

  1. 启动hafs(hadoop102上执行)
start-dfs.sh
  1. 启动yarn(hadoop102上执行)
start-yarn.sh
  1. 启动jobhistory(hadoop101上执行)
mr-jobhistory-daemon.sh start historyserver
  1. 查看是否启动成功(hadoop102上执行)
xcall jps

显示如下证明启动正常

[wangchao@hadoop102 hadoop-2.7.2]$ xcall jps
要执行的命令是jps
---------------------hadoop101-----------------
8050 NodeManager
8199 Jps
7962 JobHistoryServer
7851 DataNode
7725 NameNode
---------------------hadoop102-----------------
9908 DataNode
10586 Jps
10155 ResourceManager
10283 NodeManager
---------------------hadoop103-----------------
59186 NodeManager
58947 DataNode
59331 Jps
59080 SecondaryNameNode

否则去查看日志,日志文件目录/opt/module/hadoop-2.7.2/logs

  1. WEB页面
http://hadoop102:8088/
http://hadoop101:50070/

如有错误,请指出,谢谢

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值