安装hadoop集群步骤:
准备工作:
在hadoop1、hadoop2、hadoop3、hadoop4节点上
a、关闭防火墙:—>service iptables stop
b、在每一个节点上创建一个目录/bigdata,用来存放安装的软件:
—>mkdir /bigdata
在hadoop1节点上:
1、上传jdk、hadoop源码包
传输文件的工具:WinScp----可拖拉文件的上传工具
2、解压上传文件到指定文件夹中
tar
-z 按照gzip压缩方式 -----.gz一般用作解压,压缩后缀名为.gz文件
-j 按照bzip2压缩方式 -----.bz2
-x 抽取—解压意思
-c 聚合—压缩意思
-v 显示信息
-f 目标文件
-C 可以选择指定的文件夹
[root@hadoop1 ~]# tar -zxvf /tmp/jdk-8u162-linux-x64.tar.gz -C /bigdata
[root@hadoop1 ~]# tar -zxvf /tmp/hadoop-2.7.3.tar.gz -C /bigdata
3、配置环境变量 start-all.sh ----启动hadoop集群
---->vi /etc/profile
export 修饰变量为全局变量
jdk环境变量:
#jdk
export JAVA_HOME=/bigdata/jdk1.8.0_162
hadoop环境变量:
hadoop中有两个需要配置文件夹:
bin:存放hadoop基础命令
sbin:存放hadoop启动命令,关闭命令等
#hadoop
export HADOOP_HOME=/bigdata/hadoop-2.7.3
追加到PATH路径下
export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:HADOOP_HOME/bin:
H
A
D
O
O
P
H
O
M
E
/
s
b
i
n
:
HADOOP_HOME/sbin:
HADOOPHOME/sbin:PATH:$HOME/bin
环境变量生效
[root@hadoop1 ~]# source /etc/profile
测试:
[root@hadoop1 ~]# java -version
java version “1.8.0_162”
Java™ SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot™ 64-Bit Server VM (build 25.162-b12, mixed mode)
[root@hadoop1 ~]# hadoop version
Hadoop 2.7.3
环境变量配置成功
4、4个节点之间免密配置
a、配置IP和主机名影射关系:
vi /etc/hosts
在每一个节点上添加:
192.168.43.199 hadoop1
192.168.43.200 hadoop2
192.168.43.201 hadoop3
192.168.43.202 hadoop4
测试:(针对每一个不同的节点)
ping hadoop1
ping hadoop2
ping hadoop3
ping hadoop4
b、配置免密
在每一个节点上输入—>
ssh-keygen -t rsa ------免密配置
例如:[root@hadoop1 ~]# ssh-keygen -t rsa 直接四步回车
分别在Hadoop2、hadoop3、hadoop4节点上
[root@hadoop2 ~]# cp ~/.ssh/id_rsa.pub ~/.ssh/hadoop2.pub
[root@hadoop3 ~]# cp ~/.ssh/id_rsa.pub ~/.ssh/hadoop3.pub
[root@hadoop4 ~]# cp ~/.ssh/id_rsa.pub ~/.ssh/hadoop4.pub
发送公钥到hadoop1节点上:(用户相同可以采用以下方式—root)
[root@hadoop2 ~]# scp ~/.ssh/hadoop2.pub hadoop1:~/.ssh/
可以选择给hadoop1节点上的不同用户发送
[root@hadoop3 ~]# scp ~/.ssh/hadoop3.pub root@hadoop1:~/.ssh/
发送给陌生人(没有没有ip影射)
[root@hadoop4 ~]# scp ~/.ssh/hadoop4.pub root@192.168.43.199:~/.ssh/
注意:目前采用是第一种方式。
把4个节点上公钥都添加一个叫做authorized_keys文件中
[root@hadoop1 ~]# cat ~/.ssh/id_rsa.pub ~/.ssh/hadoop2.pub ~/.ssh/hadoop3.pub ~/.ssh/hadoop4.pub >>~/.ssh/authorized_keys
备注:authorized_keys 是一个认证文件
把authorized_keys文件发送给hadoop2、hadoop3、hadoop4
[root@hadoop1 ~]# scp ~/.ssh/authorized_keys hadoop2:~/.ssh/
[root@hadoop1 ~]# scp ~/.ssh/authorized_keys hadoop3:~/.ssh/
[root@hadoop1 ~]# scp ~/.ssh/authorized_keys hadoop4:~/.ssh/
配置文件的执行权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
举例说明:4个节点上都需要执行---->
[root@hadoop1 ~]# chmod 700 ~/.ssh
[root@hadoop1 ~]# chmod 600 ~/.ssh/authorized_keys
测试免密是否配置成功:
[root@hadoop1 ~]# ssh hadoop4 (hadoop2、hadoop3)
Last login: Mon Sep 16 16:46:40 2019 from 192.168.43.159
-----------------------------免密配置成功-------------------------------
Hadoop源码包目录结构:
bin:hadoop 基本命令的文件
—hadoop namenode -format 类似 hadoop version
sbin:存放hadoop集群启动和关闭命令
—start-all.sh、start-dfs.sh、stop-all.sh
准备工作:
搞配置—搞优化
namenode----所有信息都保存内存中----内存的需求极大
secondarynamenode—辅助进程,需要namenode同样配置
resourcemanager—需要内存—有条件尽量独占一个节点
nodemanager ----节点管理,需要在每一个节点上配置
datanode----可以在每一个节点配置
hadoop1 hadoop2 hadoop3 hadoop4
namenode × √ × ×
secondarynamenode × × √ ×
resourcemanager × × × √
nodemanager √ √ √ √
datanode √ √ √ √
配置参考:hadoop官网 http://hadoop.apache.org/ ---- https://hadoop.apache.org/old/
https://hadoop.apache.org/docs/r2.7.3/ -----hadoop 2.7.3官方参考文档
file:/// ----本地文件系统
hdfs:// ----hdfs分布式文件系统
开始配置---------hadoop集群-----------------------------
修改hadoop的配置信息:
H
O
D
O
O
P
H
O
M
E
/
e
t
c
/
h
a
d
o
o
p
/
∣
∣
(
HODOOP_HOME/etc/hadoop/ || (
HODOOPHOME/etc/hadoop/∣∣(HODOOP_HOME===/bigdata/hadoop-2.7.3)
a、hadoop启动文件----hadoop-env.sh
vi /bigdata/hadoop-2.7.3/etc/hadoop/hadoop-env.sh ---->vi 打开
export JAVA_HOME=/bigdata/jdk1.8.0_162 -----修改jdk真实安装路径
b、hadoop的通用文件配置—core-site.xml
vi /bigdata/hadoop-2.7.3/etc/hadoop/core-site.xml
fs.defaultFS
hdfs://hadoop2:9000
hadoop.tmp.dir
/bigdata/tmp/hadoop
c、修改hdfs分布式配置信息—hdfs-site.xml —HDFS
dfs.namenode.secondary.http-address
hadoop3:50090
d、修改mapred-site.xml ----mapreduce
mapreduce.framework.name
yarn
e、修改yarn-site.xml ----->resourcemanager
yarn.resourcemanager.hostname
hadoop4
yarn.nodemanager.aux-services
mapreduce_shuffle
f、slaves
hadoop1
hadoop2
hadoop3
hadoop4
发送文件到hadoop2、hadoop3、hadoop4
/etc/profile
[root@hadoop1 ~]# scp /etc/profile hadoop2:/etc/profile
[root@hadoop1 ~]# scp /etc/profile hadoop3:/etc/profile
[root@hadoop1 ~]# scp /etc/profile hadoop3:/etc/profile
/bigdata 文件夹
[root@hadoop1 ~]# scp -r /bigdata hadoop2:/
[root@hadoop1 ~]# scp -r /bigdata hadoop3:/
[root@hadoop1 ~]# scp -r /bigdata hadoop4:/
在hadoop2、hadoop3、hadoop4分别生效环境变量
source /etc/profile
在hadoop2-----在namenode所在节点上格式化
格式化namenode、datanode
[root@hadoop1 ~]# hadoop namenode -fromat 格式化
[root@hadoop1 ~]# hadoop datanode -fromat 格式化
启动测试:
[root@hadoop1 ~]# start-all.sh
[root@hadoop4 ~]# yarn-daemon.sh start resourcemanager