侧边栏壁纸
博主头像
小鱼吃猫博客博主等级

你所热爱的,便是你的生活。

  • 累计撰写 113 篇文章
  • 累计创建 47 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

手把手教你安装Hadoop集群

小鱼吃猫
2022-10-03 / 2 评论 / 4 点赞 / 720 阅读 / 8622 字

一、虚拟机安装与配置

​ 注意,本文不适合小白操作,查看至少需要一点儿linux操作基础,因为其中有很多命令并没有写出来。比如使用vi修改文件后,需要使用:wq来保存并退出。

安装Hadoop集群时需要多个服务器,所以需要安装多个虚拟机,请自行安装。

配置服务器的hosts文件,就是将多个服务器之间建立域名配置(这样就可以使用域名来代替ip使用)。

vi /etc/hosts

最后添加如下内容(左边为每个服务器的ip,右边为主机名)

192.168.83.3 hadoop01
192.168.83.4 hadoop02
192.168.83.5 hadoop03

服务器ssh免密登录功能配置

​ 服务器要开启ssh服务,一般的虚拟机都会自带的,如果没有,请自行安装

ssh-keygen -t rsa

输入上述命令后,不用输入任何东西,边按4次Enter键确认,会在root目录下生成一个包含有密钥文件的.ssh隐藏文件夹,进入目录可以看到有两个文件id_rsa.pub(公钥)和id_rsa。

cd /root/.ssh
ll -a

使用命令直接复制到其他服务器上

ssh-copy-id hadoop02
ssh-copy-id hadoop03

此时,在hadoop01机器上,输入ssh hadoop02或者ssh hadoop03时就可以免密登录服务器了

上述步骤需要重复,直到3个服务器之前都实现免密登录

二、Hadoop集群搭建

2.1 安装JDK,建议使用jdk1.8及以上(自行解决)

2.2 Hadoop安装

以2.10.1为例,进行安装

wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
  • 解压,我是直接解压到home里的
tar -zxvf hadoop-2.10.1.tar.gz /home
  • 配置hadoop环境变量
  vi /etc/profile

写入以下内容

  # 配置Hadoop系统环境变量
  export HADOOP_HOME=/home/hadoop-2.10.1
  export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

然后执行以下命令使环境变量生效(centos下修改环境变量就是这3步,记住就好了)

  source /etc/profile
  • 使用如下命令可以查看是否hadoop安装成功
  hadoop version

三、Hadoop集群配置

3.1 配置Hadoop集群主节点

在hadoop安装目录下的etc/hadoop目录下

  • 修改hadoop-env.sh文件(如果配置了JAVA_HOME环境变量,这步可跳过)
  export JAVA_HOME=/usr/local/jdk/jdk1.8.0_341
  • 修改core-site.xml文件

    主要设置主进程NameNode运行主机和Hadoop运行时生成的临时目录

  <configuration>
    <!--用于设置Hadoop的文件系统,由URI指定-->
    <property>
      <name>fs.defaultFS</name>
      <!--用于指定namenode地址,在hadoop01机器上,是可以使用80端口的-->
      <value>hdfs://hadoop01:9000</value>
    </property>
    <!--用于设置Hadoop临时目录,可以不设置,默认在/tmp/hadoop-${user.name}-->
    <property>
      <name>hadoop.tmp.dir</name>
      <!--用于指定namenode地址,在hadoop01机器上-->
      <value>/home/hadoop-2.10.1/tmp-${user.name}</value>
    </property>
  </configuration>
  • 修改hdfs-site.xml文件

    ​ 用来设置NameNode和DateNode两大进程,主要设置了Secondary NameNode 所在的服务的HTTP协议地址

  <configuration>
    <!--用于设置HDFS副本的数量,默认为3-->
    <property>
      <name>dfs.replication</name>
      <value>3</value>
    </property>
    <!--secondary namenode所在主机的ip和端口-->
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop02:50090</value>
    </property>
  </configuration>
  • 修改mapred-site.xml文件

    ​ 这个文件不是直接存在的需要从mapred-site.xml (1).template重命名过来。

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

  <configuration>
    <!--指定MapReduce运行时的框架,这里指定在YARN上,默认是local-->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
  </configuration>
  • 修改yarn.site.xml

    ​ 配置让YARN用来做资源管理框架

  <configuration>
    <!--指定YARN集群管理者(ResourceManager,RM)的地址-->
    <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>hadoop01</value>
    </property>
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
  </configuration>
  • 修改slaves文件

    ​ 用来配置hadoop中的集群,删除其中的localhost

  hadoop01
  hadoop02
  hadoop03

3.2 将集群主节点的配置方伯分发到其他子节点

3.1中完成的Hadoop集群主节点hadoop01的配置,还压根把系统配置文件、JDK安装目录和Hadoop安装目录分发到其他子节点hadoop02和hadoop03上,使用的scp命名,具体使用方法,可以自己了解下,不要直接复制下边的指令哈(如果不会用scp,自己手动把上边的步骤在每个服务器上做一遍)。

scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
scp -r /usr/local/jdk/jdk1.8.0_341/ hadoop02:/usr/local/jdk/
scp -r /usr/local/jdk/jdk1.8.0_341/ hadoop03:/usr/local/jdk/
scp -r /home/hadoop-2.10.1 hadoop02:/home
scp -r /home/hadoop-2.10.1 hadoop03:/home

四、Hadoop集群测试

4.1 格式化文件系统
hdfs namenode -format

或者

hadoop namenode -format
4.2 启动或者关闭Hadoop集群

​ 可以单节点逐个启动和关闭,也可以用脚本一键启动或关闭

  • 单节点逐个启动

    • 在主节点上启动HDFS NameNode
    hadoop-daemon.sh start namenode
  • 在每个节点上使用以下指定启动HDFS DataNode 进程
    hadoop-daemon.sh start datanode
  • 在主节点上使用以下指令启动YARN ResourceManager进程:
    yarn-daemon.sh start nodemanager
  • 在每个从节点上使用以下指令启动YARN nodemanger进程:
    yarn-daemon.sh start nodemanager
  • 在hadoop02上使用以下指令启动SecondaryNameNode进程:
    hadoop-daemon.sh start secondarynamenode
  • 脚本一键启动

    ​ 要求每个节点之前开启ssh免密登录,上文中有写

    • 在主节点上使用以下命令启动HDFS进程
    start-dfs.sh
  • 在主节点上启动所有的YARN进程
    start-yarn.sh

小鱼吃猫大数据

4.3 关闭Hadoop集群

不论是单个节点启动还是一键启动,只需要把上边的start换成stop就可以停止了

4.4 通过UI 查看Hadoop运行状态

注意在windows中的hosts中配置域名映射(内容和上边在虚拟机中配置的一样)。还有虚拟机上记得关闭防火墙放行50070和8088端口

然后在浏览器输入hadoop01:50070 和hadoop01:8088
i小鱼吃猫大数据
小鱼吃猫大数据

更多学习内容请关注微信公众号 小鱼与Java 或者 我的博客 jhacker.cn

4

评论区