前情提醒:linux基本命令和简单的shell脚本,已Get!
2.hadoop 3.x/2.x
Hadoop 分布式系统基础架构,主要解决数据的存储和计算,现Hadoop广义上 指的是Hadoop生态圈
Hadoop 简介
2.1 三大发行版本
- Apache 2006
- Cloudera CDH 2008
- Hortonworks HDP 2011
Hortonworks 和Cloudera 联合,2018推出 CDP
2.2 优势
- 高可靠性:底层维护多个副本
- 高扩展性:动态扩展节点,动态删除节点
- 高效性:并行计算
- 高容错性:失败任务自动重新分配
2.3 组成
- Common : 辅助工具
- HDFS: 数据存储
- YARN: 资源调度
- MapReduce: 计算
2.4 HDFS 文件系统
-
NameNode[NN] 名称节点
-
DataNode[DN] 数据节点
-
Secondary NameNode[2NN] 第二名称节点
2.5 YARN 资源管理工具
-
ResourceManager[RM] 集群资源管理器
-
NodeManager[NM] 节点资源管理器
-
ApplicationMaster[AM] 应用程序
-
Container 运行程序的资源容器
2.6 MapReduce 计算框架
-
Map 映射,一系列转换操作
-
Reduce 汇总
Hadoop 模板机搭建
2.7 模板机搭建
- 硬件
- 软件
- IP配置
- VMware 网络配置
- Windows网络配置
- Linux主机网络配置[/etc/sysconfig/network-scripts/ifcfg-xxx]
BOOTPROTO='static'
IPADDR=xxx.xxx.xx.xxx
GATEWAY=xxx.xxx.xx.x
DNS1=xxx.xxx.xx.x
- 主机名配置[/etc/hostname]
- 主机名称映射配置[/etc/hosts]
ip hostname
- 重启,使配置生效
2.8 远程访问工具
- Xshell+Xftp
- Mobaxterm
2.9 模板机环境配置
- rpel-release: readhat系列的软件仓库
yum install -y epel-relaease
- net-tools: 网络工具包[ifconfig]
yum install -y net-tools
- vim:文本编辑器
yum install -y vim
- 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld.service
- 添加用户并服务对应权限
useradd xxx
passwd xxx
vim /etc/sudoers
# 在 %wheel 行下添加
xxx ALL=(ALL) NOPASSWD:ALL
- 卸载自带的JDK
rpm -qa |grep -i java | xargs -n1 rpm -e --nodeps
- 重启
2.10 模板机克隆
只需修改对应主机的名称和IP即可
Hadoop 集群部署
2.11 Hadoop 安装
- 安装jdk
# 1.上传安装包
# 2.解压
tar -zxvf xxx -C /xxx/xxx
# 3.配置环境变量
# 这里不在 /etc/profile直接配置环境变量,可以在/etc/profile.d/ 下新建文件,会直接读取
export JAVA_HOME=/xxx/xxx
export PATH=$PATH:$JAVA_HOME/bin
# 检查Ok
java -version
- 安装hadoop
# 1.上传安装包
# 2.解压
tar -zxvf xxx -C /xxx/xxx
# 3.配置环境变量
# 这里同样不在 /etc/profile直接配置环境变量,可以在/etc/profile.d/ 下新建文件,会直接读取
export HADOOP_HOME=/xxx/xxx
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# 4.检查OK
hadoop version
2.12 Hadoop 集群文件拷贝
可以在配置SSH免密登录之后在拷贝,这样就不用输入各主机的密码
- 集群文件拷贝
# 方式一 :文件推送
scp -r /xxx/xxx user@hostname:/xxx/xxx
# 方式二 :文件拉取
scp -r user@hostname:/xxx/xxx /xxx/xxx
# 方式三 :文件传输
scp -r user@hostname:/xxx/xxx user@hostname:/xxx/xxx
- 集群配置同步
# 同 scp 使用方式类似,只同步差异性文件
rsync -av /xxx/xxx user@hostname:/xxx/xxx