IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop的安装部署 -> 正文阅读

[大数据]Hadoop的安装部署

1 本地模式搭建

1.1 本地模式介绍

- 特点:

本地模式,即运?在单台机器上,没有分布式思想,使用的是本地?件系统。

- ?途:

本地模式主要?于对MapReduce程序的逻辑进?调试,确保程序的正确。由于在本地模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。

?1.2 平台软件说明

平台&软件说明
操作系统Windows7 或 Windows 10 或 Mac OS
虚拟软件VMWare 或 Parallels Desktop(Mac Only)
虚拟机主机名: oak-ubuntu,IP地址: 192.168.10.128
SSH?具MobaXterm(Windows) 或 FinalShell(Mac)
软件包上传路径/root/softwares
软件安装路径/usr/local
JDKjdk-8u221-linux-x64.tar.gz
Hadoophadoop-2.7.6.tar.gz
?户root

1.3 环境搭建

1.3.1 JDK的安装

1. 检查是否已经安装过或是否有内置的JDK,如果有,将其卸载

# 卸载之前的原因,主要是需要保证安装的JDK版本的正确性。

[root@oak-ubuntu ~]# rpm -qa | grep jdk? ? ? ? ? ?#如果有,请卸载
[root@oak-ubuntu ~]# rpm -e xxxxxxxx --nodeps? ? ?#将查询到的内置jdk强制卸载

2. 上传jdk1.8到指定路径

使?MobaXterm或者FinalShell直接上传即可,上传到 /root/softwares 下

3. 解压jdk到/usr/local/下

[root@oak-ubuntu?~]# cd /root/softwares 
[root@oak-ubuntu?~]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local

4. 更名操作

# 更改名字,是为了后续时候的时候?便,不?再写后?的版本号

[root@oak-ubuntu ~]# cd /usr/local
[root@oak-ubuntu local]# mv jdk1.8.0_221/ jdk-1.8.0

5. 配置环境变量

[root@oak-ubuntu local]# vim /etc/profile
...上述内容省略,在末尾添加即可...
# Java Environment
export JAVA_HOME=/usr/local/jdk-1.8.0
export PATH=$PATH:$JAVA_HOME/bin

6. 重新引导,使得环境变量?效

[root@oak-ubuntu local]# source /etc/profile

7. 验证,验证自己的Java环境是否搭建完成

[root@oak-ubuntu local]# java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
[root@oak-ubuntu local]# javac 
...

1.3.2 Hadoop的安装

1. 上传Hadoop到Linux

使?MobaXterm或者FinalShell上传到 /root/softwares 下即可

2. 解压

[root@oak-ubuntu ~]# cd /root/softwares
[root@oak-ubuntu ~]# tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local

3.?配置Hadoop的环境变量

[root@oak-ubuntu ~]# vim /etc/profile
...上述内容省略,在最下?添加即可...
# Hadoop Environment
export HADOOP_HOME=/usr/local/hadoop-2.7.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

4.重新引导,使得环境变量?效

[root@oak-ubuntu local]# source /etc/profile

5.验证是否配置成功

[root@oak-ubuntu local]# hadoop version
Hadoop 2.7.6
Subversion https://shv@git-wip-us.apache.org/repos/asf/hadoop.git -r 085099c66cf28be31604560c376fa282e69282b8
Compiled by kshvachk on 2018-04-18T01:33Z
Compiled with protoc 2.5.0
From source with checksum 71e2695531cb3360ab74598755d036
This command was run using /usr/local/hadoop2.7/share/hadoop/common/hadoop-common-2.7.6.jar

1.3.3?Hadoop目录说明

[root@oak-ubuntu hadoop2.7]# ll
total 116
drwxr-xr-x. 2 20415  101   194 Apr 18  2018 bin
drwxr-xr-x. 3 20415  101    20 Apr 18  2018 etc
drwxr-xr-x. 2 20415  101   106 Apr 18  2018 include
drwxr-xr-x. 3 20415  101    20 Apr 18  2018 lib
drwxr-xr-x. 2 20415  101   239 Apr 18  2018 libexec
-rw-r--r--. 1 20415  101 86424 Apr 18  2018 LICENSE.txt
drwxr-xr-x. 3 root  root  4096 Jul 30 08:39 logs
-rw-r--r--. 1 20415  101 14978 Apr 18  2018 NOTICE.txt
-rw-r--r--. 1 20415  101  1366 Apr 18  2018 README.txt
drwxr-xr-x. 2 20415  101  4096 Apr 18  2018 sbin
drwxr-xr-x. 3 20415  101    20 Jun 29 17:18 share
drwxr-xr-x  4 root  root    37 Jul 23 20:56 tmp

- bin => hadoop的?进制执?命令?件存储?录

- sbin => hadoop的执?脚本存储?录

- etc => hadoop的配置?件存储?录

- lib/libexec => hadoop的资源库存储?录

- share => hadoop的共享资源、开发?具和案例存储?录

- include => hadoop的?具脚本存储?录

2??伪分布式集群搭建

2.1. 伪分布式模式介绍

1.特点

- 在?台机器上安装,使?的是分布式思想,即分布式?件系统,?本地?件系 统。

- Hdfs涉及到的相关守护进程(namenode,datanode,secondarynamenode) 都运?在?台机器上,都是独?的java进程。

2. ?途

?Standalone mode 多了代码调试功能,允许检查内存使?情况,HDFS输?输出,以及其他的守护进程交互。

?2.2. 平台软件说明

平台&软件说明
操作系统Windows7 或 Windows 10 或 Mac OS
虚拟软件VMWare 或 Parallels Desktop(Mac Only)
虚拟机主机名: oak-ubuntu,IP地址: 192.168.10.128
SSH?具MobaXterm(Windows) 或 FinalShell(Mac)
软件包上传路径/root/softwares
软件安装路径/usr/local
JDKjdk-8u221-linux-x64.tar.gz
Hadoophadoop-2.7.6.tar.gz
?户root

2.3 伪分布式搭建环境准备?

1. 总纲

1. 确保防?墙是关闭状态。

2. 确保NAT模式和静态IP的确定 (192.168.10.101)

3. 确保/etc/hosts?件?, ip和hostname的映射关系

4. 确保免密登陆localhost有效

5. jdk和hadoop的环境变量配置

?2. 防?墙关闭确认

[root@oak-ubuntu ~]# systemctl stop firewalld
[root@oak-ubuntu ~]# systemctl disable firewalld.service
[root@oak-ubuntu ~]# systemctl stop NetworkManager
[root@oak-ubuntu ~]# systemctl disable NetworkManager
#最好也把selinux关闭掉,这是linux系统的?个安全机制,进??件中将SELINUX设置为disabled
[root@oak-ubuntu ~]# vi /etc/selinux/config
.........
SELINUX=disabled 
.........

3. 配置/etc/hosts?件

-- 进?hosts?件,配置?下ip和hostname
[root@oak-ubuntu ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
192.168.10.128 oak-ubuntu <====添加本机的静态IP和本机的主机名之间的映射关系

4. 确保ssh对localhost的免密登陆认证有效

# 1. 使?rsa加密技术,?成公钥和私钥。?路回?即可
[root@oak-ubuntu ~]# ssh-keygen -t rsa 
# 2. 进?~/.ssh?录下,使?ssh-copy-id命令
[root@oak-ubuntu .ssh]# ssh-copy-id root@localhost
# 3. 进?验证,去掉第?次的询问(yes/no)
[hadoop@oak-ubuntu .ssh]# ssh localhost

5. 安装Jdk和Hadoop,配置相关环境变量

-1. 上传和解压两个软件包
[root@oak-ubuntu ~]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
[root@oak-ubuntu ~]# tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/
-2. 进?local?,给两个软件更名
[root@oak-ubuntu ~]# cd /usr/local/
[root@oak-ubuntu local]# mv 1.8.0_221/ jdk
[root@oak-ubuntu local]# mv hadoop-2.7.6/ hadoop
-3. 配置环境变量
[hadoop@oak-ubuntu local]# vi /etc/profile
.....省略...........
#java environment
export JAVA_HOME=/usr/local/jdk-1.8.0
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

#hadoop environment
export HADOOP_HOME=/usr/local/hadoop-2.7.6
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

2.4 伪分布式相关?件配置

1. core-site.xml的配置

[root@oak-ubuntu ~]# cd $HADOOP_HOME/etc/hadoop
[root@oak-ubuntu hadoop]# vi core-site.xml
<configuration>
 <!-- 配置分布式?件系统的schema和ip以及port,默认8020-->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://localhost:8020/</value>
 </property>
</configuration>
 
扩展: hadoop1.x的默认端?是9000,hadoop2.x的默认端?是8020,使?哪?个都可以

2. hdfs-site.xml的配置

[root@oak-ubuntu hadoop]# vi hdfs-site.xml
<configuration>
 <!-- 配置副本数,注意,伪分布模式只能是1。-->
 <property>
 <name>dfs.replication</name>
 <value>1</value>
 </property>
</configuration>

3. hadoop-env.sh的配置:指定jdk的环境

[root@oak-ubuntu hadoop]# vi hadoop-env.sh
................
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk-1.8.0
..................

2.5 格式化NameNode

1. 格式化命令

#只需要第一次搭建hdfs的时候执行,以后不能执行。如果执行会将所有数据的数据清除
[root@oak-ubuntu hadoop]# hdfs namenode -format

2.6 启动HDFS

1. 启动伪分布式

[root@oak-ubuntu hadoop]# start-dfs.sh

2. 启动滚动信息

3. jps命令查看守护进程

从上图可以看到,启动脚本会开启分布式?件系统上的相关进程:

namenode

datanode

secondarynamenode

?2.7 WebUI查看

可以在浏览器上输?:192.168.10.101:50070 来查看?下伪分布式集群的信息

--1. 浏览?下??上提示的ClusterID,BlockPoolID

--2. 查看?下活跃节点(Live Nodes)的个数,应该是1个

Compiled:编译 hadoop是由kshvachk?具集成的

Cluster ID:集群id

Block Pool ID:datanode节点的block池的id,每个datanode节点的都要?样

2.8 程序案例演示:wordcount程序

1. 准备要统计的两个?件,存储到/root/data/下

--1. 创建data?录
[root@oak-ubuntu hadoop]# mkdir ~/data
--2. 将以下两个?件上传到data?录下
- poetry1.txt
- poetry2.txt

2. 在hdfs上创建存储?录

[root@oak-ubuntu hadoop]# hdfs dfs -mkdir /input

?3. 将本地?件系统上的上传到hdfs上,并在web上查看?下

[root@oak-ubuntu hadoop]$ hdfs dfs -put ~/data/poetry* /input/

?4. 运??带的单词统计程序wordcount

[root@oak-ubuntu hadoop]# cd $HADOOP_HOME
[root@oak-ubuntu hadoop]# hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /out

5. 查看webui

?6. 查看part-r-00000?件

[root@oak-ubuntu hadoop]# hdfs dfs -cat /out/part-r-00000

3?完全分布式集群搭建

3.1. 完全分布式模式介绍

完全分布式,指的是在真实环境下,使?多台机器,共同配合,来构建?个完整的分布式
?件系统。
在真实环境中,hdfs中的相关守护进程也会分布在不同的机器中,?如:
-1. namenode守护进程尽可能的单独部署在?台硬件性能相对来说?较好的机器中。
-2. 其他的每台机器上都会部署?个datanode守护进程,?般的硬件环境即可。
-3. secondarynamenode守护进程最好不要和namenode在同?台机器上。

?3.2. 平台软件说明

平台&软件说明
操作系统Windows7 或 Windows 10 或 Mac OS
虚拟软件VMWare 或 Parallels Desktop(Mac Only)
虚拟机

主机名: hadoop01,IP地址: 192.168.10.101

主机名: hadoop02,IP地址: 192.168.10.102

主机名: hadoop03,IP地址: 192.168.10.103

SSH?具MobaXterm(Windows) 或 FinalShell(Mac)
软件包上传路径/root/softwares
软件安装路径/usr/local
JDKjdk-8u221-linux-x64.tar.gz
Hadoophadoop-2.7.6.tar.gz
?户root

注意:
实际?产环境中,不会使?root?户来搭建和管理hdfs,?是使?普通?户。这?为了?便学习,我们才使?的root?户。
ps:
1.如果你是从伪分布式过来的,最好先把伪分布式的相关守护进程关闭:stop-all.sh
2.删除原来伪分布式的相关设置
如果原来使?的是默认路径,现在已经没有?了
如果原来使?的跟现在全分布式路径?样,因为这?跟之前的初始化的内容不?样,?且
这个?件要让系统?动?成
综上:要删除掉namenode和datanode的?录

3.3. 守护进程布局?

部署hdfs完全分布式的同时搭建?下yarn。hdfs和yarn的相关守护进程的布局如下:

hadoop01: namenode,datanode,ResourceManager,nodemanager
hadoop02: datanode,nodemanager,secondarynamenode
hadoop03: datanode,nodemanager

3.4? 完全分布式搭建环境准备

1. 总纲

-1. 三台机器的防?墙必须是关闭的.
-2. 确保三台机器的?络配置畅通(NAT模式,静态IP,主机名的配置)
-3. 确保/etc/hosts?件配置了ip和hostname的映射关系
-4. 确保配置了三台机器的免密登陆认证(克隆会更加?便)
-5. 确保所有机器时间同步
-6. jdk和hadoop的环境变量配置

?2. 关闭防?墙

[root@hadoop01 ~]# systemctl stop firewalld
[root@hadoop01 ~]# systemctl disable firewalld
[root@hadoop01 ~]# systemctl stop NetworkManager
[root@hadoop01 ~]# systemctl disable NetworkManager
#最好也把selinux关闭掉,这是linux系统的?个安全机制,进??件中将SELINUX设置为disabled
[root@hadoop01 ~]# vi /etc/selinux/config
.........
SELINUX=disabled 
.........

情况说明: 如果安装好三台机器,三台机器的防?墙都需要单独关闭和设置开机不启动。如果准备使?克隆?式,只关闭hadoop01机器即可。下?的配置也是如此。

3. 静态IP和主机名配置

--1. 配置静态IP(确保NAT模式)
[root@hadoop01 ~]# vi /etc/sysconfig/networkscripts/ifcfg-ens33
............
BOOTPROTO=static # 将dhcp改为static
............
ONBOOT=yes # 将no改为yes
IPADDR=192.168.10.101 # 添加IPADDR属性和ip地址
PREFIX=24 # 添加
NETMASK=255.255.255.0或者PREFIX=24 
GATEWAY=192.168.10.2 # 添加?关GATEWAY
DNS1=114.114.114.114 # 添加DNS1和备份DNS
DNS2=8.8.8.8
--2. 重启?络服务
[root@hadoop01 ~]# systemctl restart network
或者
[root@hadoop01 ~]# service network restart
--3. 修改主机名(如果修改过,请略过这?步)
[root@localhost ~]# hostnamectl set-hostname hadoop01
或者
[root@localhost ~]# vi /etc/hostname 
hadoop01

4. 配置/etc/hosts?件

[root@hadoop01 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
192.168.10.101 hadoop01 #添加本机的静态IP和本机的主机名之间的映射关系
192.168.10.102 hadoop02
192.168.10.103 hadoop03

5. 免密登陆认证

-1. 使?rsa加密技术,?成公钥和私钥。?路回?即可
[root@hadoop01 ~]# cd ~
[root@hadoop01 ~]# ssh-keygen -t rsa 
-2. 进?~/.ssh?录下,使?ssh-copy-id命令
[root@hadoop01 ~]# cd ~/.ssh 
[root@hadoop01 .ssh]# ssh-copy-id root@hadoop01
-3. 进?验证
[hadoop@hadoop01 .ssh]# ssh hadoop01
#下?的第?次执?时输?yes后,不提示输?密码就对了
[hadoop@hadoop01 .ssh]# ssh localhost
[hadoop@hadoop01 .ssh]# ssh 0.0.0.0
注意:三台机器提前安装好的情况下,需要同步公钥?件。如果使?克隆技术。那
么使?同?套密钥对就?便多了。

6. 时间同步

7. 安装Jdk和Hadoop,配置相关环境变量

-1. 上传和解压两个软件包
[root@hadoop01 ~]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C
/usr/local/
[root@hadoop01 ~]# tar -zxvf hadoop-2.7.6.tar.gz -C
/usr/local/
-2. 进?local?,给两个软件更名
[root@hadoop01 ~]# cd /usr/local/
[root@hadoop01 local]# mv 1.8.0_221/ jdk
[root@hadoop01 local]# mv hadoop-2.7.6/ hadoop
-3. 配置环境变量
[hadoop@hadoop01 local]# vi /etc/profile
.....省略...........
#java environment
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
#hadoop environment
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

3.5 Hadoop的配置?件

1. 在完全分布式集群的配置中,需要配置的是4个配置?件

core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml

?2. 这?个配置?件有默认的配置,命名为default

core-default.xml
hdfs-default.xml
mapred-default.xml
yarn-default.xml

?3. 我们可以将默认的配置?件找出来,看看默认的配置

[root@hadoop01 share]# cd /usr/local/hadoop/share
[root@hadoop01 share]# find -name "*-default.xml" -exec cp {} ~/defaultXml \;

4. 属性的优先级

代码中配置的属性 > *-site.xml > *-default.xml

3.6 完全分布式配置

1. 配置core-site.xml

[root@hadoop01 ~]# cd $HADOOP_HOME/etc/hadoop/
[root@hadoop01 hadoop]# vi core-site.xml
<configuration>
 <!-- hdfs的地址名称:schame,ip,port-->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://hadoop01:8020</value>
 </property>
 <!-- hdfs的基础路径,被其他属性所依赖的?个基础路径 -->
 <property>
 <name>hadoop.tmp.dir</name>
 <value>/usr/local/hadoop/tmp</value>
</property>
</configuration>

2. 配置hdfs-site.xml

[root@hadoop01 hadoop]# vi hdfs-site.xml
<configuration>
 <!-- namenode守护进程管理的元数据?件fsimage存储的位置-->
 <property>
 <name>dfs.namenode.name.dir</name>
 <value>file://${hadoop.tmp.dir}/dfs/name</value>
 </property>
 <!-- 确定DFS数据节点应该将其块存储在本地?件系统的何处-->
 <property>
 <name>dfs.datanode.data.dir</name>
 <value>file://${hadoop.tmp.dir}/dfs/data</value>
 </property>
 <!-- 块的副本数-->
 <property>
 <name>dfs.replication</name>
 <value>3</value>
 </property>
 <!-- 块的??(128M),下?的单位是字节-->
 <property>
 <name>dfs.blocksize</name>
 <value>134217728</value>
 </property>
 <!-- secondarynamenode守护进程的http地址:主机名和端?号。参考
守护进程布局-->
 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>hadoop02:50090</value>
 </property>
 <!-- namenode守护进程的http地址:主机名和端?号。参考守护进程布
局-->
 <property>
 <name>dfs.namenode.http-address</name>
 <value>hadoop01:50070</value>
 </property> 
</configuration>

3. 配置mapred-site.xml

[root@hadoop01 hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@hadoop01 hadoop]# vi mapred-site.xml
<configuration>
 <!-- 指定mapreduce使?yarn资源管理器-->
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
 <!-- 配置作业历史服务器的地址-->
 <property>
 <name>mapreduce.jobhistory.address</name>
 <value>hadoop01:10020</value>
 </property>
 <!-- 配置作业历史服务器的http地址-->
 <property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop01:19888</value>
 </property>
</configuration>

4. 配置yarn-site.xml

[root@hadoop01 hadoop]# vi yarn-site.xml
<configuration>
 <!-- 指定yarn的shuffle技术-->
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <!-- 指定resourcemanager的主机名-->
 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>hadoop01</value>
</property>
 <!--下?的可选-->
 <!--指定shuffle对应的类 -->
 <property>
 <name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>
 <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
 <!--配置resourcemanager的内部通讯地址-->
 <property>
 <name>yarn.resourcemanager.address</name>
 <value>hadoop01:8032</value>
 </property>
 <!--配置resourcemanager的scheduler的内部通讯地址-->
 <property>
 <name>yarn.resourcemanager.scheduler.address</name>
 <value>hadoop01:8030</value>
 </property>
 <!--配置resoucemanager的资源调度的内部通讯地址-->
 <property>
 <name>yarn.resourcemanager.resourcetracker.address</name>
 <value>hadoop01:8031</value>
 </property>
 <!--配置resourcemanager的管理员的内部通讯地址-->
 <property>
 <name>yarn.resourcemanager.admin.address</name>
 <value>hadoop01:8033</value>
 </property>
 <!--配置resourcemanager的web ui 的监控??-->
 <property>
 <name>yarn.resourcemanager.webapp.address</name>
 <value>hadoop01:8088</value>
 </property>
</configuration>

5. 配置hadoop-env.sh

[root@hadoop01 hadoop]# vi hadoop-env.sh
.........
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk-1.8.0
.........

6. 配置slaves?件

# 此?件?于指定datanode守护进程所在的机器节点主机名
[root@hadoop01 hadoop]# vi slaves
hadoop01
hadoop02
hadoop03

7. 配置yarn-env.sh?件

# 此?件可以不配置,不过,最好还是修改?下yarn的jdk环境?较好
[root@hadoop01 hadoop]# vi yarn-env.sh
.........
# some Java parameters
export JAVA_HOME=/usr/local/jdk-1.8.0
if [ "$JAVA_HOME" != "" ]; then
 #echo "run java in $JAVA_HOME"
 JAVA_HOME=$JAVA_HOME
fi
.........

3.7? 另外两台机器配置说明

两种?式可选择配置另外几台机器的hadoop:

?式?: “scp”进?同步

提示:本?法适?于多台虚拟机已经提前搭建出来的场景。
--1. 同步hadoop到slave节点上
[root@hadoop01 ~]# cd /usr/local
[root@hadoop01 local]# scp -r ./hadoop hadoop02:/usr/local/
[root@hadoop01 local]# scp -r ./hadoop hadoop03:/usr/local/
--2. 同步/etc/profile到slave节点上
[root@hadoop01 local]# scp /etc/profile hadoop02:/etc/
[root@hadoop01 local]# scp /etc/profile hadoop03:/etc/
--3. 如果slave节点上的jdk也没有安装,别忘记同步jdk。
--4. 检查是否同步了/etc/hosts?件

?式?: 克隆hadoop01虚拟机

提示:本?法适?于还没有安装slave虚拟机的场景。通过克隆hadoop01节点的?
式,来克隆?个hadoop02和hadoop03机器节点,这种?式就不?重复安装环境
和配置?件了,效率?常?,节省了?部分时间(免密认证的秘钥对都是相同的?套)。
--1. 打开?个新克隆出来的虚拟机,修改主机名
[root@hadoop01 ~]# hostnamectl set-hostname hadoop02
--2. 修改ip地址
[root@hadoop01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
.........省略.........
IPADDR=192.168.10.102 <==修改为hadoop02对应的ip地
址
.........省略........
--3. 重启?络服务
[root@hadoop01 ~]# systemctl restart network
--4. 其他新克隆的虚拟机重复以上1~3步
--5. 免密登陆的验证
 从hadoop01机器上,连接其他的每?个节点,验证免密是否好使,同时去掉第
?次的询问步骤
--6. 建议:每台机器在重启?络服务后,最好reboot?下。

3.8 格式化NameNode

1. 注意事项

格式化完成NameNode后,会在core-site.xml中的配置hadoop.tmp.dir的路 径下?成集群相关的?件。如果之前在伪分布式的时候已经格式化完成,并且这个路 径已经?成了,需要先将这个?录?动删除掉,然后再格式化集群,否则会导致集群 启动失败,NameNode和DataNode?法建?连接。

?2. 在hadoop01机器上运?命令

[root@hadoop01 ~]# hdfs namenode -format

3. 格式化的相关信息解读

--1. ?成?个集群唯?标识符:clusterid
--2. ?成?个块池唯?标识符:blockPoolId
--3. ?成namenode进程管理内容(fsimage)的存储路径:
?默认配置?件属性hadoop.tmp.dir指定的路径下?成dfs/name?录
--4. ?成镜像?件fsimage,记录分布式?件系统根路径的元数据
--5. 其他信息都可以查看?下,?如块的副本数,集群的fsOwner等。

3.9 启动集群?

1. 启动脚本和关闭脚本介绍

1. 启动脚本
?-- start-dfs.sh :?于启动hdfs集群的脚本
?-- start-yarn.sh :?于启动yarn守护进程
?-- start-all.sh :?于启动hdfs和yarn
2. 关闭脚本
?-- stop-dfs.sh :?于关闭hdfs集群的脚本
?-- stop-yarn.sh :?于关闭yarn守护进程
-- stop-all.sh :?于关闭hdfs和yarn
3. 单个守护进程脚本
?-- hadoop-daemons.sh :?于单独启动或关闭hdfs的某?个守护进
程的脚本
?-- hadoop-daemon.sh :?于单独启动或关闭hdfs的某?个守护进
程的脚本
?reg:
?hadoop-daemon.sh [start|stop]
[namenode|datanode|secondarynamenode]
?
?-- yarn-daemons.sh :?于单独启动或关闭hdfs的某?个守护进程的
脚本
?-- yarn-daemon.sh :?于单独启动或关闭hdfs的某?个守护进
程的脚本
?reg:
?yarn-daemon.sh [start|stop]
[resourcemanager|nodemanager]

?2. 启动hdfs

1. 使?start-dfs.sh,启动 hdfs

2. 启动过程解析

- 启动集群中的各个机器节点上的分布式?件系统的守护进程
??个namenode和resourcemanager以及secondarynamenode
?多个datanode和nodemanager
- 在namenode守护进程管理内容的?录下?成edit?志?件
- 在每个datanode所在节点下?成${hadoop.tmp.dir}/dfs/data?录,

?3. jps查看进程

--1. 在hadoop01上运?jps指令,会有如下进程
?namenode
?datanode
--2. 在hadoop02上运?jps指令,会有如下进程
?secondarynamenode
?datanode
--3. 在hadoop03上运?jps指令,会有如下进程
?datanode

注意:

?如果哪台机器的相关守护进程没有开启,那么,就查看哪台机器上的守护进程对应的?志log?件,注意,启动脚本运?时提醒的?志后缀是*.out,?我们 查看的是*.log?件。此?件的位置:${HADOOP_HOME}/logs/?。

4. WebUI查看

http://192.168.10.101:50070/

?3. 启动yarn

1. 使?start-yarn.sh脚本

2. jps查看

--1. 在hadoop01上运?jps指令,会多出有如下进程
?resoucemanager
?nodemanager
--2. 在hadoop02上运?jps指令,会多出有如下进程
?nodemanager
--3. 在hadoop03上运?jps指令,会多出有如下进程
?nodemanager

3. webui查看

?http://192.168.10.101:8088/

?3.10? 集群守护进程不能开启的情况

1. 格式化集群时,报错原因
?- 当前?户使?不当
?- /etc/hosts?的映射关系填写错误
?- 免密登录认证异常
?- jdk环境变量配置错误
?- 防?墙没有关闭
2. namenode进程没有启动的原因:
?- 当前?户使?不当
?- 重新格式化时,忘记删除${hadoop.tmp.dir}?录下的内容
?- ?络震荡,造成edit?志?件的事务ID序号不连续
3. datanode出现问题的原因
?- /etc/hosts?的映射关系填写错误
?- 免密登录异常
?- 重新格式化时,忘记删除${hadoop.tmp.dir}?录下的内容,造成
datanode的唯?标识符不在新集群中。
4. 上述问题暴?解决办法:重新格式化
?如果想重新格式化,那么需要先删除每台机器上的${hadoop.tmp.dir}指定路
径下的所有内容,然后再格式化:最好也把logs?录下的内容也清空,因为?志内容已
经是前?个废弃集群的?志信息了,留着也??。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:34:51  更:2021-08-01 14:35:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 1:39:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码