2020年暑假 (3)

开始学习Hadoop

1、什么是hadoop

hadoop中有3个核心组件:

  分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上

  分布式运算编程框架:MAPREDUCE —— 实现在很多机器上分布式并行运算

  分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源

 

2.hdfs整体运行机制

hdfs:分布式文件系统

hdfs有着文件系统共同的特征:

  1、有目录结构,顶层目录是:  /

  2、系统中存放的就是文件

  3、系统可以提供对文件的:创建、删除、修改、查看、移动等功能 

hdfs跟普通的单机文件系统有区别:

  1、单机文件系统中存放的文件,是在一台机器的操作系统中

  2、hdfs的文件系统会横跨N多的机器

  3、单机文件系统中存放的文件,是在一台机器的磁盘上

  4、hdfs文件系统中存放的文件,是落在n多机器的本地单机文件系统中(hdfs是一个基于linux本地文件系统之上的文件系统)

hdfs的工作机制:

  1、客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的>

  2、一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node)

  3、为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)

综述:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!

 

3.搭建hdfs分布式集群

 这一部分是多台在虚拟机上进行操作,有很多细节需要注意到,简单来说有这几部分:

  1.准备n台linux服务器

  2.修改各台及其的主机名和ip地址

  3.配置linux服务器的基础软件环境

    关闭防火墙

    安装jdk

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

  4.安装hdfs集群

    上传安装包,配置环境变量

    修改配置文件(hadoop-env.sh  core-site.xml  hdfs-site.xml)

  5.启动HDFS

    初始化name的的元数据目录

    启动namenode进程

    端口访问

4.遇到的问题

  1.Xshell连接不上Linux服务,同时在服务器内部运行Shell无法查询出ip,通过重启网卡(service network restart)解决

  2.运行Hadoop命令出现警告:

    Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

  需要升级gilbc,用到的命令依次为:

    wget  http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz 

    tar -xf glibc-2.17.tar.gz

    cd glibc-2.17

    mkdir build; cd build

    ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

    make -j 8

    make  install

原文地址:https://www.cnblogs.com/ywqtro/p/13509151.html