【Hadoop权威指南】Hadoop集群的安装

系列文章目录



简单概述

本篇文章主要介绍的是Hadoop权威指南这本书的前期集群的安装, 只有实现对集群的安装才能够在本地实现对后续内容的实验.

前期准备

需要准备好的东西有: jdk1.8以及hadoop的安装包,这里同时给一个百度云链接, 防止csdn的资源当中无法下载.
准备好三台虚拟机, 同时需要实现三台虚拟机的互通, 配置好ssh以及基本的网络配置, 以后有时间写文章补充.

配置步骤

注意 :

  1. 这里三台虚拟机的名称为hadoop01, hadoop02, hadoop03, 以下按此进行配置.
  2. 文件的默认存放位置为/opt/apps, 下面位置都以此为基础

完成hadoop01的配置

配置jdk

  1. 在/opt/apps下进行解压操作
  2. 进行全局变量的配置
vi /etc/profile
  1. 在文件最后的部分添加
# 这里需要注意找到自己的jdk安装地址
export JAVA_HOME=jdk地址
export PATH=$PATH:$JAVA_HOME/bin
  1. 更新全局变量
source /etc/profile
  1. 查看是否可用, 如果出现java的版本, 那么说明配置没有问题; 如果有问题, 那么jdk的安装地址检查一下
java -version

配置Hadoop

1.在/opt/apps下进行解压操作
2. 配置hadoop的依赖

# 进入/opt/apps/hadoop-3.1.1/etc/hadoop/ 配置文件 hadoop-env.sh
cd /opt/apps/hadoop-3.1.1/etc/hadoop/
# 编辑 hadoop-env.sh 添加 java的依赖信息
vi hadoop-env.sh

以下部分是文件中需要添加的内容

export JAVA_HOME=jdk地址
  1. 扩展配置依赖修改
# 进入文件夹/opt/apps/hadoop-3.1.1/etc/hadoop/
cd /opt/apps/hadoop-3.1.1/etc/hadoop/
# 编辑文件 hdfs-site.xml
vi hdfs-site.xml

注意文件<configuration></configuration>标签, 在这个标签内写如下内容

<!-- 将下面配置信息copy到文件中的<configuration></configuration>标签中-->

	<!-- 集群的namenode的位置  datanode能通过这个地址注册-->
	<property>
	     <name>dfs.namenode.rpc-address</name>
		 <value>hadoop01:8020</value>
	</property>
	 <!-- namenode存储元数据的位置 -->
	<property>
	     <name>dfs.namenode.name.dir</name>
		 <value>/opt/hdpdata/name</value>
	</property>
	 <!-- datanode存储数据的位置 -->
	<property>
	     <name>dfs.datanode.data.dir</name>
		 <value>/opt/hdpdata/data</value>
	</property>
	 <!-- secondary namenode机器的位置-->
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>hadoop01:50090</value>
	</property>

在当前文件下修改另一个文件workers

vi workers

在文件中删除内容后添加机器的域名

# 这里的域名和文章注意的内容匹配, 如果改名了, 那么就填写改名的域名
hadoop01
hadoop02
hadoop03

进入/opt/apps/hadoop-3.1.1/sbin文件夹下修改start-dfs.shstop-dfs.sh

vi start-dfs.sh

在其第二行空行出添加以下内容

# 这里由于我直接使用的是root用户, 所以写的是root用户, 如果是其他用户那么写其他用户
HDFS_DATANODE_USER=root 
HADOOP_SECURE_DN_USER=hdfs 
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root

下一步就是修改stop-dfs.sh内容和上面一样

vi stop-dfs.sh

在其第二行空行出添加以下内容

# 这里由于我直接使用的是root用户, 所以写的是root用户, 如果是其他用户那么写其他用户
HDFS_DATANODE_USER=root 
HADOOP_SECURE_DN_USER=hdfs 
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root
  1. 全局环境变量配置, 同jdk一样
# 编辑/etc/profile
 vi /etc/profile
#在文件内添加以下代码, 注意要添加到文件最后, 之前已经添加了Java的内容
export HADOOP_HOME=/opt/apps/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#保存退出, 更新全局变量
source /etc/profile

内容分发

完成了上面对hadoop01的配置之后我们就可以将这个内容分发到hadoop02, hadoop03上面了.
首先返回到hadoop文件夹的上一级目录也就是/opt/apps/, 执行以下命令

for i in hadoop01 hadoop02:
do
# 这里的hadoop-3.1.1/是我的jdk文件名
scp -r hadoop-3.1.1/ $i:$PWD
done

等待分发完成后, 分发jdk文件

for i in hadoop01 hadoop02:
do
# 这里的jdk1.8/是我的jdk文件名
scp -r jdk1.8/ $i:$PWD
done

分发更新的全局变量文件, 全局文件分发后需要进行

for i in hadoop02 hadoop03; 
do
scp /etc/profile $i:/etc/profile; 
done

完成后对hadoop02, hadoop03, 进行一次source /etc/profile, 并使用java -version查看是否正确分发, 并查看到版本.

初始化操作

hadoop01执行初始化的操作

hadoop namenode -format

hadoop01开启namenode节点

hadoop-daemon.sh start namenode

hadoop01, hadoop02, hadoop03开启datanode节点

hadoop-daemon.sh start datanode

查看是否配置成功

利用jps命令可以查看是否有datanodenamenode进程
在web端的话可以访问http:hadoop01:9870/来查看是否构建成功集群, 通过Datanodes可以查看有几个节点.

错误参考

集群构建后只有一个节点

查看三台机器当中的元数据文件夹中的集群ID是否一致, 这里我们查看/opt/hdpdata/data/current/VERSION文件中的clusterID是否一致, 如果不一致, 将其修改成一致.

脚本

快速查看集群的节点状态的脚本

#!/bin/bash
# `cat /opt/apps/hadoop-3.1.1/etc/hadoop/workers`
for host in  hadoop01 hadoop02 hadoop03
do
        echo "################$host进程状态###############"
        ssh $host "source /etc/profile;jps;exit"
done

快速启动集群脚本

#!/bin/bash

status=$1

if [ $status == start ]
then
      ssh hadoop01 "source /etc/profile;start-all.sh;mapred --daemon start historyserver;exit"

elif [ $status == stop ]
then
      ssh hadoop01 "source /etc/profile;stop-all.sh;mapred --daemon stop historyserver;exit"
else
        echo Command not found
fi

参考文献

  1. hadoop 三节点集群搭建后只有一个 datanode?
  2. hadoop权威指南
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值