Hadoop之Hadoop安装
发布日期:2021-05-04 20:59:57 浏览次数:25 分类:精选文章

本文共 4481 字,大约阅读时间需要 14 分钟。

Hadoop安装

  一直在学习hadoop,但是一直认为自己太渣,所以没有记录博客,但是最近在学习过程中有一些问题还是需要记录一下。所以不管写的是不是合格,就just do it。如果不合理的地方,还请诸君多多指点。

注意:hadoop生态圈比较大,而hadoop官方一直被大家诟病的就是,各个组件之间的兼容问题。经过思考,采用CDH官方提供的版本配置:,但是不使用CDH进行构建。(系统资源不足以支撑CDH集群的构建…)。
下面是一些环节的说明:
选择的配置版本:
Vmware 12(版本可以自由选择)
Centos7 x64(最小安装):三台(master,slave1,slave2),建议使用国内yum源,对于下载安装包速度会有所提升
JDK 8

操作系统环境准备

时钟同步(root账户)

在所有节点执行:

crontab -e# 保存下面内容 cron表达式 执行命令 时间服务器0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org #手动同步时间命令/usr/sbin/ntpdate cn.pool.ntp.org

配置主机名

在所有节点执行:

vim /etc/sysconfig/network# 添加内容如下(重启生效)NETWORKING=yes #启动网络 HOSTNAME=master  #主机名,另外两个为slave1、slave2# 直接设置,重启失效hostname master# 查看主机名hostname

关闭防火墙(所有节点)

在所有节点执行:

不再赘述(话说我最小安装没有防火墙…)

修改网络(所有节点)

目的将ip地址与主机映射起来

注意:尽量使用固定ip,如果ip地址发生改变,hadoop各节点之间很有可能会找不到。

修改固定IP

首先你要根据虚拟机知道自己的IP地址段,网络使用Net模式,这样就相当于Net主机之间形成一个局域网,不需要占用主机IP。

VMware>编辑>虚拟网络编辑器,点击进入下面页面
注意子网IP、子网掩码
我的子网IP:192.168.2.0,子网掩码是:255.255.255.0
因此我的网络号是192.168.2,主机号范围是0~255
注意:一般情况不要使用0、1(网关),255(广播地址),部分网管也会将253设置为网关,不要占用这几个地址
我选择的地址是

master:192.168.2.50slave1:192.168.2.101slave2:192.168.2.102

IP地址根据自己的网络进行选择

因此需要修改,下面截取的是slave1节点配置

vim /etc/sysconfig/network-scripts/ifcfg-ens32

在这里插入图片描述

BOOTPROTO="static"ONBOOT="yes"DNS1=114.114.114.114 # 也可使用 8.8.8.8IPADDR=192.168.2.101PREFIX=24GATEWAY=192.168.2.1PEERDNS=no

,三台主机均修改完成后,修改host文件,达到各个节点可以通过主机名进行通信的目的

均添加以下内容

192.168.2.50 master192.168.2.101 slave1192.168.2.102 slave2

最终效果各节点直接能相互ping通

master ping slave1效果图

配置JDK

因为hadoop是基于java语言进行开发的,所以要安装jdk

下载JDK 8,放到/usr/local/,解压,配置环境变量,篇幅无限,我也不想一一赘述。如有需要,可反馈给我,我再进行补充。。。

免秘钥登录

由于master节点需要对slave1,slave2进行RPC通信,需要进行免秘钥登录设置,

原来将master节点的公钥复制到其他节点的信任列表中,master节点用直接的私钥进行签名,其他节点在信任列表中找到可信的公钥解密完成,运行操作
,篇幅无限,我也不想一一赘述。如有需要,可反馈给我,我再进行补充。。。

Hadoop环境配置(先配置好一个,然后将配置好的包拷贝到其他节点)

总之下载,解压。配置

下载Hadoop安装包,放到安装路径,解压,不多说,常规操作
我的文件路径是:(和上述文献版本不一致)

/home/gugu/application/hadoop-2.9.0

配置开始:

  1. 配置环境变量 hadoop-env.sh
vim /home/gugu/application/hadoop-2.9.0/etc/hadoop/hadoop-env.sh# 修改下面内容,注意export前面有# 那个是注释符号,需要去掉的亲,后面值是你jdk的路径export JAVA_HOME=/usr/local/jdk1.8.0_181/

在这里插入图片描述

保存退出
2. 配置核心组件 core-site.xml

vim /home/gugu/application/hadoop-2.9.0/etc/hadoop/core-site.xml# 添加下面内容,第一项默认文件系统,第二项数据目录
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
/home/gugu/application/hadoopdata

在这里插入图片描述

保存退出
3. 配置文件系统 hdfs-site.xml

vim /home/gugu/application/hadoop-2.9.0/etc/hadoop/hdfs-site.xml# 添加下面内容,默认副本数,其实可以不添加,默认的副本数是3,但是我有两台datanode,hadoop不允许一个节点存储两份文件副本。
dfs.replication
2

在这里插入图片描述

保存退出
4. 配置yarn资源调度系统 yarn-site.xml

vim /home/gugu/application/hadoop-2.9.0/etc/hadoop/yarn-site.xml# 添加下面内容
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
master:18040
yarn.resourcemanager.scheduler.address
master:18030
yarn.resourcemanager.resource-tracker.address
master:18025
yarn.resourcemanager.admin.address
master:18141
yarn.resourcemanager.webapp.address
master:18088

在这里插入图片描述

保存退出
5. 配置计算框架 mapred-site.xml

# 复制配置文件模板cp /home/gugu/application/hadoop-2.9.0/etc/hadoop/mapred-site.xml.template /home/gugu/application/hadoop-2.9.0/etc/hadoop/mapred-site.xml# 编辑mapred-site.xml内容,添加下面内容,指定调度框架为yarn,后面的可以不配置
mapreduce.framework.name
yarn
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=/home/gugu/application/hadoop-2.9.0
mapreduce.map.env
HADOOP_MAPRED_HOME=/home/gugu/application/hadoop-2.9.0
mapreduce.reduce.env
HADOOP_MAPRED_HOME=/home/gugu/application/hadoop-2.9.0

在这里插入图片描述

保存退出
6. 配置slave节点

vim /home/gugu/application/hadoop-2.9.0/etc/hadoop/slaves# 添加下面内容,指定slave1,slave2为slave角色slave1slave2

保存退出

7. 将hadoop复制到其他节点

# 可以使用scp命令进行远程拷贝,-r代表递归拷贝,gugu指远程主机的登录用户,slave1指远程主机,后面的是远程主机上的路径 scp -r /home/gugu/application/hadoop-2.9.0 gugu@slave1:~/application/
  1. 创建数据目录(所有节点),配置环境变量
mkdir /home/gugu/application/hadoopdata# 配置环境变量#HADOOPexport HADOOP_HOME=/home/gugu/application/hadoop-2.9.0export PATH=$HADOOP_HOME/bin:$PATH

在这里插入图片描述

保存退出

  1. 格式化文件系统(注意,执行此操作会格式化hdfs所有数据,谨慎操作,只在master节点执行)
# 格式化hdfs文件系统hdfs namenode -format# 如果出现error可能需要查找日志,判断原因
  1. 启动hadoop
sbin/start-all.sh# 此目录下也有单独启动的脚本,如启动hdfs的start-dfs.sh等jps # 查看节点上启动的java进程#主节点出现下面进程是正常的# 关闭sbin/stop-all.sh

主节点

从节点

上一篇:Hadoop之WC
下一篇:MySQL语句定位性能问题-explain

发表评论

最新留言

很好
[***.229.124.182]2025年03月25日 05时19分46秒