前言
集群搭建分为两种,伪分布和全分布。伪分布是用一台机器模拟分布式系统,一个namenode和一个datanode在同一台机器上。全分布是多台机器组成一个系统,一个namenode和多个datanode。两种方法的搭建步骤基本相同,这里主要介绍全分布搭建,和伪分布搭建有区别的地方会用不同颜色标注。
基础环境:
装有linux系统的主机多台 伪分布一台
jdk1.8.0_151
待安装:
hadoop-2.7.6
一、解压,配置环境变量
解压安装包:
tar -zxvf hadoop-2.7.6.tar.gz
配置环境变量:
vi /etc/profile
export HADOOP_HOME=/usr/hadoop-2.7.6
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
刷新环境变量:
source /etc/profile
二、修改配置文件
修改的文件主要包括hadoop-env.sh、core-site.xml、hdfs-site.xml,slaves四个
1.修改hadoop-env.sh文件
将其中的JAVA_HOME修改为当前机器的jdk配置路径
2.修改core-site.xml文件
指定默认文件系统
datanode配置文件中的master为namenode的ip地址,即外网ip
而namenode中需配置为本机的内网ip 伪分布同需配置为内网ip
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
指定临时文件目录
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
3.修改hdfs-site.xml文件
指定hdfs的副本数 伪分布中只有一个datanode,value的值设置为1
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
4.修改slaves文件
将所有datanode的主机名写入此文件内,一行一个 伪分布仅一个节点,文件使用默认内容localhost
三、启动hadoop集群
首次启动,需要在主节点下使用hdfs namenode -format命令初始化namenode节点
然后输入start-dfs.sh命令启动hadoop集群,如果没有设置ssh免密登录,启动集群时会有提示要输入子节点机器的密码,此时输入用户对应的密码即可,如想避免麻烦,可以设置免密登录
启动完成后,输入jps查看进程,如果在主节点中显示了namenode进程且子节点中显示了datanode进程,表示集群搭建成功
伪分布会在一台机器下同时显示namenode和datanode进程
注:ssh免密
1.为集群内的所有节点添加一个管理集群的用户,例如hadoop用户,然后切换到hadoop用户
2.输入ssh-keygen -t rsa,会在 /home/hadoop/.ssh 路径下生成几个文件
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
3.将所有子节点的公钥发送至主节点:
切换至密钥所在路径,输入ssh-copy-id -i id_rsa.pub hadoop@master