2 Hadoop集群构建

虚拟机的安装

https://www.bilibili.com/read/cv7450678

Centos系统安装

https://www.bilibili.com/read/cv7456817

安装SecureCRT工具

https://www.bilibili.com/read/cv7457324

配置虚拟网络IP

https://www.bilibili.com/read/cv7463717

使用SecureCRT远程访问Centos系统

https://www.bilibili.com/read/cv7457324中的后半部有讲解

虚拟机的克隆

略(比较简单)

Linux系统网络配置

创建3台虚拟机hadoop01,hadoop02,hadoop03,每台虚拟机进行如下操作

1.静态Ip配置

参考ip可选范围,配置静态IP地址,成功后可以使用SecureCRT工具

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

#举例 :hodoop01 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ce1e1643-4332-4151-a2a8-86dc56e77b93
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.206.200
NETMASK=255.255.255.0
GATEWAY=192.168.206.2
DNS1=8.8.8.8

2.主机名

(1)配置主机名,具体指令如下。

针对centos 6.x

$ vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=hadoop01

针对 centos 7.x

$ vi /etc/hostname

	hadoop01

3.配置ip的映射

$ vi /etc/hosts

192.168.206.200 hadoop01
192.168.206.201 hadoop02
192.168.206.202 hadoop03

4.配置网卡设备的MAC地址

​ centos7 .x 没有该文件,不需要配置

​ centos 6.x版本需要,自行百度

$ vi /etc/udev/rules.d/70-persistent-net.rules

5.配置效果验证

ping hadoop01
ping hadoop02
ping hadoop03
ping www.baidu.com

SSH服务配置

实际工作中,服务器被放置在机房中,同时受到地域和管理的限制,开发人员通常不会进入机房操作直接上机操作,而是通过远程连接服务器,进行相关操作。

在集群开发中,主节点通常会对集群中各个节点频繁的访问,就需要不断输入目标服务器的用户名和密码,这种操作方式非常麻烦并且还会影响集群服务的连续运行。

为了解决上述问题,我们可以通过配置SSH服务来实现远程登录和SSH的免密登录功能。

1. SSH远程登录功能配置

(1)安装并开启SSH服务

#查询是否已经安装ssh服务,centos7 默认安装
$ rpm -qa | grep ssh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iJs5ref7-1600741936089)(hadoop.assets/image-20200903132804819.png)]

# 查询ssh服务是否启动,centos7默认启动
$ ps -e | grep sshd

在这里插入图片描述

# 如果发现系统中没有安装ssh,怎么办呢
$ yum install openssh-server

(2)创建CRT工具和服务器hadoop01的快速连接

​ 略

见 安装SecureCRT工具
https://www.bilibili.com/read/cv7457324

2. SSH免密登录功能配置

在这里插入图片描述

(1)生成SSH文件(公钥和私钥)

​ 公钥加密,私钥解密

​ hadoop01

$ ssh-keygen -t rsa

和hadoop03同理,不演示了

(2)拷贝3台机器的公钥到一台机器的某文件,将该文件发送到每台机器上

#分别在3台机器上执行该命令,生成某文件为(/root/.ssh/authorized_keys)
$ ssh-copy-id hadoop01

在这里插入图片描述

(3)将某文件,发送到hadoop02和hadoop03 机器内

hadoop01上

$ scp /root/.ssh/authorized_keys hadoop02:/root/.ssh

$ scp /root/.ssh/authorized_keys hadoop03:/root/.ssh

在这里插入图片描述

(4)验证免密登录效果

$ ssh hadoop02
$  exit
$ ssh hadoop03

Hadoop集群部署模式

独立模式

在独立模式下,所有程序都在单个JVM上执行,调试Hadoop集群的MapReduce程序也非常方便。一般情况下,该模式常用于学习或开发阶段进行调试程序。

伪分布模式

在伪分布式模式下, Hadoop程序的守护进程都运行在一台节点上,该模式主要用于调试Hadoop分布式程序的代码,以及程序执行是否正确。伪分布式模式是完全分布式模式的一个特例。

完全分布式模式

在完全分布式模式下,Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同节点担任不同的角色,在实际工作应用开发中,通常使用该模式构建企业级Hadoop系统。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vFMoP36v-1600742352332)(hadoop.assets/image-20200903215105332.png)]

JDK安装

参考文档

https://www.bilibili.com/read/cv7532179

官网下载地址

https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

1-新建目录专门存放安装包

mkdir -p /export/software/
cd /export/software/

2-使用crt,安装lrzsz命令,实现将win上文件传输到linux上

win和linux都需要联网

yum install lrzsz -y

3-创建目录,存放解压后的文件

mkdir -p /export/servers/

4-将压缩包解压到指定目录

tar -zxvf jdk-8u161-linux-x64.tar.gz -C /export/servers/

5-将解压后包目录,重新命名,方便使用

mv mv jdk1.8.0_161/ jdk/

6-配置jdk的系统环境变量

vi /etc/profile

#添加如下内容
 export JAVA_HOME=/export/servers/jdk
 export PATH=$PATH:$JAVA_HOME/bin
 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/bin/tools.jar

7- 使修改生效

source /etc/profile

8-检验是否生效

java -version

Hadoop安装

帮助文档

https://www.bilibili.com/read/cv7591643

官网下载地址(贼慢)

https://archive.apache.org/dist/hadoop/common/

hadoop-2.7.7.tar.gz

1-解压并安装

# hadoop-2.7.7.tar.gz 上传到 /export/software/
cd /export/software/
tar -zxvf hadoop-2.7.7.tar.gz -C /export/servers/

2- /etc/profile 中配置hadoop系统环境变量

export HADOOP_HOME=/export/servers/hadoop-2.7.7
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

3-使修改生效

source /etc/profile

4-验证

hadoop version

Hadoop集群配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j2rBxfaK-1600742352334)(hadoop.assets/image-20200903230211703.png)]

1-配置Hadoop集群主节点

1.1 修改hadoop-env.sh文件

export JAVA_HOME=/export/servers/jdk

1.2 修改core-site.xml文件

<configuration>
	<property>
    	<name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>
    </property>
    <property>
    	<name>hadoop.tmp.dir</name>
        <value>/export/servers/hadoop-2.7.7/tmp</value>
    </property>
</configuration>

1.3 修改hdfs-site.xml文件

<configuration>
         <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop02:50090</value>
        </property>
</configuration>

1.4 修改mapred-site.xml 文件(复制mapred-site.xml.template获得)

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

1.5 修改 yarn-site.xml文件

<configuration>
	<property>
    	<name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>
    </property>
    <property>
    	<name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

1.6 修改slaves文件(覆盖localhost)

hadoop01
hadoop02
hadoop03

2 将集群主节点的配置文件分发到其他子节点

完成Hadoop集群主节点hadoop01的配置后,还需要将系统环境配置文件、JDK安装目录和Hadoop安装目录分发到其他子节点hadoop02和hadoop03上,具体指令:

$ scp /etc/profile hadoop02:/etc/profile
$ scp /etc/profile hadoop03:/etc/profile
$ scp -r /export/  hadoop02:/
$ scp -r /export/  hadoop03:/

3 在hadoop02和hadoop03上执行,使环境变量生效

source /etc/profile

格式化文件系统

初次启动HDFS集群时,必须对主节点进行格式化处理。

格式化文件系统指令如下:

# 任意目录下输入如下
$ hdfs namenode -format
或者
$ hadoop namenode -format

启动和关闭Hadoop集群

针对Hadoop集群的启动,需要启动内部包含的HDFS集群和YARN集群两个集群框架。启动方式有两种:一种是单节点逐个启动;另一种是使用脚本一键启动。

1 单节点逐个启动和关闭

    
在主节点上执行指令启动/关闭HDFS NameNode进程;
hadoop-daemon.sh start namenode
在每个从节点上执行指令启动/关闭HDFS DataNode进程;
hadoop-daemon.sh start datanode

在主节点上执行指令启动/关闭YARN ResourceManager进程;
yarn-daemon.sh start resourcemanager
在每个从节点上执行指令启动/关闭YARN nodemanager进程;
yarn-daemon.sh start nodemanager

在节点hadoop02执行指令启动/关闭SecondaryNameNode进程
 hadoop-daemon.sh start secondarynamenode

注意

hadoop01 有1个主节点 和1个从节点

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager

hadoop02 有1个从节点

hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
hadoop-daemon.sh start secondarynamenode

hadoop03 有1个从节点

hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager

2 脚本一键启动和关闭

在主节点hadoop01上执行指令“start-dfs.sh”或“stop-dfs.sh”启动/关闭所有HDFS服务进程;(注意,不包含 secondarynamenode 进程)

在主节点hadoop01上执行指令“start-yarn.sh”或“stop-yarn.sh”启动/关闭所有YARN服务进程;

在主节点hadoop01上执行“start-all.sh”或“stop-all.sh”指令,直接启动/关闭整个Hadoop集群服务。

3. Hadoop测试效果

Hadoop集群服务启动后,在各个机器上执行“jps”指令查看各节点的服务进程的启动情况,效果如下所示。

jps

通过UI界面查看Hadoop运行状态

Hadoop集群正常启动后,它默认开放了两个端口50070和8088,分别用于监控HDFS集群和YARN集群。通过UI界面可以方便地进行集群的管理和查看,只需要在本地操作系统的浏览器输入集群服务的IP和对应的端口号即可访问。

在Windows系统下,访问http://hadoop01:50070,查看HDFS集群状态,且从图中可以看出HDFS集群状态显示正常。

在Windows系统下,访问http://hadoop01:8088,查看Yarn集群状态,且从图中可以看出Yarn集群状态显示正常。

#关闭hadoop01/02/03的防火墙

#关闭
systemctl stop firewalld.service
#查看状态
systemctl status firewalld.service

#在window系统的目录:C:\Windows\System32\drivers\etc\hosts文件中添加

192.168.206.200 hadoop01
192.168.206.201 hadoop02
192.168.206.202 hadoop03

#访问 http://hadoop01:50070

#访问 http://hadoop01:8088

Hadoop集群初体验

参考文档

https://www.bilibili.com/read/cv7598831

Hadoop经典案例单词统计

1 打开HDFS的UI界面,查看HDFS中是否有数据文件,默认是没有数据文件。

2 准备文本文件,在Linux系统上编辑一个文本文件,然后上传至HDFS上。

#在linux系统中创建一个目录,创建一个文件,写点内容
mkdir -p /export/data
cd /export/data
vi word.txt (写点内容)
#将该文件上传到hdfs中目录下: /wordcount/input/
hadoop fs -mkdir -p /wordcount/input
hadoop fs -put /export/data/word.txt /wordcount/input/

3 运行hadoop-mapreduce-examples-2.7.4.jar包,实现词频统计。

重要

务必要关闭所有机器h01,h02,h03的防护墙,不然执行会报错

hadoop jar hadoop-mapreduce-examples-2.7.7.jar  wordcount /wordcount/input /wordcount/output

4 查看UI界面,Yarn集群UI界面出现程序运行成功的信息。HDFS集群UI界面出现了结果文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值