Hadoop 集群安装部署及新增服务器节点(详细):
文章目录
前言
- Hadoop是Yahoo!开发,后贡献给了Apache的一套开源的、可靠的、可扩展的用于分布式计算的框架
-
Hadoop作者
Doug cutting
-
Hadoop名字由来
以Hadoop作者的孩子的一个棕黄色的大象样子的玩具的命名
-
Hadoop特点
-
高可靠性
Hadoop按位存储和数据处理的能力值得信赖
-
高扩展性
Hadoop通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性
-
高效性
Hadoop能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性
-
高容错性
Hadoop能够自动保存数据的多个副本(默认是3个),并且能够自动将失败的任务重新分配
Hadoop能做什么
-
大数据量存储
分布式存储(各种云盘,百度,360~还有云平台均有hadoop应用)
-
日志处理
-
搜索引擎
如何存储持续增长的海量网页: 单节点 V.S. 分布式存储
如何对持续增长的海量网页进行排序: 超算 V.S. 分布式计算
-
数据挖掘
目前比较流行的广告推荐
提示:以下是本篇文章正文内容,下面案例可供参考
安裝部署
1.引入库
此处部署完全分布式:(示例):
Hadoop 安装部署:
基础环境:
IP hostname 系统名称 jdk hadoop
192.168.146.128 hadoop128 centos7.6 1.8.0_181 hadoop-3.1.3.tar.gz
192.168.146.134 hadoop134 centos7.6 1.8.0_181 hadoop-3.1.3.tar.gz
192.168.146.135 hadoop135 centos7.6 1.8.0_181 hadoop-3.1.3.tar.gz
192.168.146.132 windows10 使用浏览器
关闭防火墙,selinux ,
调整会话数 ulimit -n 65535
一、设置主机名
hostnamectl set-hostname hadoopxxx
vim /etc/hosts (四台服务器都需添加)
192.168.146.128 hadoop128
192.168.146.134 hadoop134
192.168.146.135 hadoop135
192.168.146.132 hadoop132 # Windows 系统
二、添加公钥(三台centos服务器互相添加公钥!否则入坑
)
入坑点:
因为该集群的部署是完全分布式 hdfs 和 yarn 需要在不同的服务器节点上启动,所以三台连接必须都能互通!
添加公钥的意思是指三台分别都要互通
eg:
1、hadoop128可以互联hadoop128(也就是自己!
)、hadoop134和hadoop135
2、hadoop129可以互联hadoop128、hadoop134(也就是自己!
)和hadoop135
3、hadoop129可以互联hadoop128、hadoop134和hadoop135(也就是自己!
)
ssh-keygen -t rsa # 生成公钥
ssh-copy-id xx.xx.xx.xx # 分发公钥
#公钥分发完成后相互之间需要首次登陆
三、安装jdk
#上传jdk 到 /usr/local/src/下
tar zxvf jdk-8u181-linux-x64.tar.gz
mv jdk-8u181-linux-x64 jdk8
vim /etc/profile.d/my_hadoop.sh
#配置Java环境变量
export JAVA_HOME=/usr/local/src/jdk8
export PATH=$PATH:$JAVA_HOME/bi
四、上传Hadoop 包到指定目录 /opt/module/
mkdir /opt/module/
#上传文件然後ls
#解压
hadoop-3.1.3.tar.gz
tar -zxvf hadoop-3.1.3.tar.gz -C "your tar path"
五、配置循环复制脚本制作
cd /opt/module/hadoop-3.1.3/sbin # 也可以放在$HADOOP_HOME/bin 下
vim xsync
#!/bin/bash
#判断参数个数
if [ $# -lt 1 ];then
echo Not Enough Arguement !
exit;
fi
#遍历所有机器
for host in hadoop128 hadoop134 hadoop135 #你的ip或者主机名是什么 就写什么!!
do
echo =====================$host========================
# 遍历目录,挨个发送
for file in $@
do
if [ -e $file ];then
#获取父目录
pdir=$(cd -P $(dirname $file) ; pwd)
#获取当期文件名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file is not exist !
fi
done
done
六、集群配置
集群部署规划:
namenode 和 secondarynamenode 最好不要安装在同一台服务器上
resourcemanager 也比较耗内存,不要跟 namenode和secondarynamenode 配置在同一台机器
Hadoop128 | Hadoop134 | Hadoop135 | |
---|---|---|---|
HDFS | Namenode 和 Datanode | DataNode | SecondaryNameNode 和 D |