三分钟了解hadoop

HADOOP简介

一.大数据思维

1.什么是大数据思维

分而治之:把一个复杂的问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的中间结果,把各部分的中间结果组成整个问题的最终结果。

并行:提升速度的关键 分布式运行 计算与数据在一起 计算向数据移动

二.Hadoop的历史

1.三篇论文

GFS----HDFS

MapReduce---MapReduce

BigTable----HBase

2.Hadoop Models

Hadoop Common:基础型模块。RPC调用,Socket通信

Hadoop Distributed File System 分布式文件系统,用于存储大数据的信息

Hadoop YARN 资源协调框架

Hadoop MapReduce 大数据计算框架

Hadoop Ozone: 对象存储框架

Hadoop Submarine: 机器学习引擎

3.分布式文件系统

1.分布式文件系统架构

FS File System

文件系统是基于硬盘之上的一个文件管理的工具

我们用户操作文件系统可以和硬盘进行解耦

DFS Distributed File System:

分布式文件系统

将我们的数据存放在多台电脑上存储

分布式文件系统有很多,

HDFS是mapreduce计算的基础

2.分布式架构的原理
  • 如何拆分

    • 数据都是以字节数组的方式存放在硬盘上

    • 如果我们将文件分成两份,相当于将字节数组分成两份

      • 888 KB (909,312 字节)

      • 444KB 454,656字节

      • 444kB 454,656字节

    • 如果我们能将这两个数组再合并到一起,文件就会恢复成原来的样子

    • 如果文件特别大,需要切分成N份,相当于切分成了N个字节数组

      • 如何拼接? 10 20 30 40

    • 为了记录每个子块(子字节数组)所属的位置,可以记录子块在整个文件的偏移量

      • 数组都有对应的索引(下标),可以快速的定位数据

  • 拆分大小

    • 拆分之后块的大小要一致

      • 如果大小不一致,很难通过偏移量来计算它的位置

      • 如果数据块不一致,在多节点中拉取数据的时间不一致

      • 分布式计算每台机器计算出结果的时间要相对一致

      • 进行分布式算法设计的时候,数据不统一,算法很难设计

    • 在H1默认大小为64M,在H2及其以后,默认大小为128M

    • 同一个文件中,所有块的大小要完全一致,除了最后一个块

    • 不同文件中,块的大小可以不同

    • 块的数量= Ceil(总大小/每块的大小);

      • 1024M 100M 11块

      • 10M 1M 10块

    • 问题

      • 切的太整齐了,将一个完整的数据切分到两个块

  • 数据安全

    • 将数据备份多份

    • 默认每一个数据都有三个备份

    • 数据备份数不成超过节点数

  • 数据规则

    • HDFS中一旦文件被存储,数据不允许被修改

      • 修改会影响偏移量

      • 修改会导致数据倾斜

      • 修改数据会导致蝴蝶效益

    • 但是可以被追加,但是不推荐

    • 一般HDFS存储的都是历史数据

3.节点划分

NameNode:管理节点

DataNode:存储数据

三.搭建伪分布式

1.克隆一台虚拟机

按照之前linux搭建方法:修改IP地址,修改主机名称

2.设置免密钥登录

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

ssh-copy-id [email protected] ~/.ssh/id_rsa.pub (按照上一步设置的IP进行登录)

3.上传Hadoop压缩包并移动到指定路径下

tar -zxvf hadoop-2.6.5.tar.gz

mv hadoop-2.6.5 /opt/sxt

4.设置环境变量

vim /eyc/profile

添加Hadoop路径 export HADOOP_HOME=/opt/sxt/hadoop-2.6.5 (以实际安装路径为主)

export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

5.修改配置文件

文件路径:/opt/sxt/hadoop-2.6.5/etc/hadoop

(1)修改关于jdk的配置文件

文件hadoop-env.sh中修改jdk安装路径 25行

文件mapred-env.sh中修改jdk安装路径 16行

文件yarn-env.sh中修改jdk安装路径 23行

(2)修改核心配置文件

core-site.xml文件中添加

<property>
      <name>fs.defaultFS</name>
      <value>hdfs://node01:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
      <value>/var/sxt/hadoop/local</value>
</property>

hdfs-site.xml文件中添加

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>node01:50090</value>
</property>
6.格式化

hdfs namenode -format

7.启动

start-dfs.sh

8.访问

http://192.168.61.200:50070

9.开始使用命令创建目录

hdfs dfs -mkdir -p /user/root

hdfs dfs -put apache-tomcat-7.0.61.tar.gz /user/root

hdfs dfs -D dfs.blocksize=1048576 -put jdk-7u67-linux-x64.rpm /user/root

10.网址中查看相关信息

猜你喜欢

转载自www.cnblogs.com/ruanjianwei/p/11780929.html