大数据技术软件安装基础---Hadoop完全分布式安装

一.Hadoop的三种运行模式 :

1.独立(本地)运行模式:无需任何守护进程,所有的程序都运行在同一个JVM上执行。在独立模式调试MR程序非常高效方便。所以一般该模式主要是在学习或者开发阶段调试使用 。

2.伪分布式模式: Hadoop守护进程运行在本地机器上,通过不同进程模拟集群中的节点,伪分布式是完全分布式的一个特例。

3.完全分布式模式:完全分布式模式才是生产环境采用的模式, Hadoop守护进程运行在服务器集群上,生产环境一般都会做HA,以实现高可用。(本文 以此为 例)


二.前提

1.要有一个集群;

  https://blog.csdn.net/qq_45830251/article/details/121131139

2.jdk(一般是 1.8,尽量 去官网下载,包含(jre));

   官网: Java Downloads | Oracle

   安装 可参考:https://blog.csdn.net/qq_45830251/article/details/120465672

3.hadoop下载(版本自己先考虑好,若安装其他组件,先考虑兼容性,最新未必最好):

    Apache Hadoop


三.安装hadoop

安装 hadoop

1.从官网下载的 Hadoop 安装包,上传至Linux上

 对 tar 进行解压

sha@slaver3:~$ tar -zxvf hadoop-3.2.2.tar.gz

 将解压后的 hadoop-3.2.2 整体移到 /usr/local/hadoop(hadoop会自行建立)

sha@slaver3:~$ sudo mv hadoop-3.2.2 /usr/local/hadoop

  打开 /usr/local 可以看到 hadoop 目录

配置hadoop的环境

(1)添加路径

sha@slaver3:/usr/local$ sudo vi /etc/profile

    添加以下内容并保存退出

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:/$HADOOP_HOME/sbin

(2)使环境变量生效

sha@slaver3:/usr/local$ source /etc/profile

四.配置hadoop的5个文件(我的集群是slaver3为namenode,以此为例)

(core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml,hadoop-env.sh)

1.core-site.xml

sha@slaver3:/usr/local/hadoop/etc/hadoop$ sudo vi core-site.xml

 复制以下内容在<configuration> </configuration>之间,并保存退出(更改主机名)

<!--指定namenode的地址-->
  <property>
         <name>fs.defaultFS</name>
         <value>hdfs://slaver3:9000</value>    #一定要记得更改主机名,即为namenode
  </property>
  <!--用来指定hadoop时产生文件的存放目录-->
  <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/usr/local/hadoop/tmpdir</value>
  </property>
  <!--用来设置检查点检查点备份日志的最长时间-->
  <property>
         <name>fs.checkpoint.period</name>
         <value>3600</value>
  </property>

 2.hdfs-site.xml

sha@slaver3:/usr/local/hadoop/etc/hadoop$ sudo vi hdfs-site.xml

 复制以下内容在<configuration> </configuration>之间,并保存退出(更改主机名)

注:下列内容中,最后一项的作用是 使得可以在网站上查看hadoop相关情况(不配也可,以防万一)

 <!--指定hdfs保存数据的副本数量-->
  <property>
         <name>dfs.replication</name>
         <value>2</value>
  </property>
  <!--指定hdfs中namenode的存储位置-->
  <property>
         <name>dfs.namenode.name.dir</name>
         <value>file:/usr/local/hadoop/tmpdir/dfs/name</value>
  </property>
  <!--指定hdfs中datanode的存储位置-->
  <property>
         <name>dfs.datanode.data.dir</name>
         <value>file:/usr/local/hadoop/tmpdir/dfs/data</value>
 </property>
 <property>
         <name>dfs.namenode.http-address</name>
         <value>slaver3:50070</value>   # 记得更改主机名,即namenode
 </property>

 3.mapred-site.xml

对于较高版本的 hadoop , 存在 mapred-site.xml,但 低版本 没有

如果没有 mapred-site.xml 文件的话,执行这一步;如果有的话,省略此步

mv mapred-site.xml.template mapred-site.xml

 对 mapred-site.xml 进行更改;

sha@slaver3:/usr/local/hadoop/etc/hadoop$ sudo vi mapred-site.xml

 复制以下内容在<configuration> </configuration>之间,并保存退出(无需更改)

<!--指定MR运行在yarn上-->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>

4.yarn-site.xml

sha@slaver3:/usr/local/hadoop/etc/hadoop$ sudo vi yarn-site.xml

 复制以下内容在<configuration> </configuration>之间,并保存退出(更改主机名)

注:是否更改主机名,hadoop的namenode、secondarynamenode、yarn的resourcemanager可以设在不同的主机上,从而减轻同一台主机的负担---->初学者还是设为一台主机吧,有能力者可进行修改;

  <!--指定Yarn的ResourceManager地址-->
  <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>node1</value>    # 这里的 node1 记得改哦,可根据自己的能力去设哦
  </property>
  <!--指定Yarn的NodeManager获取数据的方式是shuffle-->
  <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
  </property>
  <!--Yarn打印工作日志-->
  <property>
         <name>yarn.log-aggregation-enable</name>
         <value>true</value>
  </property>

5.hadoop-env.sh

   修改hadoop-env.sh,添加Java环境变量JAVA_HOME

sha@slaver1:/usr/local/hadoop/etc/hadoop$ sudo vi hadoop-env.sh

    添加以下内容并保存退出

JAVA_HOME=/usr/local/java


五.配置hadoop的 slavers/workers 文件

1.slaves文件用于指定datanode所在主机,默认为localhost,配置完全分布模式时,可改为实际作为datanode节点的主机名或IP地址。

sha@slaver1:/usr/local/hadoop/etc/hadoop$ sudo vi workers

输入三台主机中的 数据节点 的主机名 ,保存并退出


2.masters文件用于指定secondarynamenode所在主机,该文件需要自行创建去设定哪一台主机为第二名称节点(也可不去建立设定,一般默认 0.0.0.0,本教程忽略)


六.将 Hadoop 发布到其他服务器

参考:https://blog.csdn.net/qq_45830251/article/details/120932354

       区别zookeeper其发布之后,更改 myid 和 配置环境变量 ,Hadoop 只需在 /etc/profile 下,设置环境变量即可,因为 slavers/workers 文件内容相同 ;


七.格式化namenode(是对namenode进行初始化)

     因为 我的集群 namenode 是 slaver3 ,则对其进行格式化

sha@slaver3:/usr/local/hadoop/etc/hadoop$ hdfs namenode -format

注:对  namenode 进行格式化,仅在安装时 格式化 一次 , 下次开机就不再做此操作了。


八.启动和关闭hadoop与 yarn(仅在一台主机上启动)

启动的相关命令:

(1)start-all.sh (已被禁用) --->start-dfs.sh + start-yarn.sh
(2)start-dfs.sh ---->hadoop-daemon.sh start namenode + hadoop-daemons.sh start datanode
(3)start-yarn.sh ----->yarn-daemon.sh start resourcemanager + yarn-daemons.sh start          nodemanager

(4)stop-dfs.sh 停止HDFS服务

(5)stop-yarn.sh 停止yarn服务

1.先启动HDFS: $ start-dfs.sh ,并输入 jps 命令(各个主机均执行该操作)查看;

sha@slaver1:/usr/local/hadoop/sbin$ ./start-dfs.sh

 2.再启动YARN:$ start-yarn.sh(yarn主节点上启动)

sha@slaver3:/usr/local/hadoop/sbin$ ./start-yarn.sh

3.启动后可以在Web页面查看hadoop信息,显示如下图即算成功;

http://主机名/主机名ip:50070

4. 关闭集群:(在一个主机上)

   注意关闭顺序:先关闭 yarn , 再关闭 hadoop;(正确关闭集群,否则坏掉可能得重配)

sha@slaver3:/usr/local/hadoop/sbin$ ./stop-yarn.sh
sha@slaver3:/usr/local/hadoop/sbin$ ./stop-dfs.sh

注:

1.熟悉安装后,可根据自己要求去安排各个主机的节点;

2.启动集群,要注意区别于 zookeeper在每个主机上均启动,hadoop在namenode上启动,yarn在resourcemanager上启动,如果安排了不同的主机,一定要注意

3.如果格式化之后启动集群发生错误,可到 hadoop目录下查看 logs目录中的日志,有助于解决问   题;

4.解决问题之后,要将 hadoop 目录下(所有主机)的 logs 目录和存放 hadoop 节点相关信息的目录(本教程是tmpdir目录)删掉,在 namenode 上重新进行格式化,再次启动(否则会和之前的一样报错);如果并未将全部主机的相关目录删掉,很可能会造成 id 不同,继续报错;


写在最后:

       该博客是本人学习的一些总结,如果各位有不同见解,可以评论提出或者与我联系改正,谢谢阅览!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S_h_a_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值