hadoop搭建

前言

一般企业中不会使用master slave01 slave02来命名

vmware创建虚拟机

打开vmware软件,新建虚拟机

典型

稍后安装系统

选择centos7

虚拟机名称和安放位置自行选择(最小化安装消耗空间较少)

默认磁盘大小即可

自定义硬件

选择centos7的iso镜像文件(没有的话自行上阿里云下载)随后点击关闭centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云

完成

开启虚拟机

安装centos7

键盘上下键选择第一项直接安装,第二项是测试镜像完整性并安装,耗时较久

等待一会

语言中英文都可,按自己喜好,选择继续

选择安装位置,默认即可

直接点击完成

点击开始安装即可

点击设置root用户密码

如果设置的是弱密码需要点击两次完成

点击创建用户

创建一个hd用户,如果设置的是弱密码需要点击两次完成

等待安装,点击完成配置

再次等待,点击重启

启动centos7进行初步设置

登录root用户,输入密码不会有提示 输入完毕后直接回车即可登录

登录后发现没有IP地址

先配置一个临时IP地址(ens33 对应自己的网卡)

ip根据自己实际情况而设置

ifconfig ens33 192.168.20.30

使用远程工具ssh连接,这里使用MobaXterm

连接类型选择SSH ,输入centos7的IP地址(前面设置了192.168.20.30)根据自己的实际情况来,选择登录hd 用户,点击OK连接,随后输入密码(一样的输入密码是没有提示的)

切换到root用户(因为后面配置需要root用户权限)

su root

修改为静态ip地址(前面设置的是临时ip重启后失效)

vi /etc/sysconfig/network-scripts/ifcfg-ens33

将BOOTPROTO从dhcp修改为static

ONBOOT从no修改为yes

在文件末尾加入如下三行(因为不需要联网所以不用配置DNS)ip根据自己实际情况而设置

IPADDR=192.168.20.30
NETMASK=255.255.255.0
GATEWAY=192.168.20.2

:wq保存退出、ZZ也可

重启网卡令配置生效

systemctl restart network

关闭防火墙并永久禁用防火墙和selinux,setenforce 0重启后会失效,修改selinux文件需要重启才能生效

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vi /etc/selinux/config

将SELINUX=enforcing修改为SELINUX=disabled

保存退出

安装Java环境

先删除Linux自带的Java环境

在root用户下

yum remove  -y  java* 

回到hd用户

su hd

在hd用户目录下创建apps文件夹来放软件包及安装软件

上传Java包

将jdk-8u121-linux-x64.gz包上传至上面创建的apps目录下

解压Java包

注意以hd用户解压否则会出现hd用户无权限无法启动Hadoop

tar -zxvf jdk-8u121-linux-x64.gz

 mv jdk1.8.0_121/ java

配置Java环境

su root

添加环境变量

vi /etc/profile

G来到文件末尾,o在下一行插入

export JAVA_HOME=/home/hd/apps/java
export PATH=$PATH:$JAVA_HOME/bin

加载系统环境并查看Java版本

source /etc/profile
java -version

Hadoop安装

上传Hadoop包

上传hadoop-2.8.1.tar.gz至apps目录并解压

切换至hd用户

su hd

解压 Hadoop包

tar -zxvf hadoop-2.8.1.tar.gz

修改目录名

mv hadoop-2.8.1 hadoop

修改Hadoop配置文件

先进入Hadoop配置文件目录

cd hadoop/etc/hadoop/

修改hadoop-env.sh

vi hadoop-env.sh

按G来到文件末尾o在下一行插入,在文件末尾追加

export JAVA_HOME=/home/hd/apps/java

:wq保存退出 或 ZZ保存退出

注意!!!! 看了再往下做

下面修改的4个文件一定要在<configuration></configuration>中添加,不要图省事直接追加在文件末尾,一个xml文件只能一个根节点,出现了2个 会导致Hadoop无法启动(本人踩的雷)

修改core-site.xml

 vi core-site.xml

在<configuration></configuration>中添加

    <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hd/apps/hadoop/tmpdata</value>
    </property>
    <!--Hadoop回收站trash,默认是关闭的 可以设置一个时间阀值(单位:分钟),
当回收站里文件的存放时间超过这个阀值或是回收站被清空时,文件才会被彻底删除,并且释放占用的数据块。
-->
  <property>
            <name>fs.trash.interval</name>
            <value>1440</value>
</property>

修改hdfs-site.xml

vi hdfs-site.xml

在<configuration></configuration>中添加

    <!-- 指定HDFS副本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- 设置namenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>

    <!-- 设置secondarynamenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>

    <!-- 设置namenode存放的路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hd/apps/hadoop/namenode</value>
    </property>

    <!-- 设置datanode存放的路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hd/apps/hadoop/datanode</value>
    </property>

修改mapred-site.xml

因为我的包里没有mapred-site.xml,需要将mapred-site.xml.template重命名为mapred-site.xml

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

再来修改文件

vi mapred-site.xml

在<configuration></configuration>中添加

    <!-- 指定mr运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/home/hd/apps/hadoop</value>
    </property>
    <property>
          <name>mapreduce.map.env</name>
          <value>HADOOP_MAPRED_HOME=/home/hd/apps/hadoop</value>
    </property>
    <property>
          <name>mapreduce.reduce.env</name>
          <value>HADOOP_MAPRED_HOME=/home/hd/apps/hadoop</value>
    </property>

修改yarn-site.xml

vi yarn-site.xml

在<configuration></configuration>中添加

    <!-- 指定YARN的老大(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <!-- reducer获取数据的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

修改slaves

vi slaves

追加

slave01
slave02

修改环境变量

先切换到root用户

su root

vi /etc/profile

在文件末尾追加

export HADOOP_HOME=/home/hd/apps/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

加载环境

source /etc/profile

查看Hadoop版本

hadoop version

克隆虚拟机

先关闭虚拟机

shutdown -h now

右键虚拟机标签,选择管理,克隆

我选择链接克隆,根据自己情况来选择(链接克隆如果母机损坏了链接克隆的机器也无法正常启动,但是占用空间小,克隆速度快)

为了方便分辨虚拟机名称设为hd2,存储位置自行选择,点击完成即可

完毕

同样方法再克隆一台

启动并修改克隆的虚拟机IP地址

vi /etc/sysconfig/network-scripts/ifcfg-ens33

将网卡ID删除(避免与母机冲突)并修改IP地址,ip根据自己实际情况而设置

重启网卡

systemctl restart network

随后检查个各机器防火强是否关闭,selinux是否关闭

 systemctl status firewalld  
setenforce 0

java版本,Hadoop版本是否一致(如果没有的话自行检查 /etc/profile 环境变量 source加载)

 java -version
hadoop version

修改主机名

母机 master

从机1 slave01

从机2 slave02

一般企业中是不会像这样命名的

hostnamectl set-hostname master

bash重新加载交互

hostnamectl set-hostname slave01
hostnamectl set-hostname slave02

修改/etc/hosts 文件

切换到root用户

su root

修改hosts文件

vi /etc/hosts

在文件末尾追加(ip根据自己实际情况而设置)

192.168.20.30 master
192.168.20.31 slave01
192.168.20.32 slave02

保存并退出

同步到两台子机上

scp /etc/hosts root@slave01:/etc/
scp /etc/hosts root@slave02:/etc/

输入yes

输入密码后回车(没有提示的)

第二台同理

免密登录

先退出root用户,直接

exit

在master上生成密钥

ssh-keygen

回车

继续回车

一直回车

拷贝密钥到需要免密登录的机器

master slave01 slave02三台机器

ssh-copy-id slave02
ssh-copy-id slave01
ssh-copy-id master

输入yes,随后输入密码,回车

另外两台同理

测试免密登录

ssh slave01
ssh slave02
ssh master

不需要输入密码就说明成功了(如若不成功检查防火墙,重新生成密钥并发送到三个节点 ,并确认你的当前用户是hd)

exit退出

格式化Hadoop

只需要在master上格式化

hadoop namenode -format

( )( )启动!!!

启动Hadoop集群

start-dfs.sh 启动HDFS分布式文件系统,停止stop-dfs.sh

start-yarn.sh 启动Yarn资源管理器,停止stop-yarn.sh

start-all.sh HDFS分布式文件系统与Yarn启动,停止stop-all.sh

主要使用 一键启动所有

start-all.sh

如要停止,使用

stop-all.sh

启动卡住没有datanode解决办法

启动Hadoop后 没有DataNode进程 的解决方法_hadoop没有datanode-CSDN博客

中途提示Host key verification failed解决办法

解决Host key verification failed.(亲测有效)-CSDN博客

使用jps查看启动服务

master服务如图

两个slave服务如图

hdfs 文件系统访问地址:http://192.168.20.30:50070

ip根据自己实际情况而设置

Yarn资源管理器访问地址:http://192.168.20.30:8088

ip根据自己实际情况而设置

相关推荐
寒暄喆意17 分钟前
智慧农业物联网传感器:开启农业新时代
大数据·人工智能·科技·物联网
m0_5485030324 分钟前
Flink基本原理 + WebUI说明 + 常见问题分析
大数据·flink
kaoyaoyao43 分钟前
小程序评论分数提高,提升用户参与感和忠诚度
大数据·小程序·seo·评论·小程序评分
7yewh1 小时前
Linux驱动开发 IIC I2C驱动 编写APP访问EEPROM AT24C02
linux·arm开发·驱动开发·嵌入式硬件·嵌入式
dessler1 小时前
Docker-Dockerfile讲解(三)
linux·运维·docker
KevinRay_1 小时前
命令行之巅:Linux Shell编程的至高艺术(中)
linux·运维·服务器·重定向·shell编程
程序员JerrySUN1 小时前
Yocto 项目 - 共享状态缓存 (Shared State Cache) 机制
linux·嵌入式硬件·物联网·缓存·系统架构
乌龟跌倒3 小时前
磁盘结构、访问时间、调度算法
大数据
林农3 小时前
C05S16-MySQL高可用
linux·mysql·云计算
码中小白鼠3 小时前
Ubuntu系统部署Mysql8.0后设置不区分大小写
linux·mysql·ubuntu·adb