设为首页 加入收藏

TOP

HDFS完全分布式搭建步骤
2019-04-04 12:16:15 】 浏览:78
Tags:HDFS 完全 分布式 搭建 步骤

1.准备阶段

  • 分布式集群规划

准备4个Linux操作系统,并配置好IP地址,将NameNode在Hadoop1节点上启动,SecondaryNameNode和DataNode在Hadoop2节点上启动,其余两个DataNode分别在Hadoop3和Hadoop4节点上启动。**

主机名 IP地址 NameNode SecondaryNameNode DataNode
Hadoop1 192.168.23.133 启动
Hadoop2 192.168.23.130 启动 启动
Hadoop3 192.168.23.132 启动
Hadoop4 192.168.23.131 启动

2.操作阶段

(1)为了不产生数据延迟首先使4台Linux系统的时间同步
①各个节点安装ntp :

yum install ntp

②安装完成后每个节点都执行如下命令从而达到时间同步

/*ntp1.aliyun.com为阿里的时间服务器*/
ntpdate ntp1.aliyun.com

(2)创建文件夹用来放置Hadoop和JDK的压缩包,然后输入以下命令解压压缩包

tar -zxvf Hadoop-2.6.5.gz
tar -zxvf jdk-1.8.0_151_linux-x64_bin.gz

配置Hadoop和JDK的环境变量
输入命令

vim ~/.bashrc

在文件最后添加

/*配置Hadoop环境变量*/
export HADOOP_HOME=/hpe/hadoop/Hadoop-2.6.5
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

/*配置JDK环境变量*/
export JAVA_HOME=/hpe/hadoop/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin  

输入命令使环境变量生效

source ~/.bashrc

(3)配置免密登录
Hadoop1节点和其他节点之间进行免密访问
Hadoop1->Hadoop1
Hadoop1->Hadoop2
Hadoop1->Hadoop3
Hadoop1->Hadoop4
①修改hosts文件,做好ip之间的映射,输入以下命令

vim /etc/hosts

在hosts文件中添加以下代码,实现主机名的映射

192.168.23.133 Hadoop1
192.168.23.130 Hadoop2
192.168.23.132 Hadoop3
192.168.23.131 Hadoop4

③在所有节点执行以下命令

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

②在Hadoop1节点执行,将Hadoop1的公钥加入到其他节点的白名单中

ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop3
ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop4

(4)修改hdfs-site.xml的配置文件

切换hdfs-site.xml所在的盘符,输入vim hdfs-site.xml,在其中添加如下代码
<property>
        <name>dfs.replication</name>
        <value>3</value> //Block副本数+1
</property>
<property>   
  
<name>dfs.namenode.secondary.http-address</name>
     <value>Hadoop2:50090</value> //使secondaryNamenode在Hadoop2系统上启动,50090是设置的端口号
</property>

(5)修改core-site.xml配置文件

输入vim core-site.xml,在其中添加如下代码
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://Hadoop1:9000</value> //设置默认前缀
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/var/abc/hadoop/cluster</value> //初始化生成文件夹的路径
</property>

(6)修改slaves配置文件

此部分设置的是DataNode在哪个节点启动
输入vim slaves,添加
Hadoop2
Hadoop3
Hadoop4
切记有空格,且不能在一行 

(7)将配置好的安装包分发到其他节点上

scp -r hadoop-2.6.5 root@Hadoop2:/hpe/hadoop/
scp -r hadoop-2.6.5 root@Hadoop3:/hpe/hadoop/
scp -r hadoop-2.6.5 root@Hadoop4:/hpe/hadoop/

(8)将所有的HDFS相关的进程关闭

stop-dfs.sh

(9)格式化NameNode(创建目录以及文件)在Hadoop1节点执行

hdfs namenode -format

(10)启动HDFS

start-dfs.sh

如出现下图,则HDFS完全分布式搭建成功

存活节点数为3,证明启动成功
Lives Nodes为3,证明启动成功。

3.搭建过程中遇见的问题

1).待Linux系统安装好后没有进行IP配置导致节点之间无法正常通信。
2).没有关闭防火墙,输入jps后每个节点正常显示启动的角色,但是页面无法访问。
3).hosts文件配置有误,主要原因是命令前有空格。
4).在配置好安装包分发到其他节点上以后,修改了Hadoop1节点的配置文件,导致secondaryNamenode角色启动失败。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hadoop _ Hdfs   java.io.IO.. 下一篇Hadoop-->HDFS原理总结

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目