阅读 142

Hadoop大数据平台(1)--单机模式、伪分布式、完全分布式部署

Hadoop大数据平台(1)--单机模式、伪分布式、完全分布式部署

文章目录

一、hadoop简介

二、HDFS分布式文件存储系统单机版部署

三、伪分布式存储系统部署

四、完全分布式存储系统部署

一、hadoop简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。

HDFS为海量的数据提供了存储。

MapReduce为海量的数据提供了计算。

Hadoop框架包括以下四个模块:

Hadoop Common: 这些是其他Hadoop模块所需的Java库和实用程序。这些库提供文件系统和操作系统级抽象,并包含启动Hadoop所需的Java文件和脚本。

Hadoop YARN: 这是一个用于作业调度和集群资源管理的框架。

Hadoop Distributed File System (HDFS): 分布式文件系统,提供对应用程序数据的高吞吐量访问。

Hadoop MapReduce:这是基于YARN的用于并行处理大数据集的系统。

整个生态体系框图:



二、HDFS分布式文件存储系统单机版部署

(1)useradd hadoop           %首先创建普通用户并给定密码,使用普通用户的身份来运行

echo westos | passwd --stdin hadoop

(2)下载解压相关资源包

(3)为可执行的二进制程序做软链接,便于之后的升级

(4)设置hadoop全局环境变量

vim /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh

1

2

3

4

5

6




(5)默认情况下,Hadoop 被配置为以非分布式模式运行,作为单个 Java 过程。这对于调试很有用。

以下示例将未包装的 conf 目录复制为输入,然后查找并显示给定常规表达式的每个匹配项。输出已写入给定的输出目录。

mkdir input

cp etc/hadoop/*.xml input

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar grep input output 'dfs[a-z.]+'      %使用系统给定的jar包做测试

cat output/*           %查看输出内容

1

2

3

4

5

6




注意:output目录不能被提前创建,否则会报错。它是在执行过程中自动创建的



三、伪分布式存储系统部署

Hadoop 也可以在伪分布式模式下的单节点上运行,其中每个 Hadoop daemon 在单独的 Java 进程中运行。


(1)编辑配置文件

etc/hadoop/core-site.xml:

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://localhost:9000</value>

    </property>

</configuration>


etc/hadoop/hdfs-site.xml:

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>         %存储副本数,默认是三份,现在因为我们用一个节点做伪分布式,因此设置为1份

    </property>

</configuration>


(2)做本地免密

默认情况下,hdfs会通过免密连接worker节点(数据存储节点)来启动相应的进程。在hadoop/etc/目录下会有workers的文件,文件中指定了worker节点

ssh-keygen

ssh-copy-id localhost

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21







(3)bin/hdfs namenode -format        %格式化文件系统,产生的数据存储在/tmp/目录中

(4)sbin/start-dfs.sh              %启动NameNode进程和DataNode进程

namenode节点上缓存的是整个分布式文件系统的元数据,datanode存储的是真正的数据

1

2

3






其中SecondaryNameNode可以理解为,当NameNode挂掉之后,SecondaryNameNode会接管,并帮助NameNode做一些周期性的清理,备份上面的元数据


(5)访问网页进行测试

NameNode - http://localhost:9870/

1

2




(6)创建专门的存储目录

bin/hdfs dfs -mkdir /user

bin/hdfs dfs -mkdir /user/<username>       %相当于创建用户在分布式文件系统中的家目录

bin/hdfs dfs -put input          %将input目录中的内容上传到分布式文件存储系统中

1

2

3

4




注意:启动分布式文件系统时要保证所有节点时间必须同步,而且解析要有,否则会报错。并且分布式文件系统中依然不能提前创建output目录,就是在网页那边要保证之前没有output目录




(7)将分布式文件系统中的输出文件复制到本地文件系统并检查它们:

bin/hdfs dfs -get output output

cat output/*

或查看分布式文件系统上的输出文件:

bin/hdfs dfs -cat output/*

1

2

3

4

5






四、完全分布式存储系统部署

再开启两个新的虚拟机server2、server3


(1)在新开启的虚拟机上同样创建hadoop用户

(2)server1上的hdfs先停掉

(3)搭建nfs文件共享系统,server1为nfs服务器

(4)server2和server3挂载server1的hadoop目录到指定目录下从而实现数据同步

1

2

3

4













(5)在server1上修改hadoop相关配置文件、删除/tmp/目录下上次初始化产生的文件并重新初始化、启动hdfs

1

core-site.xml:


workers:


hdfs-site.xml:






(6)上传文件到分布式存储系统中进行测试

1




网页查看:



(7)节点热添加

1








注意:这里在哪个节点上上传将会被优先分配到哪个节点上


————————————————

版权声明:本文为CSDN博主「HTDST」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/nk298120/article/details/116117084


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐