大数据学习笔记
作者:互联网
大数据技术之大数据概论
第 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)
- Volume (大量)
人类生产的所有印刷材料的数据量是200PB,而历史上全人类总共说过的话的数据量大约是5EB。当前,典型个人计算机硬盘的容量为TB量级,而一些大企业的数据量已经接近EB量级。
- Velocity**(高速)**
天猫双十一:2017年3分01秒,天猫交易额超过100亿
2020年96秒,天猫交易额超过100亿
- Variety**(多样)**
这种类型的多样性也让数据被分为结构化数据和非结构化数据。相对于以往便于存储的
以数据库/文本为主的结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图
片、地理位置信息。
- Value**(低价值密度)**
价值密度的高低与数据总量的大小成反比。我们只想提取在大量数据中的有价值的信息。(”提纯“)
第三章 大数据的应用场景
- 抖音推荐你喜欢的视频
- 电商站内广告推荐:给用户推荐可能喜欢的商品
- 零售:分析用户消费习惯,为用户购买商品提供方便,从而提升商品销量。经典案例,纸尿布+啤酒。
- 物流仓储:京东物流,通过大数据分析各地该存储啥物品。
- 保险,金融,房产等
- 人工智能 + 5G + 物联网 + 虚拟与现实
第四章大数据发展前景
- 国家支持
- 下一个风口
- 人才缺,需求大,工资高
第五章 大数据部门间业务流程分析
第 6 章 大数据部门内组织结构
大数据技术之 Hadoop(入门)
学习路线图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tZal6Y4X-1619268270493)(大数据学习笔记.assets/image-20210422190025961.png)]
一、概念
1.1、Hadoop是什么
-
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
-
主要解决,海量数据的存储和海量数据的分析计算问题。
-
广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。
1.2、Hadoop的发展历史
- Hadoop创始人Doug Cutting
-
名字来源于Doug Cutting儿子的玩具大象
1.3、Hadoop的三大发行版本**(了解)**
Hadoop 三大发行版本:Apache、Cloudera、Hortonworks。
Apache 版本最原始(最基础)的版本,对于入门学习最好。2006
Cloudera 内部集成了很多大数据框架,对应产品 CDH。2008
Hortonworks 文档较好,对应产品 HDP。2011
Hortonworks 现在已经被 Cloudera 公司收购,推出新的品牌 CDP。
1.4、Hadoop 优势(4高)
- 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
- 高容错性:能够自动将失败的任务重新分配
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
-
Map 阶段并行处理输入数据
-
Reduce 阶段对 Map 结果进行汇总
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.模拟虚拟机准备
安装centos7.5镜像
配置Ip和主机名配置
1.配置VM的ip
2.修改NAT设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h8Y8Yk6H-1619268270496)(大数据学习笔记.assets/image-20210423160058211.png)]
3.Windows的iP设置
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.主机名称映射
- 将192.168.10.105的ip映射为为hadoop100,凡是出现192.168.10.105,。用hadoop100代替。
- 当因升级改变ip时,可以不用大量修改。
[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
- 查看当前ip(ifconfig)
- 能否联通外网(ping www.baidu.com)
- 查看主机名称(hostname)
Xshell远程访问工具
注意问题:
修改 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 虚拟机配置要求如下
- 使用 yum 安装需要虚拟机可以正常上网
- 安装 epel-release
[root@hadoop100 ~]# yum install -y epel-release
- 关闭防火墙,关闭防火墙开机自启
[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.
-
创建 ljj 用户,并修改 ljj用户的密码(123456)
-
配置 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
-
在/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
-
卸载虚拟机自带的 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
- )重启虚拟机 reboot
2 . 克隆虚拟机
1.利用模板机 hadoop100
克隆三台虚拟机:hadoop102 hadoop103 hadoop104
- 注意:克隆时,要先关闭 hadoop100
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.修改克隆机主机名,
- 以下以 hadoop102 举例说明
(1)修改主机名称
[root@hadoop100 ~]# vim /etc/hostname
hadoop102
(2)配置 Linux 克隆机主机名称映射 hosts 文件,打开/etc/hosts
[root@hadoop100 ~]# vim /etc/hosts
4.JDK的安装
-
在Hadoop102上安装jdk,然后复制到其它虚拟机
-
卸载现有 JDK
-
用 XShell 传输工具将 JDK 导入到 opt 目录下面的 software 文件夹下面
出现问题:远程登录使用lijunjie用户传输显示失败。
解决方法:改为远程登录使用root,即可成功。
- 查看是否传输成功
- 解压 JDK 到/opt/module 目录下
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
- 配置 JDK 环境变量
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
- )测试 JDK 是否安装成功
[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
- 1)用 XShell 文件传输工具将 hadoop-3.1.3.tar.gz 导入到 opt 目录下面的 software 文件夹
- 进入到 Hadoop 安装包路径下
[ljj@hadoop102 software]$ cd /opt/software/
- 解压安装文件到/opt/module 下面
[ljj@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/ (时间有点长)
- 查看是否解压成功
查看是否解压成功
[ljj@hadoop102 software]$ ls /opt/module/
hadoop-3.1.3
- 将 Hadoop 添加到环境变量
(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
- 重启(如果 Hadoop 命令不能用再重启虚拟机)
[atguigu@hadoop102 hadoop-3.1.3]$ sudo reboot
7.Hadoop 目录结构
- 查看 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 三种运行模式基本介绍
- Hadoop 官方网站:http://hadoop.apache.org/
- Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。 ➢ 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
- 伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模 拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
- 完全分布式模式:多台服务器组成分布式环境。生产环境使用。
3.2 本地运行模式(官方 WordCount案例)
-
创建在 hadoop-3.1.3 文件下面创建一个 wcinput 文件夹
[ljj@Hadoop102 hadoop-3.1.3]$ mkdir wcinput
-
在 wcinput 文件下创建一个 word.txt 文件
[ljj@hadoop102 hadoop-3.1.3]$ cd wcinput
- 编辑 word.txt 文件
[ljj@hadoop102 wcinput]$ vim word.txt ➢ 在文件中输入如下内容
ss ss
cls cls
shaolin
shaomin
wudang
wudang
wudang
➢ 保存退出::wq
- 回到 Hadoop 目录/opt/module/hadoop-3.1.3
- 执行程序
[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/
- 查看结果
[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