其他分享
首页 > 其他分享> > 大数据学习笔记

大数据学习笔记

作者:互联网

大数据技术之大数据概论

1 章 大数据概念

大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产

按顺序给出数据存储单位:bit、Byte、KB、MB、GB、**TB、PB、EB、**ZB、YB、BB、NB、DB。


1Byte = 8bit 

1K = 1024Byte 

1MB = 1024K 

1G = 1024M 

1T = 1024G 

1P = 1024T

第 2 章 大数据特点(4V)

人类生产的所有印刷材料的数据量是200PB,而历史上全人类总共说过的话的数据量大约是5EB。当前,典型个人计算机硬盘的容量为TB量级,而一些大企业的数据量已经接近EB量级。

天猫双十一:2017年3分01秒,天猫交易额超过100亿

2020年96秒,天猫交易额超过100亿

这种类型的多样性也让数据被分为结构化数据和非结构化数据。相对于以往便于存储的

以数据库/文本为主的结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图

片、地理位置信息。

价值密度的高低与数据总量的大小成反比。我们只想提取在大量数据中的有价值的信息。(”提纯“

第三章 大数据的应用场景

  1. 抖音推荐你喜欢的视频
  2. 电商站内广告推荐:给用户推荐可能喜欢的商品
  3. 零售:分析用户消费习惯,为用户购买商品提供方便,从而提升商品销量。经典案例,纸尿布+啤酒。
  4. 物流仓储:京东物流,通过大数据分析各地该存储啥物品。
  5. 保险,金融,房产等
  6. 人工智能 + 5G + 物联网 + 虚拟与现实

第四章大数据发展前景

  1. 国家支持
  2. 下一个风口
  3. 人才缺,需求大,工资高

第五章 大数据部门间业务流程分析

第 6 章 大数据部门内组织结构

大数据技术之 Hadoop(入门)

学习路线图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tZal6Y4X-1619268270493)(大数据学习笔记.assets/image-20210422190025961.png)]

一、概念

1.1、Hadoop是什么

1.2、Hadoop的发展历史

1.3、Hadoop的三大发行版本**(了解)**

Hadoop 三大发行版本:Apache、Cloudera、Hortonworks。

Apache 版本最原始(最基础)的版本,对于入门学习最好。2006

Cloudera 内部集成了很多大数据框架,对应产品 CDH。2008

Hortonworks 文档较好,对应产品 HDP。2011

Hortonworks 现在已经被 Cloudera 公司收购,推出新的品牌 CDP。

1.4、Hadoop 优势(4高)

1.5 Hadoop*组成(面试重点)

1.5.1 HDFS 架构概述
Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。
1.5.2 YARN架构概述
Yet Another Resource Negotiator 简称 YARN ,另一种资源协调者,是 Hadoop 的资源管理器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bDjHBsQ9-1619268270494)(大数据学习笔记.assets/image-20210423095140236.png)]

1.5.3 MapReduce 架构概述

MapReduce 将计算过程分为两个阶段:Map 和 Reduce

1.5.4 HDFS、YARN、MapReduce 三者关系

1.6 大数据技术生态体系

图中涉及的技术名词解释如下:

1)Sqoop:Sqoop 是一款开源的工具,主要用于在 Hadoop、Hive 与传统的数据库(MySQL)

间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进

到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。

2)Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,

Flume 支持在日志系统中定制各类数据发送方,用于收集数据;

3)Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统;

4)Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数

据进行计算。

5)Flink:Flink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。

6)Oozie:Oozie 是一个管理 Hadoop 作业(job)的工作流程调度管理系统。

7)Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,

它是一个适合于非结构化数据存储的数据库。

8)Hive:Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张

数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运

行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开

发专门的 MapReduce 应用,十分适合数据仓库的统计分析。

9)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、

名字服务、分布式同步、组服务等。

1.7 推荐系统框架图

二、环境准备

用户信息:

账号:lijunjie 密码123456,登录使用

1.模拟虚拟机准备

image-20210423162023895

安装centos7.5镜像

配置Ip和主机名配置

1.配置VM的ip
image-20210423155947804
2.修改NAT设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h8Y8Yk6H-1619268270496)(大数据学习笔记.assets/image-20210423160058211.png)]

3.Windows的iP设置
image-20210423160316099
4.修改Hadoop的IP地址,主机名称
[root@Hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"                     //把ip地址改为静态ip地址,下次登录时ip不变
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="60915f68-5ac1-4e5c-bfaf-1ad91c02abcd"
DEVICE="ens33"
ONBOOT="yes"
//下面为新加内容
IPADDR=192.168.10.100               //设置ip地址
GATEWAY=192.168.10.2                //设置网关
DNS1=192.168.10.2                   //设置域名解析器

5.修改主机名称
[root@Hadoop100 ~]# vim /etc/hostname

6.主机名称映射
image-20210423161428233
[root@Hadoop100 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.10.100 hadoop100         //一下都是添加的
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108


7.然后重启reboot
  1. 查看当前ip(ifconfig)
  2. 能否联通外网(ping www.baidu.com)
  3. 查看主机名称(hostname)

Xshell远程访问工具

image-20210423162113062
注意问题:
修改 windows 的主机映射文件(hosts 文件)
(1)如果操作系统是 window7,可以直接修改
(a)进入 C:\Windows\System32\drivers\etc 路径
(b)打开 hosts 文件并添加如下内容,然后保存
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
(2)如果操作系统是 window10,先拷贝出来,修改保存以后,再覆盖即可
(a)进入 C:\Windows\System32\drivers\etc 路径
(b)拷贝 hosts 文件到桌面
(c)打开桌面 hosts 文件并添加如下内容
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
(d)将桌面 hosts 文件覆盖 C:\Windows\System32\drivers\etc 路径 hosts 文件

hadoop100 虚拟机配置要求如下

  1. 使用 yum 安装需要虚拟机可以正常上网
  2. 安装 epel-release
[root@hadoop100 ~]# yum install -y epel-release
  1. 关闭防火墙,关闭防火墙开机自启
[root@Hadoop100 ~]# systemctl stop firewalld
[root@Hadoop100 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  1. 创建 ljj 用户,并修改 ljj用户的密码(123456)

  2. 配置 ljj 用户具有 root 权限,方便后期加 sudo 执行 root 权限的命令

    [root@hadoop100 ~]# vim /etc/sudoers
    修改/etc/sudoers 文件,在%wheel 这行下面添加一行,如下所示:
    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    ## Allows people in group wheel to run all commands
    %wheel ALL=(ALL) ALL 尚硅谷大数据技术之 Hadoop(入门) 
    ljj ALL=(ALL) NOPASSWD:ALL
    
  3. 在/opt 目录下创建文件夹,并修改所属主和所属组

    (1) 在/opt 目录下创建 module、software 文件夹
    [ljj@Hadoop100 opt]$ sudo mkdir module
    [ljj@Hadoop100 opt]$ sudo mkdir software
    (2)修改 module、software 文件夹的所有者和所属组均为 atguigu 用户
    [root@hadoop100 ~]# chown ljj:ljj /opt/module 
    [root@hadoop100 ~]# chown ljj:ljj /opt/software
    (3)
    (3)查看 module、software 文件夹的所有者和所属组
    [root@hadoop100 ~]# cd /opt/
    [root@hadoop100 opt]# ll
    总用量 12
    [root@Hadoop100 opt]# ll
    总用量 0
    drwxr-xr-x. 2 ljj ljj 6 4月  24 09:27 module
    drwxr-xr-x. 2 ljj ljj 6 4月  24 09:27 software
    
    
    
  4. 卸载虚拟机自带的 JDK

[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

[root@Hadoop100 opt]# rpm -qa | grep -i java          //查询已经安装的jdk
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
tzdata-java-2018c-1.el7.noarch
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64

  1. )重启虚拟机 reboot

2 . 克隆虚拟机

image-20210424181403249

1.利用模板机 hadoop100

克隆三台虚拟机:hadoop102 hadoop103 hadoop104

2.修改克隆机 IP

以下以 hadoop102 举例说

1)修改克隆虚拟机的静态 IP
[root@hadoop100 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
改成
DEVICE=ens33
TYPE=Ethernet 
ONBOOT=yes
BOOTPROTO=static
NAME="ens33"
IPADDR=192.168.10.102            //改下IP地址
PREFIX=24
GATEWAY=192.168.10.2
DNS1=192.168.10.2

3.修改克隆机主机名,

  1. 以下以 hadoop102 举例说明
(1)修改主机名称
[root@hadoop100 ~]# vim /etc/hostname
hadoop102 
(2)配置 Linux 克隆机主机名称映射 hosts 文件,打开/etc/hosts
[root@hadoop100 ~]# vim /etc/hosts

4.JDK的安装

出现问题:远程登录使用lijunjie用户传输显示失败。

解决方法:改为远程登录使用root,即可成功。

image-20210424183633760
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
1)新建/etc/profile.d/my_env.sh 文件
[atguigu@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
(2)保存后退出
:wq
(3)source 一下/etc/profile 文件,让新的环境变量 PATH 生效
[atguigu@hadoop102 ~]$ source /etc/profile
[ljj@Hadoop102 opt]$ java -version
java version "1.8.0_212"          //出现这个即为成功
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
[ljj@Hadoop102 opt]$ 

6.在 hadoop102 安装 Hadoop

 [ljj@hadoop102 software]$ cd /opt/software/
 [ljj@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C  /opt/module/   (时间有点长)
查看是否解压成功
 [ljj@hadoop102 software]$ ls /opt/module/
 hadoop-3.1.3
(1)获取 Hadoop 安装路径
[atguigu@hadoop102 hadoop-3.1.3]$ pwd
/opt/module/hadoop-3.1.3
(2)打开/etc/profile.d/my_env.sh 文件
[atguigu@hadoop102 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh 

➢ 在 my_env.sh 文件末尾添加如下内容:(shift+g)
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
➢ 保存并退出: :wq
(3)让修改后的文件生效
[atguigu@hadoop102 hadoop-3.1.3]$ source /etc/profile
[ljj@Hadoop102 opt]$ hadoop version
Hadoop 3.1.3

[atguigu@hadoop102 hadoop-3.1.3]$ sudo reboot

7.Hadoop 目录结构

[ljj@Hadoop102 module]$ cd hadoop-3.1.3/
[ljj@Hadoop102 hadoop-3.1.3]$ ll       
总用量 176       
drwxr-xr-x. 2 ljj ljj    183 9月  12 2019 bin
drwxr-xr-x. 3 ljj ljj     20 9月  12 2019 etc
drwxr-xr-x. 2 ljj ljj    106 9月  12 2019 include
drwxr-xr-x. 3 ljj ljj     20 9月  12 2019 lib
drwxr-xr-x. 4 ljj ljj    288 9月  12 2019 libexec
-rw-rw-r--. 1 ljj ljj 147145 9月   4 2019 LICENSE.txt
-rw-rw-r--. 1 ljj ljj  21867 9月   4 2019 NOTICE.txt
-rw-rw-r--. 1 ljj ljj   1366 9月   4 2019 README.txt
drwxr-xr-x. 3 ljj ljj   4096 9月  12 2019 sbin
drwxr-xr-x. 4 ljj ljj     31 9月  12 2019 share
[ljj@Hadoop102 hadoop-3.1.3]$ cd bin/

(1)bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
[ljj@Hadoop102 hadoop-3.1.3]$ cd bin/
[ljj@Hadoop102 bin]$ ll
-rwxr-xr-x. 1 ljj ljj 441936 9月  12 2019 container-executor
-rwxr-xr-x. 1 ljj ljj   8707 9月  12 2019 hadoop
-rwxr-xr-x. 1 ljj ljj  11265 9月  12 2019 hadoop.cmd
-rwxr-xr-x. 1 ljj ljj  11026 9月  12 2019 hdfs
-rwxr-xr-x. 1 ljj ljj   8081 9月  12 2019 hdfs.cmd
-rwxr-xr-x. 1 ljj ljj   6237 9月  12 2019 mapred
-rwxr-xr-x. 1 ljj ljj   6311 9月  12 2019 mapred.cmd
-rwxr-xr-x. 1 ljj ljj 483728 9月  12 2019 test-container-executor
-rwxr-xr-x. 1 ljj ljj  11888 9月  12 2019 yarn
-rwxr-xr-x. 1 ljj ljj  12840 9月  12 2019 yarn.cmd

(2)etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
(3)lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
(5)share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例

三 、Hadoop 运行模式

3.1 三种运行模式基本介绍

image-20210424202055906

3.2 本地运行模式(官方 WordCount案例)

  1. 创建在 hadoop-3.1.3 文件下面创建一个 wcinput 文件夹

    [ljj@Hadoop102 hadoop-3.1.3]$ mkdir wcinput
    
  2. 在 wcinput 文件下创建一个 word.txt 文件

 [ljj@hadoop102 hadoop-3.1.3]$ cd wcinput
  1. 编辑 word.txt 文件
[ljj@hadoop102 wcinput]$ vim word.txt ➢ 在文件中输入如下内容 
ss ss
cls cls
shaolin
shaomin
wudang
wudang
wudang

➢ 保存退出::wq
  1. 回到 Hadoop 目录/opt/module/hadoop-3.1.3
  2. 执行程序
 [ljj@hadoop102 hadoop-3.1.3]$ hadoop jar  share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar  wordcount wcinput wcoutput
 出现一大长串字符
 //可以通过连续两次按tab获取 下一步路径的信息
 [ljj@Hadoop102 hadoop-3.1.3]$ hadoop jar share/
doc/    hadoop/ 

  1. 查看结果
[ljj@Hadoop102 hadoop-3.1.3]$ cd wcoutput/
[ljj@Hadoop102 wcoutput]$ ll
总用量 4
-rw-r--r--. 1 ljj ljj 44 4月  24 20:27 part-r-00000
-rw-r--r--. 1 ljj ljj  0 4月  24 20:27 _SUCCESS
[ljj@Hadoop102 wcoutput]$ cat part-r-00000 
`	1
cls	2
shaolin	1
shaomin	1
ss	2
wudang	3

在文件中输入如下内容
ss ss
cls cls
shaolin
shaomin
wudang
wudang
wudang

➢ 保存退出::wq


4. 回到 Hadoop 目录/opt/module/hadoop-3.1.3
5. 执行程序

[ljj@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
出现一大长串字符
//可以通过连续两次按tab获取 下一步路径的信息
[ljj@Hadoop102 hadoop-3.1.3]$ hadoop jar share/
doc/ hadoop/


6. 查看结果

[ljj@Hadoop102 hadoop-3.1.3]$ cd wcoutput/
[ljj@Hadoop102 wcoutput]$ ll
总用量 4
-rw-r–r--. 1 ljj ljj 44 4月 24 20:27 part-r-00000
-rw-r–r--. 1 ljj ljj 0 4月 24 20:27 _SUCCESS
[ljj@Hadoop102 wcoutput]$ cat part-r-00000
` 1
cls 2
shaolin 1
shaomin 1
ss 2
wudang 3


标签:opt,ljj,Hadoop,笔记,hadoop,学习,192.168,3.1,数据
来源: https://blog.csdn.net/qq_51285809/article/details/116104534