Hadoop分布式计算实验踩坑实录及小结

目录

  • Hadoop分布式计算实验踩坑实录及小结
    • 踩坑实录
    • Hadoop学习
      • Hadoop简介
      • HDFS
      • Some concepts
      • MapReduce
      • 主要配置文件
      • 集群搭建
    • 来源与引用

Hadoop分布式计算实验踩坑实录及小结

踩坑实录

  1. 单机jdk配置

Ubuntu下安装jdk11,不熟悉apt-get的默认目录及目录配置,直接在Oracle找了Linux的压缩包在虚拟机上解压,解压到指定目录后配一下java环境变量。/etc下的文件写对权限有要求,可以先sudo su进入root操作。验证命令java -version

  1. 单机环境配置
  • 更改主机名及/etc/hosts文件,为后续ssh提供映射关系,这里默认要完成多机连接的网络环境配置(多机之间要能ping通)

参考链接:多机连接网络环境配置

  • ssh配置

有很多操作都涉及到权限问题,要及时做响应的root权限或者返回到user权限。

:不用先复制共享密钥以及先配好ssh,后续Hadoop单机先尽可能配置完成再克隆即可,最小化操作冗余。

  • 单机Hadoop环境配置

:hadoop不要解压到根目录/下,解压到用户目录~/username下,根目录写权限要求高,后续麻烦。

环境变量配置即时生效需要命令source /etc/profile

其他Hadoop配置相比前序流程较为简单,修改配置文件等即可。

  1. 多机Hadoop文件配置

用masters以及workers文件指定主机即可。

  1. hdfs操作及wordcount例程

输入输出要在Hadoop文件系统中完成,不是输出到/output目录,该文件夹在hdfs下,用hdfs dfs -cat /output/*命令查看

最后可以利用Hadoop的分布式计算框架统计出文件中每个词出现次数

Hadoop学习

Hadoop简介

Hadoop 是一个开源的分布式计算和存储框架,由 Apache 基金会开发和维护。Hadoop 使用 Java 开发,所以可以在多种不同硬件平台的计算机上部署和使用。其核心部件包括分布式文件系统 (Hadoop DFS,HDFS) 和 MapReduce。

2003 年和 2004 年,Google 公司先后发表了两篇著名的论文 GFS 和 MapReduce。这两篇论文和 2006 年发表的 BigTable 成为了现在著名的"Google 三大论文"。

Hadoop 在某种程度上将多台计算机组织成了一台计算机(做同一件事),那么 HDFS 就相当于这台计算机的硬盘,而 MapReduce 就是这台计算机的 CPU 控制器。

HDFS

HDFS 高效的存储是通过计算机集群独立处理请求实现的。响应服务器直接分配一个数据服务器给用户,然后用户直接与数据服务器交互,效率会快很多。

数据存储的稳定性往往通过"多存几份"的方式实现,HDFS 也使用了这种方式。HDFS 的存储单位是块 (Block) ,一个文件可能会被分为多个块储存在物理存储器中。因此 HDFS 往往会按照设定者的要求把数据块复制 n 份并存储在不同的数据节点 (储存数据的服务器) 上,如果一个数据节点发生故障数据也不会丢失。

Some concepts

  • 命名节点 (NameNode) 是用于指挥其它节点存储的节点。任何一个"文件系统"(File System, FS) 都需要具备根据文件路径映射到文件的功能,命名节点就是用于储存这些映射信息并提供映射服务的计算机,在整个 HDFS 系统中扮演"管理员"的角色,因此一个 HDFS 集群中只有一个命名节点。
  • 数据节点 (DataNode) 使用来储存数据块的节点。
  • 副命名节点 (Secondary NameNode) 别名"次命名节点",是命名节点的"秘书"。这个形容很贴切,因为它并不能代替命名节点的工作,无论命名节点是否有能力继续工作。它主要负责分摊命名节点的压力、备份命名节点的状态并执行一些管理工作,如果命名节点要求它这样做的话。如果命名节点坏掉了,它也可以提供备份数据以恢复命名节点。副命名节点可以有多个。

MapReduce

映射后规约,映射完成一个子任务,规约是对子任务的合并,有点像归并排序的感觉。

打个比方,你可以把 MapReduce 想象成人口普查,人口普查局会把若干个调查员派到每个城市。每个城市的每个人口普查人员都将统计该市的部分人口数量,然后将结果汇总返回首都。在首都,每个城市的统计结果将被规约到单个计数(各个城市的人口),然后就可以确定国家的总人口。这种人到城市的映射是并行的,然后合并结果(Reduce)。这比派一个人以连续的方式清点全国中的每一个人效率高得多。

主要配置文件

Hadoop分布式计算实验踩坑实录及小结_第1张图片

集群搭建

实验中构建了类似下图的一个Hadoop集群
Hadoop分布式计算实验踩坑实录及小结_第2张图片

配置文件如下

<configuration>
    <property>
        // 配置master的端口
        <name>fs.default.namename>	
        <value>hdfs://master:9000value>
    property>
    <property>
        // 配置临时文件目录
        <name>hadoop.tmp.dirname>
        <value>/tmpvalue>
    property>
configuration>

<configuration>
    <property>
        // 所有存储文件复制三份
        <name>dfs.replicationname>
        <value>3value>
    property>
configuration>

<configuration>
    <property>
        <name>mapred.job.trackername>
        <value>master:9001value>
    property>
configuration>

配置好环境后可以在集群内执行WordCount例程。map-reduce编程通常自定义Map和Reduce类,并实现map与reduce方法,实现自定义逻辑。

来源与引用

  • Source: HIT-软件架构与中间件lab2
  • Reference
    • 菜鸟教程
    • lab2-Manual

你可能感兴趣的:(HIT,hadoop,分布式,ubuntu,java)