hadoop hdfs 全分布式(Fully-Distributed Operation) 部署
- 一、 架构简介:
本文档介绍如何设置和配置单节点Hadoop安装,以便您可以使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)快速执行简单操作。
使用hadoop版本:Apache Hadoop 2.6.5
使用4个虚拟机节点以及角色:
hadoop01(192.168.92.66) 将namenode、second namenode放置在该节点
hadoop02(192.168.92.67) datanode
hadoop03(192.168.92.68) datanode
hadoop04(192.168.92.69) datanode
- 二、操作系统环境准备
2.1、依赖软件
yum install -y ssh rsync
2.2、ssh免密
现在检查您是否可以在没有密码的情况下ssh到localhost:
$ ssh localhost
如果在没有密码短语的情况下无法ssh到localhost,请执行以下命令:
[[email protected] .ssh]# ssh-****** -t dsa -P '' -f ~/.ssh/id_dsa
[[email protected] .ssh]# cat id_dsa.pub >> ~/.ssh/authorized_keys
将hadoop01中的公钥分发到其他节点并将公钥添加到authorized_keys中,下面以hadoop02为例,其他操作一样
[[email protected] .ssh]# scp id_dsa.pub [email protected]:`pwd`/hadoop01.pub
登录hadoop02
[[email protected] opt]# cd ~/.ssh
[[email protected] .ssh]# cat hadoop01.pub >> ~/.ssh/authorized_keys
hadoop03和hadoop04做同样操作
注意:需要配置 hadoop01(namenode) 需要免密登录自己和其他所有的datanode节点
2.3、 jdk安装并配置环境变量
使用rz命令将jdk安装包上传到每个节点 /opt目录下
cd /opt
安装jdk
[[email protected] opt]# rpm -ivh jdk-7u67-linux-x64.rpm
配置环境变量
vi /etc/profile
追加两行
export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
重新引入一下配置文件 source /etc/profile
注意 hadoop01 hadoop02 hadoop03 hadoop04都是同样的
2.4、 时间同步
[[email protected] opt]# date
Mon Oct 29 19:27:14 CST 2018
验证每台虚拟机中的时间是否同步,如果不同步话需要执行下面操作将时间统一
https://blog.****.net/chuanxincui/article/details/83543669
2.5、 虚拟机主机名以及hosts文件配置(以hadoop01为例 其他节点操作相同)
修改主机名
[[email protected] opt]# vi /etc/sysconfig/network
修改/etc/hosts文件如下
三、
- 三、hadoop部署(以hadoop01为例 其他节点同样操作 )
3.1、 安装hadoop
使用rz命令上传安装包到/opt目录
cd /opt
解压hadoop安装包
[[email protected] opt]# tar -zxvf hadoop-2.6.5.tar.gz
将解压后文件复制到安装目录
[[email protected] opt]# cp -r hadoop-2.6.5 /usr/local
3.2、 配置环境变量
[[email protected] hadoop-2.6.5]# vi /etc/profile
修改如下:
修改完毕后重新引入配置文件
source /etc/profile
3.2、 修改配置文件
[[email protected] hadoop]# cd /usr/local/hadoop-2.6.5/etc/hadoop
修改hdfs-site.html
[[email protected] hadoop]# vi hdfs-site.xml
修改core-site.html
修改slaves(配置datanode)
vi slaves
修改jdk环境变量hadoop-env.sh
注意:已经配置了jdk的环境变量,为什么还要修改呢?
原因:ssh直接登录虚拟机的话会加载配置文件,但是如果从一台虚拟机上调用ssh登录另一台虚拟机的话,默认是不加载配置文件的,因此也就无法获取到我们配置的jdk环境变量,因此需要在此处修改
vi hadoop-env.sh
创建临时目录
[[email protected] hadoop]# mkdir -p /var/sxt/hadoop/loca
namenode格式化
[[email protected] hadoop-2.6.5]# hdfs namenode -format
结果如下表示格式化成功
启动
[[email protected] current]# start-dfs.sh
输入结果如下表示启动成功
四、验证
创建虚拟目录
[[email protected] opt]# hdfs dfs -mkdir /user
[[email protected] opt]# hdfs dfs -mkdir /user/root
浏览器登录 http://hadoop01:50070/ 验证