Hadoop集群安装

Posted 1244497026

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop集群安装相关的知识,希望对你有一定的参考价值。

Hadoop集群安装

1、准备工作

1、三台机器的防火墙必须是关闭的
2、确保三台机器的网络配置正常(NAT模式、静态IP、主机名的配置)
3、确保/etc/hosts文件配置了IP和hosts的映射关系
4、确保配置了三台机器的免密登录认证
5、确保所有机器时间同步
6、JDK和hadoop的环境配置(JDK安装步骤省略)
注:没有特殊说明,所有配置hadoop01、hadoop02、hadoop03都执行

1.1、主机分配

Node内存大小(G)ipApplications系统JDK
hadoop014192.168.159.128NameNode、DataNode、ResourceManager、NodeManagerCentOS7jdk1.8.0_144
hadoop024192.168.159.129SecondaryNameNode、DataNode、NodeManagerCentOS7jdk1.8.0_144
hadoop034192.168.159.130DataNode、NodeManagerCentOS7jdk1.8.0_144

1.2、关闭防火墙

1、systemctl stop firewalld
2、systemctl disable firewalld
3、systemctl stop NetworkManager
4、systemctl disable NetworkManager
5、vim /etc/selinux/config   
SELINUX=disabled

1.3、修改主机名、配置hosts及配置静态ip

1.3.1、修改主机名

hostnamectl set-hostname hadoop01 #在192.168.159.128主机执行

hostnamectl set-hostname hadoop02 #在192.168.159.129主机执行

hostnamectl set-hostname hadoop03 #在192.168.159.130主机执行

1.3.2、配置hosts

vim /etc/hosts

192.168.159.128 hadoop01
192.168.159.129 hadoop02
192.168.159.130 hadoop03

注:最好windows(C:\\Windows\\System32\\drivers\\etc\\hosts)可以配置一下

1.3.3、配置静态ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33

ONBOOT="yes"
BOOTPROTO="static"
IPADDR=192.168.159.128
NETMASK=255.255.255.0
GATEWAY=192.168.159.2   #可通过netstat -rn查看
DNS1=114.114.114.114
systemctl restart network

"ifcfg-ens33"为网卡名称,192.168.159.128为当前服务器ip

1.4、免密登录

1、ssh-keygen -t rsa   # 生成秘钥
2、ssh-copy-id hadoop01/hadoop02/hadoop03 #将秘钥拷贝至所有主机,hadoop01 -> hadoop01、hadoop02、hadoop03,hadoop02、hadoop03同理
3、ssh hadoop02(验证hadoop01登录hadoop02,免密登录)

1.5、时间同步

1.5.1、安装ntp、ntpdate

yum install ntp -y
yum install ntpdate -y

1.5.2、hadoop01配置ntp.conf(hadoop02、hadoop03不用配置)

vim /etc/ntp.conf

# 新增以下配置
restrict 192.168.159.0 mask 255.255.255.0 nomodify notrap
# 注释掉所有的server,并添加以下
server 127.127.1.0

1.5.3、hadoop02、hadoop03同步hadoop01服务器时间

1、ntpdate -u hadoop01 # 手动同步
2、执行:crontab -e,添加以下内容,定时同步hadoop01时间
* * * * * /usr/sbin/ntpdate -u hadoop01 > /dev/null 2>&1

2、集群安装

2.1、下载文件

文件存放在/root/softwares目录

https://downloads.apache.org/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
http://archive.apache.org/dist/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz

2.2、安装hadoop

cd /root/softwares

2.2.1、解压、重命名hadoop文件夹

1、解压文件
tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/
2、文件重命名
cd /usr/local/  && mv hadoop-2.7.6 hadoop

2.2.2、配置、刷新环境变量

vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

注:可通过"hadoop version"验证是否生效

2.2.3、将文件及配置拷贝至hadoop02、hadoop03

将hadoop拷贝至hadoop02、hadoop03

cd /usr/local

scp -r hadoop/ hadoop02:$PWD
scp -r hadoop/ hadoop03:$PWD

将环境配置拷贝至hadoop02、hadoop03

scp /etc/profile hadoop02:/etc/
source /etc/profile
scp /etc/profile hadoop03:/etc/
source /etc/profile

2.3、集群文件

$HADOOP_HOME/etc/hadoop

配置文件($HADOOP_HOME/share,有*-default.xml文件)
hadoop-env.sh
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
注意:配置优先级,代码设置 > *-site.xml > *-default.xml

2.3.1、core-site.xml

<configuration>
  <!-- hdfs地址:schema://ip:port -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop01:8020</value>
  </property>
 <!-- hdfs的基础路径,被其他属性依赖的一个基础属性 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
  </property>
</configuration>

2.3.2、hdfs-site.xml

<configuration>
  <!-- namenode守护进程管理的元数据文件fsimage存储的位置 -->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file://$hadoop.tmp.dir/dfs/name</value>
  </property>
  <!-- 确定DFS数据节点应该将其块存储在本地文件系统的何处  -->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file://$hadoop.tmp.dir/dfs/data</value>
  </property>
  <!-- 块的副本数  -->
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <!--块的大小(128M),下面的单位是字节  -->
  <property>
    <name>dfs.blocksize</name>
    <value>134217728</value>
  </property>
 <!-- secondarynamenode守护进程的http地址:主机名和端口号,参考守护进程布局  -->
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop02:50090</value>
  </property>
  <!-- namenode守护进程的http地址,主机名和端口号,参考守护进程布局 -->
  <property>
    <name>dfs.namenode.http-address</name>
    <value>hadoop01:50070</value>
  </property>
</configuration>

2.3.3、mapred-site.xml

cp mapred-site.xml.template  mapred-site.xml
vim mapred-site.xml

<configuration>
 <!-- 指定mapreduce使用yarn资源管理器 -->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <!-- 配置作业历史服务器地址 -->
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop01:10020</value>
  </property>
  <!-- 配置作业历史服务器http地址 -->
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop01:1988</value>
  </property>
</configuration>

2.3.4、yarn-site.xml

<configuration>
  <!-- 指定yarn的shuffle技术 -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <!-- 指定resourcemanager的主机名 -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop01</value>
  </property>
  <!-- 下面可选 -->
  <!-- 指定shuffle对应类 -->
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <!-- 配置resourcemanager的内部通讯地址 -->
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>hadoop01:8032</value>
  </property>
  <!-- 配置resourcemanager的scheduler的内部通讯地址 -->
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>hadoop01:8030</value>
  </property>
  <!-- 配置resourcemanager的资源调度的内部通讯地址 -->
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>hadoop01:8031</value>
  </property>
  <!-- 配置resourcemanager的管理员的内部通讯地址 -->
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>hadoop01:8033</value>
  </property>
  <!-- 配置resourcemanager的webui的监控页面 -->
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoop01:8088</value>
  </property>
</configuration>

2.3.5、hadoop-env.sh

vim hadoop-env.sh

配置JDK地址::25行

export JAVA_HOME=/usr/local/java/jdk1.8.0_144

2.3.6、yarn-env.sh

vim yarn-env.sh

配置JDK地址:26行

JAVA_HOME=/usr/local/java/jdk1.8.0_144

2.3.7、slaves

vim slaves

此文件用于指定datanode守护进程所在的机器节点主机名

hadoop01
hadoop02
hadoop03

2.3.8、配置文件复制到hadoop02、hadoop02

将$HADOOP_HOME/etc/hadoop复制到hadoop02、hadoop03

cd $HADOOP_HOME/etc
scp -r hadoop/ hadoop02:$PWD
scp -r hadoop/ hadoop03:$PWD

2.4、集群启动

2.4.1、hadoop01格式化

hdfs namenode -format

如果失败,可能是之前格式化过,尝试清空core-site.xml文件的配置项hadoop.tmp.dir对应的目录

2.4.2、集群启动和关闭

start-all.sh、stop-all.sh
或
(start-dfs.sh + start-yarn.sh)、(stop-dfs.sh + stop-yarn.sh)

2.4.3、hdfs web访问

hadoop01:50070 (hdfs-site.xml配置dfs.namenode.http-address)

以上是关于Hadoop集群安装的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop集群(第3期)_VSFTP安装配置

学习笔记Hadoop—— Hadoop集群的安装与部署—— 配置Hadoop集群

HBase集群安装及集成

spark集群安装并集成到hadoop集群

大数据实战——hadoop集群安装搭建

Spark集群安装-基于hadoop集群