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