1. 从Hadoop框架讨论大数据生态
名字起源
该项目的创建者,Doug Cutting解释Hadoop的得名 :“这个名字是我孩子给一个棕黄色的大象玩具命名的
项目起源
Hadoop由 Apache Software Foundation 公司于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发
Google是Hadoop的思想之源(Google在大数据方面的三篇论文)
GFS ====> HDFS
Map-Reduce ====> MR
BigTable ====> HBase
Hadoop的优势
高可靠性
因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
高扩展性
在集群间分配任务数据,可方便的扩展数以千计的节点。
高效性
在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
高容错性
自动保存多份副本数据,并且能够自动将失败的任务重新分配。
Hadoop组成
HDFS : 一个高可靠,高吞吐的分布式文件系统
MapReduce: 一个分布式的离线并行计算框架。
YARN: 作业调度与集群资源管理的框架
Common: 支持其他模块的工具模块(Configuration RPC 序列化机制 日志操作).
HDFS架构概述
NameNode:存储元数据
DataNode:存储数据的节点,会对数据块进行校验
SecondaryNameNode: 监控NameNode 的元数据,每隔一定的时间进行元数据的合并
YARN架构概述
ResourceManager(rm)
处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度
NodeManager(nm)
单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令
ApplicationMaster
数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错
Container
对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息
MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce
Map阶段并行处理输入数据
Reduce阶段对Map结果进行汇总
2. Hadoop运行环境搭建
关闭防火墙
关闭防火墙: systemctl stop firewalld.service
禁用防火墙: systemctl disable firewalld.service
查看防火墙: systemctl status firewalld.service
关闭Selinux: vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
修改IP
Tab键补全
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.X.51
GATEWAY=192.168.X.2
DNS1=8.8.8.8
DNS2=8.8.4.4
NETMASK=255.255.255.0
vi /etc/resolv.conf
nameserver8.8.8.8
nameserver8.8.4.4
重启网卡 : service network restart
修改主机名
hostnamectl set-hostname 主机名
IP和主机映射
vi /etc/hosts
192.168.1.111 bigdata111
192.168.1.112 bigdata112
192.168.1.113 bigdata113
windows的映射:C:\Windows\System32\drivers\etc 路径下找到hosts并添加
192.168.1.111 bigdata111
192.168.1.112 bigdata112
192.168.1.113 bigdata113
连接X Shell
输入IP 用户名 和密码即可连接
安装JDK
卸载现有JDK
查询是否安装Java相关软件
rpm-qa|grepjava
如果安装的版本低于1.7,卸载该JDK:
rpm -e 软件包名
在/opt目录下创建两个子文件
mkdir/opt/mod /opt/soft
解压JDK到/opt/module目录下
tar-zxvfjdk-8u144-linux-x64.tar.gz-C/opt/module/
配置JDK环境变量
vi /etc/profile
exportJAVA_HOME=/opt/mod/jdk1.8.0_144
exportPATH=$PATH:$JAVA_HOME/bin
source /etc/profile 刷新环境变量配置
测试JDK是否安装成功
java -version
javaversion"1.8.0_144"
Java(TM)SERuntimeEnvironment(build1.8.0_144-b01)
JavaHotSpot(TM)64-BitServerVM(build25.144-b01,mixedmode)
安装成功
4. Hadoop运行模式
伪分布式/完全分布式部署Hadoop
SSH无密码登录
生成公钥和私钥:ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上
ssh-copy-id 主机名1
ssh-copy-id 主机名2
ssh-copy-id 主机名3
注:在另外两台机器上分别执行,共执行9遍
.ssh文件夹下的文件功能解释
(1)~/.ssh/known_hosts :记录ssh访问过计算机的公钥(public key)
(2)id_rsa :生成的私钥
(3)id_rsa.pub :生成的公钥
(4)authorized_keys :存放授权过得无秘登录服务器公钥
配置集群(表格版)
集群部署规划
bigdata111bigdata112bigdata113
HDFSNameNode,SecondaryName,DataNodeDataNodeDataNode
YARNNodeManagerResourceManager,NodeManagerNodeManager
配置文件
core-site.xml
fs.defaultFS
hdfs://主机名1:9000
hadoop.tmp.dir
/opt/module/hadoop-2.X.X/data/tmp
hdfs-site.xml
dfs.namenode.secondary.http-address
主机名1:50090
dfs.permissions
false
yarn-site.xml
yarn.log-aggregation.retain-seconds
604800
mapred-site.xml
hadoop-env.sh yarn-env.sh mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144(注:是自己安装的路径)
slaves
bigdata111
bigdata112
bigdata113(自己设置的主机名)