hadoop系列(一)概念、组件介绍、安装环境、配置
一、大数据概念
概念
- 大数据:解决海量数据的采集、存储、分析计算的能力
大数据特点
- Volume(大量)
- Velocity(高速)
- Variety(多样)
- value(价值密度的高低于数据总量成反比)
大数据应用场景
抖音、京东、零售、仓储(京东物流)、保险、金融、房产等等等
二、hadoop-概念
1.什么是hadoop
什么是hadoop
- Apache基金会分布式基础架构
- 主要解决海量数据的存储、分析计算圈
- 广义上Hadoop指的是Hadoop生态圈
2.hadoop的发展
hadoop的发展
3.hadoop发行版本
hadoop发行版本
- Apache版本,最原始基础版本,入门学习友好
- Cloudera版本,内部集成了很多大数据框架,对应产品CDH
- Hortonwork版本,文档较好、对应HDP
4.hadoop优势
hadoop优势
- 高可用:底层维护多个数据副本,既视节点存储故障,也不会导致数据丢失
- 高扩展性:在集群分配任务数据,可方便扩展结点(动态扩增)
- 高效性:并行工作,加快任务处理速度
- 高容错性:自动将失败的任务重新分配
5.hadoop组成
hadoop组成
重要组件:MapReduce、HDFS、common、Yarn
HDFS:分布式文件存储系统
- HDFS:分布式文件存储系统
- NameNode:记录每一个文件块的索引位置
- DataNode:具体存储数据
- 2NN:NameNode的备份节点,防止NameNode停机造成文件索引位置丢失(每隔一段时间就备份NameNode)
YARN:Hadoop的资源管理器
- 组件
- Resource Manager(管理整个集群资源)
- Node Manager(单节点资源管理)
- client、(多客户端任务提交)
- Application Manager(单节点任务管理)
- Container (容器)
- 任务概述
- client客户端请求任务,
- ResourceManager(集群资源管理器)分配任务,
- NodeManager(节点资源管理器)处理任务
- NodeManager(节点)使用虚拟化,可以创建Container (容器),类似docker,client提交的任务在Container容器中执行
- 假设当前节点NodeManager-1,无法处理,需要跟多节点分配资源一起处理,可以向ResourceManager申请
MapReduce:任务计算,将计算分为Map和Reduce两个阶段
- Map并行处理输入数据
- Reduce阶段对Map结果进行汇总
6.Hadop体系
Hadoop体系
三、hadoop-环境准备
模板虚拟机准备
1.虚拟机环境准备
- 使用VMware
- 配置虚拟机参数
- 使用centos7镜像
- 安装centos镜像
一、选择语言、设置时间
二、选择了最小安装
三、安装位置选择了自定义分区,选“我要配置分区”,点击完成,进入第二张图
点击加号:设置/boot是开机初始化分配的资源,设置/swap是设置虚拟内存,符号 / 表示整个空间,分配剩余资源
后面还有设置密码等 安装内容步骤,大同小异,看个人资源和喜好进行安装
配置VMware
配置子网网段等信息
配置windows 网络 VMnet8
centos中,vim 或者vi vi /etc/sysconfig/network-scripts/ifcfg-ens33
检查主机名字,centos初始化安装的时候可以设置,如果没有是设置,可以使用vim修改
vim /etc/hosts 添加节点ip 和对应的主机变量名称
最后重启,ping 百度-查看网络是否成功
2.软件环境准备
yum install -y epel-release //安装红帽系列软件包
service firewalld stop //关闭防火墙
vim /etc/sudoers
NOPASSWD:ALL 切换用户不用输入密码
创建文件夹,给当前用户授权
最新安装没有安装jdk
工具
yum install -y net-tools //ifconfig 命令工具
yum install -y vim
userdd zhangsan //添加用户
su zhangsan // 切换到用户
克隆
使用VMware 克隆,;选择完整克隆,
进入克隆的资源服务器,修改一下文件,只需要修改
/etc/sysconfig/network-scripts/ifcfg-ens33 --修改ip ( IPADDR )
/etc/hostname 修改name节点,对应 /etc/hosts 中的节点名字
3.安装JDK
安装JDK
链接: https://pan.baidu.com/s/1L4FQyxRJCWMAGcVX9y4MTg?pwd=vuwg 提取码: vuwg
- 下载jdk的tarz Linux安装包
- 安装JDK
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
配置环境变量
vim /etc/profile.d/myJava_home.sh //创建一个myJava_home.sh的shell执行文件
\#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
- 执行:cat /etc/profile
- 观摩代码,其中,Linux会直接循环读取/etc/profile.d/目录下的脚本,一般公司都是这样的配置
- 我们将自己写的.sh脚本文件,放到/etc/profile.d/ 下。然后重启或者 source /etc/profile.d/
#关键代码
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
#整段代码
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
if [ -x /usr/bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`/usr/bin/id -u`
UID=`/usr/bin/id -ru`
fi
USER="`/usr/bin/id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
fi
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
4.安装Hadoop
解压,配置编辑环境变量
链接: https://pan.baidu.com/s/1ICrgitJ7WnZNYXTIgDgeRg?pwd=h6j2 提取码: h6j2
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
vim /etc/profile.d/myJava_home.sh //创建一个myJava_home.sh的shell执行文件,写入以下配置,写完直接保存
#HAdOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=#PATH:$HADOOP_HOME/sbin