【Hadoop】hadoop2.x入门与基本环境配置

Hadoop版本:2.5.0-cdh5.3.6

JDK版本:7u80-linux-i586

 

可以从下面获取JDK和Hadoop压缩包

链接:https://pan.baidu.com/s/1KQwF3aZL9ZletysyZHLMzA 密码:okmj


理论知识介绍

大数据的4v特征

  • Volume 数据体量巨大
  • Varity 数据类型多样
  • Veracityv 密度低价值高
  • Velocity 数据处理速度快

Hadoop介绍

作者:Doug Cutting

Hadoop是一个开源的、可靠的、可扩展的分布式并行计算框架,主要组成部分是HDFS(分布式文件系统)和MapReduce计算模型。Hadoop的起源是基于谷歌的三篇论文,链接里的也是我在网上搜到的,感兴趣的可以去看看,中英都有。

 

Hadoop项目主要包括以下四个模块:

  • Hadoop Common 【为其他Hadoop模块提供基础设施】
  • Hadoop HDFS 【一个高可靠、高吞吐量的分布式文件存储系统】←这个非常重要,对于HDFS的架构需要熟练掌握,充分理解。
  • Hadoop MapReduce 【一个分布式的离线并行计算框架】
  • Hadoop YARN 【一个新的MapReduce框架,负责任务调度与资源管理】

对于其中HDFS、MapReduce和YAREN的区别理解可以参照这里。

 

离线分析与实时分析的区别理解:

离线分析分析的数据不是实时产生的,可以是保存了几个月甚至是几年的数据;

实时分析的数据是实时产生的,并且结果也随之立刻产生,如果一旦结果产生费时超过临界点,则得到的结果视为无用的结果。

 

HDFS架构:

主从架构:1*namenode+n*datanode

 

主节点(namenode)唯一,HA除外。存储元数据,即文件名、文件目录结构、文件属性(生成时间、副本数、文件权限)数据块的校验和、时间戳、数据块存储位置(每个文件的块列表及块所在的位置)等。

 

从节点(datanode)可以有多个。存储数据块,每一个数据块默认副本数为3份。如果有两个机架,那么其中一台必然存在一份另一台机架上的副本,防止其中一台机架挂掉(断电),导致数据完全丢失。

 

数据存储:遵循就近原则,读取的时候,如果当前机架存在目标数据,则不会到另一个几家去读取;一次写入多次读取;每一个数据块默认大小为128M(hadoop2.x)(hadoop1.x 64M),以块为单位,每个块有多个副本存储在不同机器上。

 

容错机制:可以随意增删服务器节点;DataNode读取block时候,namenode会计算checksum,如果某台datanode节点挂掉之后(数据丢失),此时namenode将检测不到这台datanode,于是转去检查元数据以匹配到丢失的数据块,并且复制数据块至达到要求副本数。

 

心跳机制:datanode每隔一段时间(3s)向namenode发送心跳信息(块的校验和等),namenode接收到datanode的信息,返回namenode给datanode的命令。如果规定时间内(10m),namenode不能接收到datanode发送的心跳报告,则默认这台机器已经挂掉,在检测到及其挂掉后,进行上面描述的查找元数据并复制到符合预期设置副本数。datanode启动后向namenode注册,通过后周期性(1h)向namenode上报所有块信息。

 

数据块在datanode上的存储:包括两个文件,一个是数据本身,另一个是元数据(数据块的长度,块数据的校验和以及时间戳)

 


相关配置设置及命令:

网卡IP设置为静态(NAT)

#查看网卡IP
ifconfig    

#设置网卡开机自启,静态方式(root)
vi /etc/sysconfig/network-scripts/ifconfig-eth0

ONBOOT=yes		   # 把网卡设置成开机启动
BOOTPROTO=static   # 把DHCP改为static
IPADDR=本机分配的IP地址
NETMASK=255.255.255.0
GATEWAY=网关

设置DNS

#DNS配置(root)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=#第一个DNS设置成跟网关地址一样
DNS2=202.96.209.5

service network restart # 把网络服务重启

修改主机名

#主机名修改(root)
vi /etc/sysconfig/network
HOSTNAME=主机名

关闭防火墙和selinux,设置为开机不启动

## 默认情况下,防火墙只开启了22号端口(root)
# 关闭防火墙服务
service iptables stop	
# 设置成开机不启动
chkconfig iptables off

# 关闭selinux
vi /etc/sysconfig/selinux
SELINUX=disabled   #把enforcing改成disabled

添加主机名映射

#修改hosts文件IP映射(root)
vi /etc/hosts
IP 主机名

安装JDK

##卸载系统自带JDK(root)

#查看已安装的jdk
rpm -qa | grep -i java

#不检查依赖卸载,此处依次将上一命令查出的java文件全部卸载
rpm -e --nodeps 文件名

##安装JDK(root)

#创建文件夹存储压缩包和安装软件目录(可选)(root)
#压缩包
mkdir /opt/softwares
#安装目录
mkdir /opt/modules
#权限分给hadoop用户
chown hadoop:hadoop /opt/softwares
chown hadoop:hadoop /opt/modules

#安装JDK(hadoop用户)
tar zxvf jdk-7u67-linux-x64.tar.gz -C /opt/modules/

#配置环境(root)
vi /etc/profile
#加入下列代码
##JAVA_HOME
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin

#刷新配置
source /etc/profile

#测试是否配置成功
java -version

 

你可能感兴趣的:(Hadoop)