标签:方法 时间 node path second table 分布式架构 comm 规则
分而治之:把一个复杂的问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的中间结果,把各部分的中间结果组成整个问题的最终结果。
并行:提升速度的关键 分布式运行 计算与数据在一起 计算向数据移动
GFS----HDFS
MapReduce---MapReduce
BigTable----HBase
Hadoop Common:基础型模块。RPC调用,Socket通信
Hadoop Distributed File System 分布式文件系统,用于存储大数据的信息
Hadoop YARN 资源协调框架
Hadoop MapReduce 大数据计算框架
Hadoop Ozone: 对象存储框架
Hadoop Submarine: 机器学习引擎
FS File System
文件系统是基于硬盘之上的一个文件管理的工具
我们用户操作文件系统可以和硬盘进行解耦
DFS Distributed File System:
分布式文件系统
将我们的数据存放在多台电脑上存储
分布式文件系统有很多,
HDFS是mapreduce计算的基础
如何拆分
数据都是以字节数组的方式存放在硬盘上
如果我们将文件分成两份,相当于将字节数组分成两份
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存储的都是历史数据
NameNode:管理节点
DataNode:存储数据
按照之前linux搭建方法:修改IP地址,修改主机名称
ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa
ssh-copy-id root@192.168.61.200 ~/.ssh/id_rsa.pub (按照上一步设置的IP进行登录)
tar -zxvf hadoop-2.6.5.tar.gz
mv hadoop-2.6.5 /opt/sxt
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
文件路径:/opt/sxt/hadoop-2.6.5/etc/hadoop
文件hadoop-env.sh中修改jdk安装路径 25行
文件mapred-env.sh中修改jdk安装路径 16行
文件yarn-env.sh中修改jdk安装路径 23行
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>
hdfs namenode -format
start-dfs.sh
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
标签:方法 时间 node path second table 分布式架构 comm 规则
原文地址:https://www.cnblogs.com/ruanjianwei/p/11780929.html