Ubuntu搭建Hadoop集群 - Blog

Hadoop 2.9.2 分布式集群环境搭建

一、所需软件及工具

  • VMware : https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

    image-20200922144248578

  • Ubuntu iso镜像文件 (这里笔者使用的是 18LTS版本):http://mirrors.aliyun.com/ubuntu-releases/18.04/

    image-20200922144440127

  • 所需软件压缩包

    • hadoop-2.9.2.tar.gz:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.9.2/

      image-20200922144704295

    • jdk-8u261-linux-x64.tar.gz:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html (下载 8 版本 jdk 需要注册登录,最新版 jdk 则不用)
      image-20200922150034851

  • (可选)Xshell & XFtp:复制粘贴命令更方便

二、搭建集群所需操作

1、先创建一台 Ubuntu 虚拟机及配置

注意:

  • 网络设置选择 桥接模式
  • 语言最好还是选 English

VMware安装操作略。。。

进去系统后,修改几个配置

  • 更改软件更新源:按下 Win键,输入 software,第一个便是

  • 选择 Other

    image-20200922150112355

  • 找到 aliyun的源

    image-20200922150153674
    image-20200922144949905

  • Choose 完,Close 即可

然后打开命令行,快捷键 Ctrl+Shift+T,输入命令

sudo apt-get update
sudo apt-get upgrade

遇到 询问问题 按 y 即可

2、搭建集群所需操作

提示:

接下来笔者的操作将会在 Xshell 中对虚拟机进行操作,和在虚拟机的命令行中操作并无二异

可以自行搜索 Xshell如何连接虚拟机进行操作

2.1、集群机器配置

第一个创建的虚拟机相当于 Hadoop集群中的 NameNode 节点机器,负责协调集群中的数据存储,我们就给它起一个霸气的名字,叫做 master

# 首先安装一下 vim编辑器(编辑器的神!!!)
sudo apt-get install vim

# 修改主机名,用于区分 NameNode 和 DataNode
sudo vim /etc/hostname

image-20200922152607015

提示:

vim 操作和平时我们在 windows 用的文本编辑器不同,需要知道一些命令才好编辑文件

用另一种方式也可以编辑文件,用 Ubuntu自带的 gedit编辑器**(要在虚拟机中才可以使用)**

sudo gedit /etc/hostname

操作就是一般的文本编辑器的操作

2.2、JDK和Hadoop安装配置

注意:

笔者使用 Xftp 用作文件传输

其他方式还有:给虚拟机安装 vmtools,然后在 windows 上下载的文件就可以直接拖进去 虚拟机了(教程略。。。)

安装JDK、Hadoop

把之前准备的文件通过 Xftp工具,拖拖拖进去 虚拟机的 /usr/local 目录下

# 拖不进去要改文件夹权限
sudo chmod 777 /usr/local

image-20200922153530934

进行解压、重命名、配置环境变量操作

# 进入 /usr/local 目录下解压文件 
cd /usr/local

tar -zxvf jdk-8u261-linux-x64.tar.gz
mv jdk1.8.0_261/ java

tar -zxvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 hadoop
sudo chown -R hadoop ./hadoop 

ls

image-20200922154243833

编辑~/.bashrc文件,添加如下内容:

sudo vim ~/.bashrc

# 添加的内容,加在开头结尾都行
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source ~/.bashrc

java -version
hadoop version

如下图代表成功:

image-20200922154936972

image-20200922155211339

Hadoop集群配置

现在开始配置集群,要整三台虚拟机,我们将 master 虚拟机克隆三次即可(注意,要先关机)

image-20200922160012199

注意:下图

image-20200922160127405

完成

image-20200922160330195

把三台虚拟机都起起来,接下来要**配置 静态 ip**

参考:https://blog.csdn.net/u014454538/article/details/88646689

配置主机名和各个主机的 hosts

下图提到的主机ip 注意要,根据**自己虚拟机ip的情况填写**

image-20200922163837891

配置ssh无密码登录本机和访问集群机器

image-20200922175413223

执行完上面的操作之后

ssh slave01
ssh slave02
# 过程中不需要输入密码,否则,则代表配置失败

修改master主机修改Hadoop如下配置文件,这些配置文件都位于 /usr/local/hadoop/etc/hadoop 目录下。
修改 slaves:
这里把DataNode的主机名写入该文件,每行一个。这里让 master 节点主机仅作为 NameNode 使用。

slave01
slave02

修改 core-site.xml

 <configuration>
      <property>
          <name>hadoop.tmp.dir</name>
          <value>file:/usr/local/hadoop/tmp</value>
          <description>Abase for other temporary directories.</description>
      </property>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
      </property>
  </configuration>

修改hdfs-site.xml

<configuration>
    <property>
        <!-- 副本的数量:伪分布式设置为 1;分布式设置为随便,最少为1-->
        <name>dfs.replication</name> 
        <value>3</value>
    </property>
    <property>
        <!-- 表示本地磁盘目录,是存储fsimage文件的地方 -->
    	<name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <!-- 表示本地磁盘目录,HDFS数据存放block的地方-->
    	<name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

修改 mapred-site.xml(复制 mapred-site.xml.template,再修改文件名)

mv mapred-site.xml.template mapred-site.xml
<!--文件内容-->
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改yarn-site.xml

<configuration>
    <!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
</configuration>

配置好后,将 master 上的 /usr/local/Hadoop 文件夹复制到各个节点上。之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 master 节点主机上执行:

cd /usr/local/
rm -rf ./hadoop/tmp   # 删除临时文件
rm -rf ./hadoop/logs/*   # 删除日志文件
tar -zcf ~/hadoop.master.tar.gz ./hadoop
cd ~
scp ./hadoop.master.tar.gz slave01:/home/hadoop
scp ./hadoop.master.tar.gz slave02:/home/hadoop

在slave01,slave02节点上执行:

sudo rm -rf /usr/local/hadoop/
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop
启动hadoop集群

在master主机上执行如下命令:

cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh

若遇到下图错误:

image-20200922175715109

1

需要将 /usr/local/hadoop/etc/hadoop中的 hadoop-env.sh文件中的

export JAVA_HOME=${JAVA_HOME}
# 改成 --->
export JAVA_HOME=/usr/local/java # 自己安装的 jdk 绝对路径,三个主机都要

运行后,在master,slave01,slave02运行jps命令,查看:

jps

image-20200922171430366

在 Windows 的主机上访问:

  • http://192.168.1.80:50070/dfshealth.html#tab-datanode

    image-20200922175822660

  • http://192.168.1.80:8088/

    image-20200922175842759

三、完成!!

r/local/java # 自己安装的 jdk 绝对路径,三个主机都要



运行后,在master,slave01,slave02运行jps命令,查看:

jps

[外链图片转存中…(img-XoTTz6dQ-1600769082212)]

在 Windows 的主机上访问:

  • http://192.168.1.80:50070/dfshealth.html#tab-datanode

    [外链图片转存中…(img-NjNCwff2-1600769082212)]

  • http://192.168.1.80:8088/

    [外链图片转存中…(img-1QIgJAQ8-1600769082213)]

三、完成!!

参考教材链接:http://dblab.xmu.edu.cn/blog/1177-2/ (基础与 ubuntu 14 和 hadoop 2.7)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值