0
点赞
收藏
分享

微信扫一扫

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

互联网码农 2022-04-17 阅读 76

目录

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简介

HDFS

Some concepts

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

MapReduce

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

主要配置文件

主要配置文件

集群搭建

实验中构建了类似下图的一个Hadoop集群
集群描述

配置文件如下

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

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

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

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

来源与引用

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

相关推荐

0 条评论