一、Apache Hadoop概述
Hadoop介绍
狭义上Hadoop指的是Apache软件基金会的一款开源软件。
用java语言实现,开源
允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理
2 Hadoop核心组件
Hadoop HDFS(分布式文件存储系统):解决海量数据存储
Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度
Hadoop MapReduce(分布式计算框架):解决海量数据计算
Hadoop现状
HDFS作为分布式文件存储系统,处在生态圈的底层与核心地位;
YARN作为分布式通用的集群资源管理系统和任务调度平台,支撑各种计算引擎运行,保证了Hadoop地位;
MapReduce作为大数据生态圈第一代分布式计算引擎,由于自身设计的模型所产生的弊端,导致企业一线几乎不
再直接使用MapReduce进行编程处理,但是很多软件的底层依然在使用MapReduce引擎来处理数据。
Hadoop集群简介
逻辑上分离:两个集群互相之间没有依赖、互不影响
物理上在一起:某些角色进程往往部署在同一台物理服务器上
二、Hadoop集群模式安装(Cluster mode)
Step1:集群角色规划
角色规划的准则
根据软件工作特性和服务器硬件资源情况合理分配
角色规划注意事项
资源上有抢夺冲突的,尽量不要部署在一起工作上需要互相配合的。尽量部署在一起
例如
Step2:服务器基础环境准备
1 主机名设置(3台机器)
代码如下: vim /etc/hostname
2 Hosts映射(3台机器)
代码如下:vim /etc/hosts
3 防火墙关闭(3台机器)
代码如下:systemctl stop firewalld.service # 关 闭 防 火 墙
systemctl disable firewalld.service #禁止防火墙开启自启
4 ssh免密登录(node1执行->node1|node2|node3)
代码如下: ssh-keygen #4个回车 生成公钥、私钥ssh-copy-id nodessh-copy-id nodessh-copy-id node3 #
5 集群时间同步(3台机器)
代码如下: yum -y install ntpdate
ntpdate ntp4.aliyun.com
6 创建统一工作目录(3台机器)
代码如下:mkdir -p /export/server/ #软件安装路径
mkdir -p /export/data/ #数据存储路径
mkdir -p /export/software/ #安装包存放路径
7 JDK 1.8安装(3台机器)
8 上传、解压Hadoop安装包(node1)
代码如下:cd /export/server(#上传安装包到/export/server 解压)
tar zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
9 编辑Hadoop配置文件
(1)在vim下打开hadoop-env.sh
代码如下:vim hadoop-env.sh
添加如下配置文件
export JAVA_HOME=/export/server/jdk1.8.0_241
export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
(2)在vim下打开core-site.xml
代码如下:vim core-site.xml
添加如下配置文件
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.3.0</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 整合hive 用户代理设置 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!-- 垃圾桶文件保存时间 -->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
(3)在vim下打开hdfs-site.xml
代码如下:vim hdfs-site.xml
添加如下配置文件
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property>
(4)在vim下打开mapred-site.xml
代码如下:vim mapred-site.xml
添加如下配置文件
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR程序历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
(5)在vim下打开yarn-site.xml
代码如下:vim yarn-site.xml
添加如下配置文件
<!-- 设置YARN集群主角色运行机器位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 保存的时间7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
(6)在vim下打开workers
代码如下:vim workers
修改为
node1.itcast.cn
node2.itcast.cn
node3.itcast.cn
(7)在node1机器上将Hadoop安装包scp同步到其他机器
代码如下:cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD
(8) 配置Hadoop环境变量
- 在node1上配置Hadoop环境变量
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 将修改后的环境变量同步其他机器
scp /etc/profile root@node2:/etc/ scp /etc/profile root@node3:/etc/
- 重新加载环境变量 验证是否生效(3台机器)
source /etc/profile
hadoop #验证环境变量是否生效
Hadoop下载安装完成