1、搭建hdfs分布式集群

4.1 hdfs集群组成结构:


4.2 安装hdfs集群的具体步骤:

一、首先需要准备N台linux服务器

学习阶段,用虚拟机即可!

先准备4台虚拟机:1个namenode节点  + 3 个datanode 节点

 

二、先修改各台机器的主机名和ip地址

主机名:hdp-01  对应的ip地址:192.168.33.61

主机名:hdp-02  对应的ip地址:192.168.33.62

主机名:hdp-03  对应的ip地址:192.168.33.63

主机名:hdp-04  对应的ip地址:192.168.33.64

 

三、从windows中用CRT软件进行远程连接

在windows中将各台linux机器的主机名配置到的windows的本地域名映射文件中:

c:/windows/system32/drivers/etc/hosts

192.168.33.61  hdp-01

192.168.33.62  hdp-02

192.168.33.63  hdp-03

192.168.33.64  hdp-04

 用crt连接上后,修改一下crt的显示配置(字号,编码集改为UTF-8):


四、配置linux服务器的基础软件环境

l  防火墙

关闭防火墙:service iptables stop 

关闭防火墙自启: chkconfig iptables off

 

l  安装jdk:(hadoop体系中的各软件都是java开发的)

1)       利用alt+p 打开sftp窗口,然后将jdk压缩包拖入sftp窗口

2)       然后在linux中将jdk压缩包解压到/root/apps下

3)       配置环境变量:JAVA_HOME   PATH

vi /etc/profile   在文件的最后,加入:

export JAVA_HOME=/root/apps/jdk1.8.0_60

export PATH=$PATH:$JAVA_HOME/bin

4)       修改完成后,记得source /etc/profile使配置生效

5)       检验:在任意目录下输入命令: java -version 看是否成功执行

6)       将安装好的jdk目录用scp命令拷贝到其他机器

7)       将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令

 

l  集群内主机的域名映射配置

在hdp-01上,vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.33.61   hdp-01

192.168.33.62   hdp-02

192.168.33.63   hdp-03

192.168.33.64   hdp-04

然后,将hosts文件拷贝到集群中的所有其他机器上

scp /etc/hosts hdp-02:/etc/

scp /etc/hosts hdp-03:/etc/

scp /etc/hosts hdp-04:/etc/

 

补充

提示:

如果在执行scp命令的时候,提示没有scp命令,则可以配置一个本地yum源来安装

1、先在虚拟机中配置cdrom为一个centos的安装镜像iso文件

2、在linux系统中将光驱挂在到文件系统中(某个目录)

3、mkdir /mnt/cdrom

4、mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom

5、检验挂载是否成功: ls /mnt/cdrom

6、3、配置yum的仓库地址配置文件

7、yum的仓库地址配置文件目录: /etc/yum.repos.d

8、先将自带的仓库地址配置文件批量更名:

 

9、然后,拷贝一个出来进行修改

10、修改完配置文件后,再安装scp命令:

11、yum install openssh-clients -y


 

五、安装hdfs集群

1、上传hadoop安装包到hdp-01

 

2、修改配置文件

要点提示

核心配置参数:

1)       指定hadoop的默认文件系统为:hdfs

2)       指定hdfs的namenode节点为哪台机器

3)       指定namenode软件存储元数据的本地目录

4)       指定datanode软件存放文件块的本地目录

 

hadoop的配置文件在:/root/apps/hadoop安装目录/etc/hadoop/

 

1) 修改hadoop-env.sh

exportJAVA_HOME=/root/apps/jdk1.8.0_60

 

2) 修改core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp-01:9000</value>

</property>

</configuration>

 

3) 修改hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/root/dfs/name</value>

</property>

 

<property>

<name>dfs.datanode.data.dir</name>

<value>/root/dfs/data</value>

</property>

 

</configuration>

 

4) 拷贝整个hadoop安装目录到其他机器

scp -r/root/apps/hadoop-2.8.0 hdp-02:/root/apps/

scp -r/root/apps/hadoop-2.8.0 hdp-03:/root/apps/

scp -r/root/apps/hadoop-2.8.0 hdp-04:/root/apps/

 

 

 

5) 启动HDFS

 

所谓的启动HDFS,就是在对的机器上启动对的软件

要点

提示:

要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量

vi /etc/profile

export JAVA_HOME=/root/apps/jdk1.8.0_60

export HADOOP_HOME=/root/apps/hadoop-2.8.0

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

 

首先,初始化namenode的元数据目录

要在hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录

hadoop namenode -format

l  创建一个全新的元数据存储目录

l  生成记录元数据的文件fsimage

l  生成集群的相关标识:如:集群id——clusterID

 

然后,启动namenode进程(在hdp-01上)

hadoop-daemon.sh startnamenode

启动完后,首先用jps查看一下namenode的进程是否存在

 

然后,在windows中用浏览器访问namenode提供的web端口:50070

http://hdp-01:50070

 

然后,启动众datanode们(在任意地方)

hadoop-daemon.sh startdatanode

 

 

6) 用自动批量启动脚本来启动HDFS

1)       先配置hdp-01到集群中所有机器(包含自己)的免密登陆

2)       配完免密后,可以执行一次  ssh 0.0.0.0

3)       修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)

hdp-01

hdp-02

hdp-03

hdp-04

 

4)       在hdp-01上用脚本:start-dfs.sh来自动启动整个集群

5)       如果要停止,则用脚本:stop-dfs.sh

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐