Hadoop的安装、配置、初步使用!(附加集群)


这几天在学习给虚拟机装上hadoop,因为这个过程今后可能将会反复使用,所以开一篇博客专门记录一下整个流程,并汇总其中各种可能会发生的小问题,以及我们应该如何规避。

准备阶段

一台虚拟机,装有配置好的 jdk 和 mysql,如果对这两个软件安装和配置还有疑问,可以查看我的博客或者在csdn里搜索名为子清的博主的博客

所需材料:

  • hadoop-2.6.0-cdh5.14.2.tar.gz
  • hadoop-native-64-2.6.0.tar

如果有需要的小伙伴可以在底下留言!

解压

先解压hadoop-2.6.0-cdh5.14.2.tar.gz到/opt目录下
然后改名mv hadoop-2.6.0-cdh5.14.2/ hadoop,方便以后使用

本机配置

  • 修改本机名vi /etc/hostname,把里面的localhost修改成新的本机名
  • 修改vi /etc/hosts文件,添加本机IP地址 本机名
  • 生成秘钥ssh-keygen
  • 伪分布式复制到自己cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

配置

进入/opt/hadoop/etc/hadoop目录,我们要在这个目录下配置许多文件

第一步

进入hadoop-env.sh文件

vi hadoop-env.sh

找到# The java implementation to use.这一行,添加如下内容

# The java implementation to use.
export JAVA_HOME=/opt/jdk1.8.0_221    <---个人的jdk路径

:x保存退出(以下修改配置文件的操作均视为有这一步骤,除非有特殊说明)

第二步

进入core-site.xml文件

vi core-site.xml

<configuration> </configuration>中添加如下内容:

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://192.168.23.52:9000</value>    <---本机IP地址
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/hadoop/tmp</value>    <---hadoop文件路径
</property>
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>

第三步

进入hdfs-site.xml文件

vi hdfs-site.xml

<configuration> </configuration>中添加如下内容:

<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>192.168.23.52:50090</value>    <---本机IP地址
</property>

第四步

重新命名mv mapred-site.xml.template mapred-site.xml
进入mapred-site.xml文件

vi mapred-site.xml

<configuration> </configuration>中添加如下内容:

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>192.168.23.52:10020</value>    <---本机IP地址
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>192.168.23.52:19888</value>    <---本机IP地址
</property>

第五步

进入yarn-site.xml文件

vi yarn-site.xml

<configuration> </configuration>中添加如下内容:

<!-- reducer获取数据方式 -->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hadoop02</value>    <----主机名
</property>
<!-- 日志聚集功能使用 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

第六步

vi ./slaves

把原本的localhost修改成现在的主机名

环境变量配置

vi /etc/profile

添加如下内容:

export HADOOP_HOME=/opt/hadoop    <---hadoop文件路径
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

如果已经有$PATH,则在原来的基础上添加,而不是覆盖

export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH

# 可以顺便添加一下初始化路径
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

最后修改完成的应如下图所示:
在这里插入图片描述
保存退出后别忘记source /etc/profile

格式化

在格式化之前,还有几个重要的步骤
回到/opt/hadoop目录下,如果有 tmp 和 logs 文件(一般都会有),请先删除

rm -rf tmp/
rm -rf logs/

然后输入jps,查看是否有除了jps以外的进程,如果有请使用kill先杀掉

下面正式开始格式化

hadoop namenode -format

启动

/opt/hadoop/etc/hadoop目录下,输入start-all.sh启动
该过程可能会花一段时间
如果想停用,则输入stop-all.sh
可以选择性地启动历史服务mr-jobhistory-daemon.sh start historyserver

访问Hadoop

在浏览器输入本机IP地址:50070,即可进入HDFS页面
在浏览器输入本机IP地址:8088,即可进入YARN管理界面

简单测试

让我们用hadoop创建一个文件夹,并往里放入一个txt文本

hadoop fs -mkdir /test    <---创建了一个名为test的文件夹,记得在目录名前加/符号
hadoop fs -put README.txt /test/    <---将一篇名为README的txt文件放入了test

如何查看这样的操作是否完成?
进入端口50070的页面,点击右上角Utilities,然后点击Browse the file system
在这里插入图片描述
这时候会出现我们的test文件夹
在这里插入图片描述
点击test文件夹,就可以发现README已经在里面了
在这里插入图片描述

hadoop集群

2020.09.05更新

首先需要准备三台虚拟机(克隆),修改IP地址和主机名,生成新秘钥,添加互信,如果对这一系列的步骤还有疑问,可以去看我的上一篇博客,基本都有提到该如何操作
ELK的安装 配置 集群

这里其实只实现了Linux集群,我们还需要对其他虚拟机的配置进行更改

修改配置文件

进入hdfs-site.xml文件,修改后的内容如下

<property>
  <name>dfs.replication</name>
  <value>3</value>    <---这里的数字修改为对应集群内的虚拟机数量
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>192.168.23.53:50090</value>    <---新虚拟机的本机IP地址
</property>

进入mapred-site.xml文件,修改后的内容如下

 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>192.168.23.54:10020</value>    <---我们将这个jobhistory服务放在另一台虚拟机(非主节点)上,分担压力
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>192.168.23.54:19888</value>    <---注意上下一致
</property>

进入slaves文件
将集群内所有的主机名都添加进来
在这里插入图片描述

以上步骤需要在所有集群内的虚拟机上同步完成,可以使用Moba的功能分屏MultiExec;也可以在一台虚拟机上完成好所有的xml配置,再使用scp命令将文件发送到其他虚拟机上,scp命令如何使用可以查看我的博文Linux常用命令。

总结

配置hadoop的环节步骤很多,也很容易出错,需要大家小心谨慎,多加练习也可以减少以后犯错的概率。

如果你读完这篇博文仍然有没有解决的疑问,欢迎在评论区留言,一起共同讨论!

希望这篇博文能帮助到你!

猜你喜欢

转载自blog.csdn.net/Helltaker/article/details/108404894