目录

  • 1 前置知识--Linux操作系统基础
    • 1.1 Linux系统认知
      • 1.1.1 Linux概述
      • 1.1.2 虚拟机简介
    • 1.2 Linux系统管理
      • 1.2.1 Linux系统登录
      • 1.2.2 Linux命令基础
      • 1.2.3 Linux系统管理命令
    • 1.3 Linux目录管理
      • 1.3.1 Linux目录与Windows目录区别
      • 1.3.2 Linux目录结构
      • 1.3.3 Linux系统路径
      • 1.3.4 显示路径(pwd)
      • 1.3.5 切换目录(cd)
      • 1.3.6 查看目录(ls)
      • 1.3.7 创建目录(mkdir)
      • 1.3.8 删除目录(rmdir)
    • 1.4 Linux文件管理
      • 1.4.1 创建文件
      • 1.4.2 查看文件内容
      • 1.4.3 复制文件(cp)
      • 1.4.4 移动文件(mv)
      • 1.4.5 删除文件(rm)
    • 1.5 目录和文件权限一般管理
      • 1.5.1 文件的属性信息
      • 1.5.2 文件的权限
      • 1.5.3 设置文件权限(chmod)
  • 2 初识Hadoop
    • 2.1 大数据概述
    • 2.2 大数据的应用场景
    • 2.3 Hadoop的概述
  • 3 Hadoop集群的构建
    • 3.1 安装centos7
    • 3.2 安装xshell
    • 3.3 设置虚拟机
      • 3.3.1 打通网络
    • 3.4 安装JDK
    • 3.5 安装hadoop
      • 3.5.1 配置hadoop-env.sh
      • 3.5.2 配置核心组件core-site.xml
      • 3.5.3 配置文件系统hdfs-site.xml
      • 3.5.4 配置yarn-env.sh(hadoop3不需要配置)
      • 3.5.5 配置yarn-site.xml
      • 3.5.6 配置计算框架mapred-site.xml
      • 3.5.7 配置worker
      • 3.5.8 配置hadoop启动环境变量
    • 3.6 克隆虚拟机
    • 3.7 配置hosts列表
    • 3.8 免密登录配置
    • 3.9 启动hadoop集群
      • 3.9.1 格式化master节点
    • 3.10 wordcount
  • 4 Hadoop分布式文件系统
    • 4.1 HDFS的简介
      • 4.1.1 HDFS的演变
      • 4.1.2 HDFS的基本概念
      • 4.1.3 HDFS特点
    • 4.2 HDFS的架构和原理
    • 4.3 HDFS的Shell操作
    • 4.4 HDFS的Java API操作
      • 4.4.1 实验
    • 4.5 启动已有的hadoop集群
  • 5 MapReduce分布式计算框架
    • 5.1 MapReduce概述
    • 5.2 wordcount实验
      • 5.2.1 pom.xml文件
      • 5.2.2 WordCount类
      • 5.2.3 WordMap类
      • 5.2.4 WordReduce类
      • 5.2.5 实验运行步骤
      • 5.2.6 实验文件
    • 5.3 倒排索引实验
      • 5.3.1 InvertedIndexRunner
      • 5.3.2 InvertedIndexMapper
      • 5.3.3 InvertedIndexReducer
      • 5.3.4 InvertedIndexCombiner
  • 6 Zookeeper分布式协调服务
    • 6.1 初识Zookeeper
    • 6.2 数据模型
    • 6.3 Zookeeper的Watcher机制
    • 6.4 Zookeeper的选举机制
    • 6.5 Zookeeper集群搭建
      • 6.5.1 下载安装包
      • 6.5.2 修改zookeeper配置文件
      • 6.5.3 创建myid
      • 6.5.4 配置环境变量
      • 6.5.5 分发zookeeper相关文件
      • 6.5.6 修改主机myid
      • 6.5.7 启动zookeeper
    • 6.6 shell操作
  • 7 Hadoop2.0
    • 7.1 hadoop2.0新特性
    • 7.2 高可用集群搭建
      • 7.2.1 准备安装包
      • 7.2.2 安装虚拟机
      • 7.2.3 安装JDK
      • 7.2.4 安装zookeeper
      • 7.2.5 安装hadoop
        • 7.2.5.1 core-site.xml
        • 7.2.5.2 hadoop-env.sh
        • 7.2.5.3 hdfs-site.xml
        • 7.2.5.4 workers
        • 7.2.5.5 mapred-site.xml
        • 7.2.5.6 yarn-site.xml
      • 7.2.6 配置hosts列表
      • 7.2.7 克隆虚拟机
      • 7.2.8 设置免密登录
      • 7.2.9 设置hostname
      • 7.2.10 修改zookeeper的myid
      • 7.2.11 启动zookeeper集群
      • 7.2.12 journalnode共享存储
      • 7.2.13 设置时钟同步(暂时不设置)
      • 7.2.14 启动集群
      • 7.2.15 验证ha故障自动转移
  • 8 Hive数据仓库
    • 8.1 hive简介
    • 8.2 hadoop伪分布式安装
    • 8.3 hive实验
      • 8.3.1 嵌入模式
      • 8.3.2 本地模式
        • 8.3.2.1 mysql离线安装
        • 8.3.2.2 Mariadb安装
        • 8.3.2.3 hive安装
      • 8.3.3 远程模式
      • 8.3.4 hive相关命令
      • 8.3.5 hive动态分区
      • 8.3.6 hive桶表
  • 9 Flume日志采集
    • 9.1 flume单agent安装
    • 9.2 采集到hdfs
    • 9.3 多agent安装
    • 9.4 日志采集案例
  • 10 sqoop
    • 10.1 sqoop安装
    • 10.2 userdb.sql
    • 10.3 mysql表导入HDFS
    • 10.4 HDFS导出mysql
    • 10.5 mysql导入hive
    • 10.6 hive导出到mysql
  • 11 网站日志流量分析
    • 11.1 系统架构设计
    • 11.2 使用flume搭建日志采集系统
    • 11.3 数据预处理
      • 11.3.1 新建weblog项目
      • 11.3.2 pom.xml
      • 11.3.3 WebLogBean
      • 11.3.4 WeblogPreProcess
      • 11.3.5 WebLogParser
      • 11.3.6 使用maven打包项目
    • 11.4 数据仓库开发
      • 11.4.1 搭建hive数据仓库
      • 11.4.2 实现数据仓库
      • 11.4.3 数据分析
      • 11.4.4 数据导出
      • 11.4.5 数据展示
  • 12 复习
    • 12.1 课后习题
  • 13 软件下载
    • 13.1 常用软件
大数据概述

什么是大数据

高速发展的信息时代,新一轮科技革命和变革正在加速推进,技术创新日益成为重塑经济发展模式和促进经济增长的重要驱动力量,而“大数据”无疑是核心推动力。

那么,什么是“大数据”呢?如果从字面意思来看,大数据指的是巨量数据。那么可能有人会问,多大量级的数据才叫大数据?不同的机构或学者有不同的理解,难以有一个非常定量的定义,只能说,大数据的计量单位已经越过TB级别发展到PB、EB、ZB、YB甚至BB来衡量。

最早提出“大数据”这一概念的是全球知名咨询公司麦肯锡,他是这样定义大数据的:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型以及价值密度四大特征。

研究机构Gartner是这样定义大数据的:“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流转优化能力来适应海量、高增长率和多样化的信息资产。

大数据主要具有以下四个方面的典型特征,即大量(Volume)、多样(Varity)、高速(Velocity)和价值(Value),即所谓的“4V”。

研究大数据的意义

现在的社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流也越来越密切,生活也越来越便捷,然而大数据就是这个高科技时代的产物。阿里巴巴的创办人马云曾经说过,未来的时代将不是IT时代,而是DT的时代,DT就是Data Technology数据科技,这显示出大数据对于阿里巴巴集团来说是举足轻重的。

有人把数据比喻为蕴藏能量的煤矿。煤炭按照性质有焦煤、无烟煤、肥煤、贫煤等分类,而露天煤矿、深山煤矿的挖掘成本又不一样。与此类似,大数据并不在于“大”,而在于“有用”。数据的价值含量、挖掘成本比数量更为重要。对于很多行业而言,如何利用这些大规模数据,发掘其潜在价值,才是赢得核心竞争力的关键。

研究大数据,最重要的意义是预测。因为数据从根本上讲,是对过去和现在的归纳和总结,其本身不具备趋势和方向性的特征,但是我们可以应用大数据去了解事物发展的客观规律、了解人类行为,并且能够帮助我们改变过去的思维方式,建立新的数据思维模型,从而对未来进行预测和推测。知名互联网公司谷歌对其用户每天频繁搜索的词汇进行数据挖掘,从而进行相关的广告推广和商业研究。