Hadoop学习笔记二 集群环境搭建

零、准备工作

        准备三台Linux服务器。本文是在自己的台式机上安装了虚拟机工具(vmware和virtualbox都行),装3台CentOS7虚拟机。

        集群规划:

hadoop001

192.168.164.10

hadoop002

192.168.164.20

hadoop003

192.168.164.30

HDFS集群NameNodeSecondaryNameNode
DataNodeDataNodeDataNode
Yarn集群NodeManagerNodeManagerResourceManager

一、 配置网络

1. 修改网络配置

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

加入以下几项:

IPADDR=192.168.164.10(自己设置的IP)

NETMASK=255.255.255.0

GATEWAY=192.168.164.2

DNS1=192.168.164.2

DNS2=114.114.114.114

重启网络服务

service network restart

 测试ping一下百度看通不通

ping www.baidu.com

2.  安装ifconfig

yum search ifconfig  #查找对应的net-tools包
yum install net-tools.x86_64 -y

安装后查看一下IP地址 

3. 关闭防火墙

systemctl stop firewalld
iptables -F

 4. 修改selinux配置为disabled

vi /etc/selinux/config

5. 修改主机名

hostnamectl set-hostname hadoop001

 6. 配置hosts

vi /etc/hosts

加入以下内容 

192.168.164.10 hadoop001
192.168.164.20 hadoop002
192.168.164.30 hadoop003

7. 配置免密登录

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.164.10
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.164.20
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.164.30

8. 装rsync,用于分发脚本

yum install -y rsync

9. 重复1-8

        在另外两台服务器重复步骤1-8(对应的IP和主机名记得修改)

10. 配置集群时间同步

yum -y install ntp  #安装ntp
systemctl enable ntpd  #设置开机启动
systemctl start ntpd.service #启动ntp
systemctl is-enabled ntpd  #检查是否启动成功

配置主从服务器(本文选择hadoop003,即192.168.164.30作为server)

#时间主服务器(hadoop003)
vi /etc/ntp.conf
#加上
restrict 192.168.164.0 mask 255.255.255.0 nomodify notrap
#加上
server 127.127.1.0
fudge 127.127.1.0 stratum 10

#从服务器(hadoop001和hadoop002)
vi /etc/ntp.conf
#加上
server 192.168.164.30

二、三台机器安装jdk

Jdk下载地址:https://www.oracle.com/java/technologies/javase-downloads.html

下载完之后上传到服务器上,路径:/usr/local/apps/。解压

tar -zxvf jdk-8u291-linux-x64.tar.gz

 设置环境变量

vi /etc/profile

添加以下配置

export JAVA_HOME=/usr/local/apps/jdk1.8.0_291  

export JRE_HOME=${JAVA_HOME}/jre  

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  

export PATH=${JAVA_HOME}/bin:$PATH

执行source指令使配置生效

source /etc/profile

检查是否安装成功

java -version

这样就表示安装成功了

三、三台机器安装Hadoop

Hadoop下载地址:https://archive.apache.org/dist/hadoop/common

下载后上传到其中一台服务器,路径/usr/local/apps/。解压

tar -zxvf hadoop-2.9.2.tar.gz

 配置环境变量

vi /etc/profile

添加以下配置

export HADOOP_HOME=/usr/local/apps/hadoop-2.9.2   

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

执行source指令使之生效

source /etc/profile

检查是否安装成功

hadoop version

这样就表示安装成功了

进入安装好的hadoop目录里面

cd hadoop-2.9.2/etc/hadoop/

四、集群配置

在hadoop001进行以下配置。所有的可配置项可以参考官网下的Configuration

HDFS集群

1. hadoop-env.sh:配置JDK路径

# JDK安装路径
export  JAVA_HOME=/usr/local/apps/jdk1.8.0_291

2. core-site.xml:指定NameNode节点以及数据存储目录

<configuration>
    <property>
        <!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop001:8070</value>
    </property>
    <property>
        <!--指定 hadoop 存储临时文件的目录-->
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/apps/hadoop-2.9.2/tmp</value>
    </property>
</configuration>

 3. hdfs-site.xml:指定SecondaryNameNode节点

<configuration>
    <property>
        <!--指定SecondaryNameNode节点配置-->
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop003:50090</value>
    </property>

    <property>
        <!--指定 dfs 的副本系数为 3-->
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

 4. slave:指定DataNode从节点

#先把localhost删掉
hadoop001
hadoop002
hadoop003

MpReduce集群

1. mapred-env.sh:配置JDK路径

# JDK安装路径
export  JAVA_HOME=/usr/local/apps/jdk1.8.0_291

2. mapred-site.xml:指定MapReduce计算框架运行Yarn资源调度框架 

<configuration>
    <property>
        <!--指定 mapreduce 作业运行在 yarn 上-->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>

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

Yarn集群

1. yarn-env.sh:配置JDK路径

# JDK安装路径
export  JAVA_HOME=/usr/local/apps/jdk1.8.0_291

2. yarn-site.xml:指定ResourceManager所在计算机节点

<configuration>
    <property>
        <!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <!--resourcemanager 的主机名-->
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop003</value>
</property>
    <property>
        <!--开启日志聚集功能-->
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <!--日志保存时间设置7天-->
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
</configuration>

3. slave:指定NodeManager节点(这步无需操作,前面其实已经配置过了)

#先把localhost删掉
hadoop001
hadoop002
hadoop003

4. 回到hadoop安装目录的上一层,修改用户组

chown -R root:root hadoop-2.9.2/

修改前:

修改后:

分发脚本

前面的配置都是在hadoop001操作的,需要用rsync将上面所有的配置脚本分发给另外两台机器。

rsync -rvl /usr/local/apps/ root@192.168.164.20:/usr/local/apps/
rsync -rvl /usr/local/apps/ root@192.168.164.30:/usr/local/apps/

 五、启动Hadoop集群

 0. 如果是第一次启动Hadoop集群,需要在NameNode节点格式化NameNode,非第一次不需要执行格式化!!

hadoop namenode -format

启动方式1、一台台启动

1. 在Hadoop001上启动NameNode

hadoop-daemon.sh start namenode

 2. 在Hadoop001/Hadoop002/Hadoop003上启动DataNode

hadoop-daemon.sh start datanode

3. 在hadoop003上启动ResourceManager

yarn-daemon.sh start resourcemanager

4. 在hadoop001/hadoop002上启动NodeManager

yarn-daemon.sh start nodemanager

启动方式2、群起

1. 在hadoop001上启动dfs

start-dfs.sh

2. 在hadoop003上启动yarn

start-yarn.sh

验证

启动成功后访问NameNode节点的50070端口

访问Yarn集群ResourceManager的8088端口

六、 测试 

测试hdfs

在本地root目录下创建一个test.txt文件,随便输入点什么内容。

在hadoop上创建一个目录

hdfs dfs -mkdir -p /test/input

将test.txt上传到hadoop,在图形界面查看上传情况

hdfs dfs -put /root/test.txt /test/input

 将本地root下的test.txt删除

rm -rf test.txt

从hdfs上下载test.txt,测试是否可以下载成功

hdfs dfs -get /test/input/test.txt

测试MapReduce

创建目录,上传文件

 hdfs dfs -mkdir -p /wcinput
 hdfs dfs -put /root/wc.txt /wcinput

使用hadoop提供的一个示例jar进行wordcount

hadoop jar /usr/local/apps/hadoop-2.9.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /wcinput /wcoutput

打印结果

hdfs dfs -cat /wcoutput/part-r-00000

测试日志收集

在浏览器输入192.168.164.10:19888,查看日志收集是否正常

完毕! 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值