月眸


hadoop系列二:Hadoop集群搭建

毛毛小妖 2019-01-28 867浏览 0条评论
首页/正文
分享到: / / / /

一、准备工作

1.安装centos7虚拟机

2.安装VMTools

3.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

4.设置静态ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改如下:

DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="eth0"
IPADDR=192.168.5.101
PREFIX=24
GATEWAY=192.168.5.2
DNS1=192.168.5.2

5.改主机名

hostnamectl set-hostname hadoop102

6.配置/etc/hosts

vim /etc/hosts

修改如下:

192.168.5.100   hadoop100
192.168.5.101   hadoop101
192.168.5.102   hadoop102
192.168.5.103   hadoop103
192.168.5.104   hadoop104
192.168.5.105   hadoop105
192.168.5.106   hadoop106
192.168.5.107   hadoop107
192.168.5.108   hadoop108
192.168.5.109   hadoop109

7.建用户

useradd atguigu
passwd atguigu

8. 配置这个用户为sudoers

visudo

在root    ALL=(ALL)       ALL 一行下面添加:

atguigu    ALL=(ALL)       NOPASSWD:ALL

保存时wq保存

9.创建文件夹并赋权

在/opt目录下创建两个文件夹module和software,并把所有权赋给atguigu

mkdir /opt/module /opt/software
chown atguigu:atguigu /opt/module /opt/software

10.关机,快照,克隆

克隆三台配置相同的虚拟机

二、集群配置

从这里开始要以普通用户登陆

1.克隆的三台虚拟机改ip

分别改为192.168.3.102,192.168.3.103,192.168.3.104

2.搞一个分发脚本

cd ~

vim xsync

内容如下:

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================    $host    ====================
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
        #4 判断文件是否存在
        if [ -e $file ]
        then
            #5. 获取父目录
            pdir=$(cd -P $(dirname $file); pwd)
            
            #6. 获取当前文件的名称
            fname=$(basename $file)

            
            ssh $host "mkdir -p $pdir"
            rsync -av $pdir/$fname $host:$pdir
            
        else
            echo $file does not exists!
        fi
    done
done

赋予执行权限:chmod +x xsync

拷贝此文件到/bin目录,以便可以在任意目录执行:sudo cp xsync /bin

将此文件分发到所有机器:sudo xsync /bin/xsync

3.配置免密登陆

生成密钥对:

ssh-keygen -t rsa 三次回车

发送公钥到目标机器:

ssh-copy-id hadoop103 输入一次密码

ssh-copy-id hadoop104 输入一次密码

分别ssh登陆一下所有虚拟机进行测试:

ssh hadoop103

exit

ssh hadoop104

exit

把/home/atguigu/.ssh 文件夹发送到集群所有服务器:

xsync /home/atguigu/.ssh

4.配置环境并分发

在一台机器上安装Java和Hadoop,并配置环境变量,并分发到集群其他机器

4.1.拷贝jdk和hadoop文件到/opt/software

4.2.解压到/opt/module下

tar -zxvf jdk1.8.0_144.tar.gz -C /opt/module
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module

4.3.配置环境

在/etc/profile.d文件夹下新建一个environment.sh文件,内容如下:

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

4.4.将jdk和hadoop同步到集群所有机器

cd /opt/module/
xsync hadoop-2.7.2 jdk1.8.0_144

4.5.将这个配置文件同步到集群所有机器

sudo xsync /etc/profile.d/environment.sh

5.配置hadoop并分发

5.1.配置Core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop102:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

5.2.配置hdfs-site.xml

<!-- 数据的副本数量 -->
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop104:50090</value>
</property>

5.3.配置yarn-site.xml

<!-- Site specific YARN configuration properties -->
<!-- Reducer获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop103</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>

5.4.配置mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop104:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop104:19888</value>
</property>

5.5.配置Slaves

vim slaves

hadoop102
hadoop103
hadoop104

5.6.分发到集群所有机器

xsync /opt/module/hadoop-2.7.2/etc

三、启动hadoop

1.格式化Namenode

在hadoop102执行:hdfs namenode -format

2.启动hdfs

start-dfs.sh

3.启动yarn

在hadoop102执行:start-yarn.sh

四、测试集群

上传文件到hadoop:

hadoop fs -put /home/test_1.txt /

可以在控制台看到文件:

五、关闭集群

在hadoop102执行:stop-dfs.sh

在hadoop103执行:stop-yarn.sh

六、注意

1.如果集群出现问题

停服务->删文件->格式化->启动

1.1.停服务

stop-dfs.sh

stop-yarn.sh

1.2.删文件

所有机器都要执行

cd $HADOOP_HOME

rm -rf data logs

1.3.格式化

hdfs namenode -format

1.4.启动集群

start-dfs.sh

start-yarn.sh

2.卸载openjdk

如果自带openjdk,需要卸载

rpm -qa | grep java | xargs sudo rpm -e --nodeps

最后修改:2019-01-28 11:33:00 © 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

上一篇
登录即可评论哦~

评论列表

还没有人评论哦~赶快抢占沙发吧~