大数据基础
第一节:什么是大数据,本质?
(1)数据的存储:分布式文件系统(分布式存储)
(2)数据的计算:分布式计算
第二节:JAVA和大数据是什么关系?
1、HADOOP:基于JAVA语言开发
2、SPARK: 基于SCALA语言,SCALA基于JAVA语言
第三节:学习大数据需要的基础和路线
1、学习大数据需要的基础:JAVA基础(JAVASE)---> 类、继承、I/O、反射、泛型*****
LINUX基础(LINUX的操作) ---> 创建文件、目录、VI编辑器***
2、学习路线:
(1)JAVA基础和LINUX基础
(2)HADOOP的学习:体系结构、原理、编程
(*)第一阶段:HDFS、MAPREDUCE、HBASE(NOSQL数据库)
(*)第二阶段:数据分析引擎 ---> HIVE、PIG
数据采集引擎 ---> SQOOP、FLUME
(*)第三阶段:HUE:WEB管理工具
ZOOKEEPER:实现HADOOP的HA
OOZIE: 工作流引擎
(3)SPARK的学习
(*)第一个阶段:SCALA编程语言
(*)第二个阶段:SPARK CORE-----> 基于内存,数据的计算
(*)第三个阶段:SPARK SQL -----> 类似ORACLE中的SQL语句
(*)第四个阶段:SPARK STREAMING ---> 进行实时计算(流式计算):比如:自来水厂
(4)APACHE STORM:类似SPARK STREAMING ---> 进行实时计算(流式计算):比如:自来水厂
(*)NOSQL:REDIS基于内存的数据库
Hadoop背景起源一 HDFS
一、什么是大数据,本质?
(1)数据的存储:分布式文件系统(分布式存储)-----> HDFS: Hadoop Distributed File System
(2)数据的计算:分布式计算
二、如何解决大数据的存储?----> 分布式文件系统(HDFS,来源于GFS)
举例:网盘
(1) GFS: 没有硬盘的,数据只能存在内存中
(2) Hadoop的安装模式
(*)本地模式 :1台
(*)伪分布模式:1台
(*)全分布模式:3台
Hadoop背景起源二 MapReduce
一、如何解决大数据的计算?分布式计算
(1)什么是PageRank(MapReduce的问题的来源)
(*) 搜索排名
(2)MapReduce(Java语言实现)基础编程模型: 把一个大任务拆分成小任务,再进行汇总
(*) 更简单一点例子
Hadoop背景起源三 BigTable
第一节:关系型数据库(Oracle、MySQL、SQL Server)的特点
1、什么是关系型数据库?基于关系模型(基于二维表)所提出的一种数据库
2、ER(Entity-Relationalship)模型:通过增加外键来减少数据的冗余
3、举例:学生-系
第二节:什么是BigTable?: 把所有的数据保存到一张表中,采用冗余 ---> 好处:提高效率
1、因为有了bigtable的思想:NoSQL:HBase数据库
2、HBase基于Hadoop的HDFS的
3、描述HBase的表结构
Hadoop安装
准备实验的环境:
1、安装Linux、JDK
2、配置主机名、免密码登录
3、约定:安装目录:/root/training
安装:
1、解压 : tar -zxvf hadoop-2.4.1.tar.gz -C /root/training/
2、设置环境变量: vi ~/.bash_profile
HADOOP_HOME=/root/training/hadoop-2.4.1
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
生效环境变量: source ~/.bash_profile
第一节:Hadoop的目录结构
第二节:Hadoop的本地模式
1、特点:不具备HDFS,只能测试MapReduce程序
2、修改hadoop-env.sh
修改第27行:export JAVA_HOME=/root/training/jdk1.7.0_75
3、演示Demo: $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar
命令:hadoop jar hadoop-mapreduce-examples-2.4.1.jar wordcount /root/data/input/data.txt /root/data/output/wc
日志:17/08/04 23:28:38 INFO mapreduce.Job: map 100% reduce 100%
注意:MR有一个默认的排序规则
第三节:Hadoop的伪分布模式
1、特点:具备Hadoop的所有功能,在单机上模拟一个分布式的环境
(1)HDFS:主:NameNode,数据节点:DataNode
(2)Yarn:容器,运行MapReduce程序
主节点:ResourceManager
从节点:NodeManager
2、步骤:
(1)hdfs-site.xml
<!--配置HDFS的冗余度-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--配置是否检查权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
(2)core-site.xml
<!--配置HDFS的NameNode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.88.11:9000</value>
</property>
<!--配置DataNode保存数据的位置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/training/hadoop-2.4.1/tmp</value>
</property>
(3) mapred-site.xml
<!--配置MR运行的框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(4) yarn-site.xml
<!--配置ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.88.11</value>
</property>
<!--配置NodeManager执行任务的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(5) 格式化NameNode
hdfs namenode -format
日志:Storage directory /root/training/hadoop-2.4.1/tmp/dfs/name has been successfully formatted.
(6) 启动:start-all.sh
(*) HDFS: 存储数据
(*) Yarn:执行计算
(7) 访问:(*)命令行
(*)Java API
(*)Web Console:
HDFS:http://192.168.88.11:50070
Yarn:http://192.168.88.11:8088