Hadoop集群搭建教程(详细)「建议收藏」

Hadoop集群搭建教程(详细)「建议收藏」需要的安装包:  1.jdk压缩包  2.hadoop压缩包请前往我的github上下载相关安装包开始搭建hadoop集群一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的因为默认的虚拟机主机名都是ubuntu,所以为了便于虚拟机的识别,创建完成虚拟机后我们对虚拟机名进行修改,我们把用于主节点的虚拟机名称设为master(按自己的喜好创建),把用于从节点的虚拟机名称…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

需要的安装包:

    1.jdk压缩包

    2.hadoop压缩包

请前往百度云上上下载相关安装包(密码:8op1)


开始搭建hadoop集群

一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的,并关闭全部虚拟机的防火墙

        1.因为默认的虚拟机主机名都是ubuntu,所以为了便于虚拟机的识别,创建完成虚拟机后我们对虚拟机名进行修改,我们把用于主节点的虚拟机名称设为master(按自己的喜好创建),把用于从节点的虚拟机名称设为slave1

  • 修改主机名的命令:sudo gedit /etc/hostname

Hadoop集群搭建教程(详细)「建议收藏」

  • 把原主机名ubuntu改为master(在从主机上则改为slave1)

        2.为了虚拟机之间能ping通,需要修改虚拟机的ip地址(这里以在master机器操作为例子,从节点的虚拟机也要进行一致的操作)

    命令:sudo gedit /etc/hosts

Hadoop集群搭建教程(详细)「建议收藏」

把/etc/hosts中yangcx-virtual-machine修改为刚刚改过的主机名master,同时将前面的ip地址改为实际的ip地址

Hadoop集群搭建教程(详细)「建议收藏」

怎么知道自己虚拟机的ip地址?

命令:ifconfig -a

Hadoop集群搭建教程(详细)「建议收藏」

Hadoop集群搭建教程(详细)「建议收藏」

上图红框标记的就是虚拟机的真实ip地址,因此我们把/etc/hosts中的内容修改为:

Hadoop集群搭建教程(详细)「建议收藏」

slave1的ip地址就是从虚拟机slave1的真实ip地址。同样,我们在slave1虚拟机上也要进行这一步操作。

        3.关闭虚拟机的防火墙

            一般来说,ubuntu默认都是安装防火墙软件ufw的,使用命令 sudo ufw version,如果出现ufw的版本信息,则说明已有ufw

            使用命令 sudo ufw status查看防火墙开启状态:如果是active则说明开启,如果是inactive则说明关闭

            开启/关闭防火墙 (默认设置是’disable’)

            sudo ufw enable|disable

             我们使用sudo ufw disble来关闭防火墙,并再次用sudo ufw status  查看防火墙是否关闭


二.安装jdk(所有虚拟机都要安装配置)

将jdk的压缩文件拖进master和slave1虚拟机中,压缩(右键文件,extract here),或者用命令行

tar -zxvf  jdk1.8.0_161.tar.gz(使用自己的压缩文件名)

   配置环境jdk环境:

    命令:sudo gedit /etc/profile

Hadoop集群搭建教程(详细)「建议收藏」

将jdk的路径添加到文件后面(根据自己的文件路径来,我这里jdk1.8.0_161文件夹的路径是/home/hadoop/java)

export JAVA_HOME=/home/hadoop/java/jdk1.8.0_161
export JRE_HOME=/home/hadoop/java/jdk1.8.0_161/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

Hadoop集群搭建教程(详细)「建议收藏」

保存退出,为了使配置立即生效,键入命令:source /etc/profile,或者重启虚拟机,命令:shutdown -r now

检查路径jdk是否安装成功,键入命令:java -version

如果出现了版本信息,则恭喜配置成功;

三.安装SSH服务

 1.首先确保虚拟机能连上网

 2.更新源列表:sudo apt-get update

Hadoop集群搭建教程(详细)「建议收藏」

3.安装ssh:输入”sudo apt-get install openssh-server”–>回车–>输入”y”–>回车–>安装完成。

 4.查看ssh服务是否启动

打开”终端窗口”,输入”sudo ps -e |grep ssh”–>回车–>有sshd,说明ssh服务已经启动,如果没有启动,输入”sudo service ssh start”–>回车–>ssh服务就会启动。
Hadoop集群搭建教程(详细)「建议收藏」


四、建立ssh无密码登录本机

 ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

1、创建ssh-key,,这里我们采用rsa方式

  1. sshkeygen t rsa “”   //(P是要大写的,后面跟””)

Hadoop集群搭建教程(详细)「建议收藏」

 
(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

2、进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的

  1. cd ~/.ssh

Hadoop集群搭建教程(详细)「建议收藏」

 

  1. cat id_rsa.pub >> authorized_keys

 

Hadoop集群搭建教程(详细)「建议收藏」

 
完成后就可以无密码登录本机了。

 

3、登录localhost

  1.  ssh localhost

Hadoop集群搭建教程(详细)「建议收藏」

 

( 注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。)

4、执行退出命令

  1. exit​

Hadoop集群搭建教程(详细)「建议收藏」

 1~4步在master和slave1两台虚拟机上都是配置

 5.配置master无密码登陆slave1

    

mater主机中输入命令复制一份公钥到home中

cp .ssh/id_rsa.pub ~/id_rsa_master.pub

Jetbrains全家桶1年46,售后保障稳定

  • 1

把master的home目录下的id_rsa_master.pub拷到slave1的home下(我的做法是先拖到windows桌面上,在拖进slave1虚拟机中)

slave1的home目录下分别输入命令

cat id_rsa_master.pub >> .ssh/authorized_keys
  • 1

至此实现了mater对slave1的无密码登陆

以下的步骤只在master上进行(除了hadoop的环境变量

配置在slave1上也要进行)

五.安装hadoop

1.将hadoop压缩包拖进master虚拟机中,解压(我这里解压的路径是/home/hadoop/hadoop-2.7.3)

2.在hadoop-2.7.3文件夹里面先创建4个文件夹:

  •     hadoop-2.7.3/hdfs
  •     hadoop-2.7.3/hdfs/tmp
  •     hadoop-2.7.3/hdfs/name
  •     hadoop-2.7.3/hdfs/data

3.配置 hadoop的配置文件

先进入配置文件的路径:cd /home/hadoop/hadoop-2.7.3/etc/hadoop(再次强调,使用自己的路径)

Hadoop集群搭建教程(详细)「建议收藏」

输入:ls

查看该路径下的文件列表

Hadoop集群搭建教程(详细)「建议收藏」

被红框框住的文件是我们要进程配置的文件

    1.首先配置core-site.xml文件

sudo gedit core-site.xml

    在<configuration></configuration>中加入以下代码:

<property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/hadoop-2.7.3/hdfs/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property>

注意:第一个属性中的value和我们之前创建的/hadoop-2.7.3/hdfs/tmp路径要一致。

    2.配置 hadoop-env.sh文件

sudo gedit hadoop-env.sh

   将JAVA_HOME文件配置为本机JAVA_HOME路径

Hadoop集群搭建教程(详细)「建议收藏」

  3.配置 yarn-env.sh

sudo gedit yarn-env.sh

 将其中的JAVA_HOME修改为本机JAVA_HOME路径(先把这一行的#去掉)

Hadoop集群搭建教程(详细)「建议收藏」

 4.配置hdfs-site.xml

sudo gedit hdfs-site.xml

在<configuration></configuration>中加入以下代码

<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop-2.7.3/hdfs/name</value> <final>true</final> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hadoop-2.7.3/hdfs/data</value> <final>true</final> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property>

注意(其中第二个dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致;因为这里只有一个从主机slave1,所以dfs.replication设置为1)

5 .复制mapred-site.xml.template文件,并命名为mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

   配置 mapred-site.xml,在标签<configuration>中添加以下代码

<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>

6.配置yarn-site.xml

sudo gedit yarn-site.xml

 在<configuration>标签中添加以下代码

<property>  <name>yarn.resourcemanager.address</name>    <value>master:18040</value>  </property>  <property>    <name>yarn.resourcemanager.scheduler.address</name>    <value>master:18030</value>  </property>  <property>    <name>yarn.resourcemanager.webapp.address</name>    <value>master:18088</value>  </property>  <property>    <name>yarn.resourcemanager.resource-tracker.address</name>    <value>master:18025</value>  </property>  <property>    <name>yarn.resourcemanager.admin.address</name>    <value>master:18141</value>  </property>  <property>     <name>yarn.nodemanager.aux-services</name>     <value>mapreduce_shuffle</value>  </property>  <property>      <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>      <value>org.apache.hadoop.mapred.ShuffleHandler</value>  </property> 

7.配置slaves 文件

sudo gedit slaves

    把原本的localhost删掉,改为slave1

8.配置hadoop的环境,就像配置jdk一样

sudo gedit /etc/profile

根据hadoop文件夹的路径配置,以我的路径/home/hadoop/hadoop-2.7.3 为例

export HADOOP_HOME=/home/hadoop/hadoop-2.7.3 export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH" export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

键入命令 source /etc/profile 使配置立即生效

9.接下来,将hadoop传到slave1虚拟机上面去

scp -r hadoop-2.7.1 hadoop@slave1:~/ 

注意:hadoop是虚拟机的用户名,创建slave1时设定的

传过去后,在slave1上面同样对hadoop进行路径配置,和第8步一样

9.初始化hadoop

hdfs name -format

10.开启hadoop

  两种方法:

  • start-all.sh
  • 先start-dfs.sh,再start-yarn.sh

如果在mater上面键入jps后看到

Hadoop集群搭建教程(详细)「建议收藏」

在slave1上键入jps后看到

Hadoop集群搭建教程(详细)「建议收藏」

则说明集群搭建成功

六:最后用自带的样例测试hadoop集群能不能正常跑任务

使用命令

hadoop   jar   /home/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar  pi 10 10

用来求圆周率,pi是类名,第一个10表示Map次数,第二个10表示随机生成点的次数(与计算原理有关)

最后出现结果

Hadoop集群搭建教程(详细)「建议收藏」

则,恭喜你,hadoop集群搭建完成

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206750.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Vue+Element UI 商城后台管理系统[通俗易懂]

    Vue+Element UI 商城后台管理系统[通俗易懂]Vue+ElementUI商城后台管理系统一、前言1.项目背景此项目来自B站Vue实战项目:电商管理系统(Element-UI)。此项目的功能与后端提供的接口并不完全相同,根据后端接口进行开发并添加了部分功能从而进行修改。在完成此项目并测试上线后,在这里记录一下项目的开发思路,以及遇到的一些问题。自我感觉这个项目是一个很不错的关于Vue+ElementUI的练手项目2.部分效果图展示先放一些效果图项目上线地址:https://aerowang.cn/vue_shop

    2025年5月27日
    4
  • SLAM技术分享_it技术分享社区

    SLAM技术分享_it技术分享社区同时定位与地图重建(SimultaneousLocalizationandMapping,SLAM),是机器人领域中的一项基础的底层技术,其希望机器人能在一个陌生的环境下实现自身的实时定位,同时能够重建出有关于环境的地图。随着近年无人驾驶、增强现实、虚拟现实等应用的兴起,作为实现这些应用的SLAM技术也越发引人注目。SLAM技术主要完成两项任务:自身定位与环境建图,也是让机器知道自己在哪里,已经周围的环境是啥。然而,如果想要精确的实现定位任务就不可避免的需要高精度的地图,而高精度的地图重建是需要以更

    2022年10月1日
    3
  • mysql 添加用户

    mysql 添加用户

    2021年5月5日
    128
  • Unity3D各平台Application.xxxPath的路径

    Unity3D各平台Application.xxxPath的路径iOS/Android/Windows平台应用存储路径,Unity3D在各平台的路径,Application.dataPath/Application.streamingAssetsPath/Application.temporaryCachePath/Application.persistentDataPath

    2022年5月1日
    57
  • java用什么编译器_Java用Java编译「建议收藏」

    java用什么编译器_Java用Java编译「建议收藏」java用什么编译器在上一篇文章中,我写了关于如何在运行时生成代理的内容,我们已经了解到生成Java源代码的程度。但是,要使用该类,必须对其进行编译,并将生成的字节码加载到内存中。那是“编译”时间。幸运的是,从Java1.6开始,我们可以在运行时访问Java编译器,因此可以将编译时与运行时混淆。尽管在这种非常特殊的情况下,这可能会导致过多的麻烦事情,通常导致无法维护的自我修改代码,…

    2022年5月6日
    43
  • pycharm配置pytorch的坑以及解决方案「建议收藏」

    pycharm配置pytorch的坑以及解决方案「建议收藏」1.好像不支持python3.8。直接从setting里面安装时不行的,按其它教程(https://blog.csdn.net/lyz21/article/details/104295042)从官网https://pytorch.org/get-started/locally/,拷贝链接用pip下载,一直报找不到版本。后来发现,python3.8的原因,改成python3.7可以了,但会一直连接超时。2.发现要下载的其实是这两个文件:点开下面的两个链接,用下载软件下载了,我下到了e盘,直接pip

    2025年6月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号