本篇问hadoop3最基础搭建。
目录
一、hadoop简介
二、hadoop3伪分布式搭建
2.1 安装及配置
2.2 启动
2.3 测试
三、全分布式搭建
3.1 node01安装及配置
3.2 node02~node04配置
3.3 启动
3.3 测试
在虚拟机上配置一台hadoop伪分布式环境(一台机器上配置namenode和datanode),测试的时候用windows下浏览器测试。
安装
在官网下载hadoop-3.1.2.tar.gz,地址为http://mirrors.hust.edu.cn/apache/ ,解压到/myapp目录下(集群中都需安装,这个软件为绿色版,解压后即可使用):
tar -xzvf hadoop-3.1.2.tar.gz -C /myapp/
配置hadoop环境变量
vi /myapp/hadoop-3.1.2/etc/hadoop/hadoop-env.sh
# 在最后一行添加如下内容(JAVA_HOME根据实际JAVA安装路径决定):
export JAVA_HOME=/export/servers/jdk # JAVA_HOME路径,可用echo $JAVA_HOME获得
export HDFS_NAMENODE_USER=root # 为hadoop配置三个角色的用户
export HDFS_DATENODE_USER=root
export HDFS_SECONDARYNAMEDODE_USER=root
配置主节点
vi /myapp/hadoop-3.1.2/etc/hadoop/core-site.xml
core-site.xml中configuration标签内容修改如下:
fs.defaultFS
hdfs://node01:9820 # 主节点名称和hadoop3的端口!
hadoop.tmp.dir
/myapp/hadoop-3.1.2/temp # 自定义hadoop的临时目录,不修改为系统临时目录,容易丢失,比较危险
配置副本放置策略
vi /myapp/hadoop-3.1.2/etc/hadoop/hdfs-site.xml
hdfs-site.xml中configuration标签内容修改如下:
dfs.replication
1 # 表示放置的副本数,在此为伪分布式,所以为1,因为只有一台机器
dfs.namenode.secondary.http-address # secondary namenode 也配置到node01上(伪分布式)
node01:9868
配置从节点
vi /myapp/hadoop-3.1.2/etc/hadoop/workers # hadoop3中为workers;hadoop2中为slaves
里面内容为从节点
node01 # 本机为从节点,整个文件只有这六个字母
启动前配置
1)在启动前需要配置环境变量
在/etc/profile中添加
#set hadoop3 env
export HADOOP_HOME=/myapp/hadoop-3.1.2
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
从新加载环境变量使之生效
source /etc/profile
2)核对主机名
保证下面两个配置中的主机名要与2.1节中的主机名相同,这样才能正确启动
vi /etc/sysconfig/network
vi /etc/hosts
3)启动文件配置
在sbin/start-dfs.sh和sbin/stop-dfs.sh文件开头增加以下内容
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在sbin/start-yarn.sh和sbin/stop-yarn.sh文件开头增加以下内容
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
启动
1)格式化文件系统
使用下命令格式化文件系统(hadoop安装根目录执行)
./bin/hdfs namenode -format
成功后会在2.1节配置的临时目录中出现创建的元数据信息(在此为/myapp/hadoop-3.1.2/temp中)
2)启动集群
./sbin/start-dfs.sh
启动成功后输入“jps”命令可以看到启动的节点(都在一个机器上)。
在windows上浏览器输入“192.168.182.140::9870”,即可打开hadoop主页。
上传文件
在hadoop安装的根目录执行
./bin/hdfs dfs -mkdir /first # 在根目录下创建一个文件夹
./bin/hdfs dfs -put /work/hadoop-3.1.2.tar.gz /first # 随便上传一个文件到/first,建议文件不要太小
可以在浏览器中看到刚才上传的文件(位于/first中),如下图:
点击上图中的文件名可以看到配切成了3块。
注意:上传的文件实际上存储在/myapp/hadoop-3.1.2/temp/dfs/data/current/BP-1961204165-192.168.182.140-1561111726585/current/finalized/subdir0/subdir0 目录下,即2.1节core-site.xml定义目录的子目录中。
与第二节伪分布式基本相同
在虚拟机上配置4台hadoop伪分布式环境(一台机器上配置namenode,三台作为datanode),测试的时候用windows下浏览器测试。
安装
在官网下载hadoop-3.1.2.tar.gz,地址为http://mirrors.hust.edu.cn/apache/ ,解压到/myapp目录下(集群中都需安装,这个软件为绿色版,解压后即可使用):
tar -xzvf hadoop-3.1.2.tar.gz -C /myapp/
配置hadoop环境变量
vi /myapp/hadoop-3.1.2/etc/hadoop/hadoop-env.sh
# 在最后一行添加如下内容(JAVA_HOME根据实际JAVA安装路径决定):
export JAVA_HOME=/export/servers/jdk # JAVA_HOME路径,可用echo $JAVA_HOME获得
export HDFS_NAMENODE_USER=root # 为hadoop配置三个角色的用户
export HDFS_DATENODE_USER=root
export HDFS_SECONDARYNAMEDODE_USER=root
配置主节点
vi /myapp/hadoop-3.1.2/etc/hadoop/core-site.xml
core-site.xml中configuration标签内容修改如下:
fs.defaultFS
hdfs://node01:9820 # 主节点名称和hadoop3的端口!
hadoop.tmp.dir
/myapp/hadoop-3.1.2/temp_full # 自定义hadoop的临时目录,不修改为系统临时目录,容易丢失,比较危险,为了区分,与上面的文件夹名字不同
配置副本放置策略
vi /myapp/hadoop-3.1.2/etc/hadoop/hdfs-site.xml
hdfs-site.xml中configuration标签内容修改如下:
dfs.replication
3 # 表示放置的副本数(不会放在同一节点上),在此有三台datanode,所以为3
dfs.namenode.secondary.http-address # secondary namenode 配置到node02上
node02:9868
配置从节点
vi /myapp/hadoop-3.1.2/etc/hadoop/workers # hadoop3中为workers;hadoop2中为slaves
里面内容为从节点
node02 # 从节点为另外三台机器的计算机名,整个文件只有这三行
node03
node04
配置DNS地址解析
上面workers中配置的是其他节点的主机名,计算机并不知道他们的ip地址,所以需要在本地配置DNS解析
注意:所有集群机器都需要配置!
vi /etc/hosts
# 在文件后面添加如下信息
192.168.182.140 node01
192.168.182.141 node02
192.168.182.142 node03
192.168.182.143 node04
启动文件配置
在sbin/start-dfs.sh和sbin/stop-dfs.sh文件开头增加以下内容
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在sbin/start-yarn.sh和sbin/stop-yarn.sh文件开头增加以下内容
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
复制node01配置好的文件到另外3台
转到hadoop上一目录(/myapp),执行下面命令,将hadoop安装目录复制到其他三台机器。其中ip地址为其他三台的ip地址。
scp -r hadoop-3.1.2/ [email protected]:/myapp/
scp -r hadoop-3.1.2/ [email protected]:/myapp/
scp -r hadoop-3.1.2/ [email protected]:/myapp/
另外3台机器环境变量配置
另外3台机器重做,2.2中的1)。
在node01上启动,其他节点启动没试过。
1)格式化文件系统 (第一次启动时执行,以后不需要执行,除非配置文件发生改变)
使用下命令格式化文件系统(hadoop安装根目录执行)
注意:由于已经配置了hadoop的环境变量,下面命令可以不用输入全部路径,直接“hdfs xxxx”即可。
./bin/hdfs namenode -format
成功后会在2.1节配置的临时目录中出现创建的元数据信息(在此为/myapp/hadoop-3.1.2/temp中)
2)启动集群
./sbin/start-dfs.sh
启动成功后输入“jps”命令可以看到启动的节点(都在一个机器上)。
在windows上浏览器输入“192.168.182.140:9870”,即可打开hadoop主页。