目录标题
1.初识大数据
1.1 大数据相关技术
Flume:数据的收集聚集加载
Hadoop.HDFS:数据的存储
MapReduce、Hive、SparkSql:数据的离线处理
Kafka、Storm、SparkStreaming:数据的实时处理
Hbase:数据库
Sqoop:HDFS和关系型数据库桥梁
1.2 日志流量分析系统
1.2.1 项目设计
项目通用,可以对接任何有相应需求的项目
1.2.2 日志的捕获
JS埋点:将参数系数组织起来发送到日志收集系统。(传统后台埋点,影响后台维护和运行;script标签内发送影响前端逻辑,最后选择以img标签实现埋点信息的发送)
Log4j:收集日志,在打印同时,输出到flume中。
Flume:数据的收集聚集加载
1.2.3 离线分析
HDFS(Hadoop的一部分):海量数据的存储
Hive(底层基于Hadoop):海量离线数据的处理
1.2.4 实时分析
Storm:流式数据处理(速度最快)
Kafka:消息队列,削峰平谷
1.3 系统搭建
独立的服务器,逻辑简单,用Servlet处理请求参数,进行字符串拼接,并通过log4j输出到控制台和flume中
2.Hadoop
2.1 Hadoop概述
Hadoop是大数据领域中非常重要的基础技术,他是一个海量数据存储、处理系统,也是一个生态圈(HDFS,MapReduce,Hive,Hbase。。。。Spark底层也有Hadoop)
2.1.1 历史
Google:搜索引擎。收集互联网上的所有数据,存储数据,处理数据,提供给用户。
Google搜索引擎相关技术非常成熟,但是并没有开源,不过,在2004年先后发表了两篇论文:《Google File System》(GFS)、《MapReduce》阐述了Google如何将海量数据进行存储和处理。2006年发表了《BigTable》启发了无数的NoSql数据库。
Doug Cutting(狗哥):Lucene、Nutch(搜索引擎)
Hadoop(Java开发)
HDFS(Hadoop distributed file system):大数据存储
MapReduce:大数据处理
2.1.2 作用
Hadoop最初用作Nutch底层的海量数据存储和处理,后来人们发现他也非常适合大数据场景下的数据存储和处理,主要用作海量离线数据的存储和处理。
2.2 Hadoop的安装
2.2.1 Hadoop版本介绍
Hadoop1.0(Apache)最初版:HDFS、MapReduce
Hadoop2.0:HDFS、MapReduce、Yarn(2.7.1)
Hadoop3.0:2017年12月发布,目前还不是稳定版本。
2.2.2 Hadoop 的安装有三种方式
单机模式:解压就能运行,但是只支持MapReduce的测试,不支持HDFS,不用。
伪分布式模式:单机通过多进程模拟集群方式安装,支持Hadoop所有功能。学习测试用
完全分布式模式:集群方式安装,支持高可用,进阶学习。
2.2.3 Hadoop伪分布式安装
需要环境:
JDK,JAVA_HOME,配置hosts,hostname,关闭防火墙,配置免密登录。
安装在hadoop01节点上。
1.创建目录
mkdir hadoop
2.上传安装包并解压
tar -xvf 安装包
3.修改配置文件
1.修改 hadoop-env.sh
通过vim打开
vim /usr/local/src/hadoop/hadoop-2.7.1/etc/hadoop/hadoop-env.sh主要是修改java_home的路径
在hadoop-env.sh的第25行,把export JAVA_HOME=${JAVA_HOME}修改成具体的路径
在33行,修改HADOOP_CONF_DIR为具体的路径
重新加载使修改生效
source hadoop-env.sh
2.修改 core-site.xml
通过vim打开
vim [hadoop]/etc/hadoop/core-site.xml
增加namenode配置、文件存储位置配置:粘贴<configuration>
标签内的内容
<configuration>
<property<