谷歌的向量矩阵
MapReduce计算模型
java的序列化是实现Serializable接口(我如果想把一个java的对象作为inputStream和outputStream流的对象的话,这个java类必须要实现java序列化机制。)
一、Google的基本思想
1、GFS
2、MapReduce:计算模型,进行大数据计算
问题的来源:PageRank(网页排名)
核心:先拆分,再合并
3、BigTable:大表,NoSQL数据库:HBase 基于HDFS之上的NoSQL数据库、列式数据库
HBase里的表 ----> HDFS的目录
HBase里的表的数据 ---->HDFS目录里的文件
思想:通过牺牲存储的空间,来换取性能
把所有的数据存入一张表中,完全违背了关系型数据库范式的要求
对比关系型数据库和大表的数据库的表结构
上表中,在执行查询的时候有两条记录,因为相同的rowkey是一条记录。
二、Hadoop 2.X的安装与配置
习惯:SecureCRT
准备:1、安装Linux和JDK
2、关闭防火墙
3、配置主机名
解压:tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/
设置环境变量:vi ~/.bash_profile
HADOOP_HOME=/root/training/hadoop-2.7.3
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
生效环境变量 source ~/.bash_profile
介绍Hadoop的目录结构
Hadoop有三种安装模式
1、本地模式 一台Linux
(*)特点:没有HDFS,只能测试MapReduce程序(本地数据:Linux的文件)
(*)配置:hadoop-env.sh
26行 export JAVA_HOME=/root/training/jdk1.8.0_144
(*)Demo:测试MapReduce程序
example: /root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/temp/data.txt ~/temp/mr/wc1
2、伪分布模式 一台Linux
(*)特点:在单机上,模拟一个分布式的环境,具备Hadoop的所有功能
(*)hdfs-site.xml
<!--数据块的冗余度,默认是3-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--是否开启HDFS的权限检查,默认:true-->
<!--
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
-->
core-site.xml
<!--NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata11:9000</value>
</property>
<!--HDFS数据保存的目录,默认是Linux的tmp目录,Linux的temp目录的特点是:如果Linux重启之后,这个temp目录下的所有数据会被删掉,所以必须更换目录,新目录要事先存在。-->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/training/hadoop-2.7.3/tmp</value>
</property>
mapred-site.xml
需要注意的是:mapred-site.xml文件默认是没有的,需要执行如下命令,拷贝一份
cp mapred-site.xml.template mapred-site.xml
<!--MR程序运行的容器是Yarn-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<!--ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata11</value>
</property>
<!--NodeManager运行MR任务的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
对NameNode进行格式化: hdfs namenode -format
日志:Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.
启动:start-all.sh = start-dfs.sh + start-yarn.sh
(*)Demo:测试MapReduce程序
example: /root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/wc1204
3、全分布模式 三台Linux
(*)特点:真正的分布式环境,用于生产
4、掌握免密码登录的原理和配置
Hadoop的目录结构
Yarn的结构免密码登录的原理和配置