一、准备工作

在伪分布式的搭建基础上修改配置,搭建全分布式hadoop环境,伪分布式安装参照 hadoop伪分布式安装

首先准备4台虚拟机,信息如下:

192.168.1.11  namenode1

192.168.1.12  datanode1

192.168.1.13  datanode2

129.168.1.14  datanode3

第一台namenode1用做NameNode节点,我们使用伪分布式安装好的环境(将其配置文件进行修改,并分发给其他3个节点)。

第二台datanode1用作第一台DataNode以及SecondaryNameNode。

第三台和第四台虚拟机,即datanode2和datanode3用作纯粹的Datanode节点。

在每台虚拟机上做如下基本操作:

1.配置各自的hostname(以namenode1为例)

vi /etc/hostname

namenode1

2.配置主机映射

vi /etc/hosts

192.168.1.11    namenode1
192.168.1.12 datanode1
192.168.1.13 datanode2
192.168.1.14 datanode3

3.在namenode1上生成ssh公钥,并拷贝给其他节点

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@namenode1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@datanode1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@datanode2
ssh-copy-id -i /root/.ssh/id_rsa.pub root@datanode3

4.保证每台虚拟机的JDK安装

[root@datanode1 ~]# jps
Jps

如果未安装JDK或未配置环境变量,请参照伪分布式安装中的步骤进行JDK的安装。

二、修改Hadoop配置文件

从伪分布式环境中,将hadoop包直接拷贝到namenode1的/opt目录下:

[root@namenode1 ~]# cd /opt/
[root@namenode1 opt]# ll
total
drwxr-xr-x root root Nov : hadoop-2.6.

这个hadoop包中的配置文件都是在伪分布安装时的配置。我们要对其进行一些修改:

1.备份伪分布式的配置文件:

[root@namenode1 etc]# cd /opt/hadoop-2.6./etc/
[root@namenode1 etc]# cp -r hadoop hadoop_pseudo/

2.修改core-site.xml

vi /opt/hadoop-2.6./etc/hadoop/core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/full</value>
</property>
</configuration>

3.修改hdfs-site.xml

vi /opt/hadoop-2.6./etc/hadoop/hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>datanode1:</value>
</property>
</configuration>

在这里,我们将SecondaryNameNode放在datanode1节点上,当然也可以用一台单独的虚拟机来运行。

4.修改slaves

vi /opt/hadoop-2.6./etc/hadoop/slaves

datanode1
datanode2
datanode3

三、将修改好配置后的hadoop包分发给其余三个节点

scp -r /opt/hadoop-2.6. root@datanode1:/opt/
scp -r /opt/hadoop-2.6. root@datanode2:/opt/
scp -r /opt/hadoop-2.6. root@datanode3:/opt/

四、为所有节点的hadoop配置环境变量

当然也可以通过分发的形式:

scp /etc/profile root@datanode1:/etc/
scp /etc/profile root@datanode2:/etc/
scp /etc/profile root@datanode3:/etc/

在每台虚拟机上让环境变量生效:

. /etc/profile

五、初始化全分布式hadoop集群

在namenode1上运行:

[root@namenode1 opt]# hdfs namenode -format
// :: INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = namenode1/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.6.5
......
......
......
19/11/19 16:24:38 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at namenode1/192.168.1.11
************************************************************/

查看/var/hadoop下的文件:

[root@namenode1 name]# cd /var/hadoop/
[root@namenode1 hadoop]# ll
total
drwxr-xr-x root root Nov : full
# 此时存在格式化产生的namenode节点数据存放目录
cd /var/hadoop/full/dfs/name

而在其他三个节点上,此时还不存在此类目录,因为格式化的时候只会作用于NN,而要在启动集群的时候才会在DN上产生这类目录。

六、启动集群

start-dfs.sh
[root@namenode1 sbin]# start-dfs.sh
Starting namenodes on [namenode1]
namenode1: starting namenode, logging to /opt/hadoop-2.6./logs/hadoop-root-namenode-namenode1.out
datanode1: starting datanode, logging to /opt/hadoop-2.6./logs/hadoop-root-datanode-datanode1.out
datanode3: starting datanode, logging to /opt/hadoop-2.6./logs/hadoop-root-datanode-datanode3.out
datanode2: starting datanode, logging to /opt/hadoop-2.6./logs/hadoop-root-datanode-datanode2.out
Starting secondary namenodes [datanode1]
datanode1: starting secondarynamenode, logging to /opt/hadoop-2.6./logs/hadoop-root-secondarynamenode-datanode1.out

我们可以看到,nn启动在namenode1上,snn启动在datanode1上,其余dn启动在datanode1、datanode2、datanode3上。

访问192.168.1.11:50070可以成功打开hadoop提供的web管理页面:

最新文章

  1. 洛谷 P2733 家的范围 Home on the Range Label:二维数组前缀和
  2. hdu3847Trash Removal(凸包)
  3. WCF 入门 (21)
  4. stm32F4各个库文件的作用分析
  5. 仿简书、淘宝等等App的View弹出效果
  6. 第一个输出程序 Console.WriteLine
  7. OCA读书笔记(13) - 性能管理
  8. UCI
  9. nano使用介绍
  10. ORACLE_RESETLOGS浅析[转]
  11. TC358743XBG:HDMI转MIPI CSI参考设计
  12. Elasticsearch 的分页报错 result window is too large
  13. Android之通过网络播放一首简单的音乐
  14. Linux学习之用户身份与文件权限
  15. django xss过滤
  16. node出现 Error: listen EACCES 0.0.0.0:8080错误
  17. Win10安装Redis
  18. Jmeter测试实践:文件上传接口
  19. vnode的挂载和更新流程 -- 简介.
  20. Ubuntu Docker安装

热门文章

  1. Spring Boot(2)中的yaml配置简介
  2. 一些css单位
  3. String和ByteBuffer互转
  4. Oracle临时表的功能与应用
  5. 算法 - k-means算法
  6. 12306 的架构也太 "牛X" 了吧!
  7. int与Integer的一个小区别
  8. Codeforces 1190D. Tokitsukaze and Strange Rectangle
  9. python网络爬虫(4)结构与基本概念
  10. 动态表和C++ vector