搭建有三台集群的hadoop,cover atguigu

思路:先搭建一台虚拟机hadoop100,硬件、软件、IP、主机名称都,配好后再克隆出三台hadoop102、hadoop103、hadoop104,然后再进行集群的配置。教程分为三部:克隆前,克隆,克隆后

克隆前:

1、安装模板虚拟机(配置好内存4G、硬盘50G、IP、主机名称)

安装VMware、CentOS、远程终端工具(MobaXterm)

一台电脑需要进行的操作:

(1)安装硬件 打开VMware创建虚拟机->自定义->稍后安装操作系统(先配置好硬件再说操作系统)->客户机操作系统选择linux,版本为CentOS 7 64 位 ->虚拟机名称为hadoop100,位置为D:\centos\hadoop100->处理器数量一般为2,处理器内核总数为当前电脑核数除以4->虚拟机内存配4G->网络连接选择NAT模式->最大磁盘大小设为50G->生成的磁盘文件放在自己的目录下方便管理(D:\centos\hadoop100)->完成

(2)安装软件 点击CD/DVD(相当于插了一块儿硬盘)+连接,选择使用ISO镜像文件+确定+开启电脑

设计语言+日期&时间+软件选择(学习建议选择桌面版)+安装位置->我要配置分区->完成->点击”+“配置/boot分配1g,配置swap分配4g,配置/分配45g->点击完成,接受更改+KDUMP(崩溃前备份的,学习阶段可以关掉)+网络和主机名称(主机名称改为hadoop100、以太网打开)+开始安装 在安装过程中可以配置一下root密码:点开root密码,输入密码即可+接受协议+完成配置

(3)配置IP (IP地址有三个地方要配置1:hadoop这台服务器 2:VMware 3:window11服务器)

【1】配置VMware:点击编辑—虚拟网络编辑器—VMnet8—更改设置—再次点击VMnet8,选NAT模式—子网IP:192.168.10.0(任何一个1~10的数字 后面保持一致就行)—NAT设置—网关IP改的和子网IP一样:192.168.10.2—确定

【2】配置window11:打开网络连接

找到VMnet8—右键属性—双击(TCP/IPv4)—修改默认网关为192.168.10.2—首选DNS服务器也为192.168.10.2,备用DNS服务器为8.8.8.8

  【3】配置hadoop: 进入root用户,修改IP地址 vim /etc/sysconfig/network-scripts/ifcfg- ens33,(1)配置静态IP地址:BOOTPROTD="static"(2)在下面加IP地址、网关、域名解析器

4)配置主机名称:【1】vim /etc/hostname(默认hadoop100,因为在配置软件的时候设置过了)【2】配置主机名称映射 用hadoop100来代替IP,相当于定义了全局变量,后续出行IP地址的时候统一用hadoop替换 vim /etc/hosts/ 在最后插入

 然后重启即可。重启后进行验证,ifconfig验证主机名称/ping www.baidu.com验证网络/hostname验证主机名称

2、安装远程访问工具

我使用的是MobaXterm

3、修改window的主机映射文件(hosts文件)

进入C:\Windows\System32\drivers\etc 修改hosts文件 在最后加上

后面再输入hostname就能连接了

4、配置模板虚拟机(切换到root用户)

(1)安装epel-release yum install -y epel-release(有pid被锁定,只需kill -9 进程号 杀死这个进程就行)

(2)关闭防火墙 systemctl stop firewalld/systemctl disable firewalld.service

(3)为用户配置root权限,方便后期加sudo执行root权限的命令 vim /etc/sudoers/在%wheel ALL=(ALL) ALL的下面加上 用户名 ALL=(ALL) NOPASSWD:ALL (可以sudo同时不需要密码)

 (4)在/opt目录下创建文件夹,并修改所属主和所属组

【1】创建 mkdir /opt/module mkdir /opt/software

【2】修改文件夹的所有者和所属组均为所创建的用户 chown 用户名:用户名 /opt/module chown 用户名:用户名 /opt/module

(5)卸载虚拟机自带的jdk

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

(6)重启虚拟机 reboot

克隆:

克隆时要先关闭hadoop100

下一步到克隆类型,选择创建完整克隆,下一步修改虚拟机名称,位置改为hadoop100存放的centos文件夹下(centos文件夹——建一个clone父文件夹——建对应虚拟机名字的文件夹)

hadoop103、hadoop104都一样

克隆后:

1、用root用户修改ip地址(vim /etc/sysconfig/network-scripts/ifcfg-ens33——IPADDR改为192.168.10.102)和主机名称(vim /etc/hostname——改为hadoop102)然后reboot。三台都一样

2、配置jdk和hadoop(先把jdk和hadoop的压缩包传到/opt/software文件夹下面——cd/opt/software/)

(1)jdk:安装——tar -zxvf jdk-8u212-linux-x64.tay.gz -C /opt/module/

进入jdk配置环境变量——以前配都是vim /etc/profile,但本质是系统启动时会加载/etc/profile.d/里的sh脚本,让里面的变量全局生效。所以现在改为在etc/profile.d/下写一个自己的sh脚本 sudo vim my_env.sh

我们要把jdk的环境变量加载到PATH上,先取出PATH路径上原来的值:$PATH再拼接下一个环境变量:$JAVA_HOME/bin export是全局变量的声明

配完后还要再source /etc/profile

(2)hadoop:安装——cd /opt/software然后tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

进入hadoop配置环境变量——sudo vim /etc/profile.d/my_env.sh

然后source /etc/profile

注:hadoop目录结构和重要目录

重要目录:

(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本

(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件

(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)

(4)sbin目录:存放启动或停止Hadoop相关服务的脚本

(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

3、分发jdk与hadoop

(1)使用scp:

在102上的/opt/module:(推过去)

scp -r jdk1.8.0_212 用户名@hadoop103:/opt/module

在103上的/opt/module:(拉过去)

scp -r 用户名@hadoop102:/opt/module/hadoop-3.1.3 ./

在103上的/opt/module把jdk和hadoop传给104:

scp -r 用户名@hadoop102:/opt/module/* 用户名''@hadoop104:/opt/module/

(2)使用xsync:(创建xsync脚本,实现分发功能——执行xsync a.txt该文件能传到其他的服务器上相同目录下)

【1】希望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

可以把脚本写到/home/用户名/bin下

【2】在/home/用户名/bin目录下创建xsync文件

cd /home/用户名-->mkdir bin-->cd bin-->vim xsync

在该文件中编写如下代码:

#!/bin/bash

#1. 判断参数个数

if [ $# -lt 1 ]

then

echo Not Enough Arguement!

exit;

fi

#2. 遍历集群所有机器

for host in hadoop102 hadoop103 hadoop104

do

echo ==================== $host ====================

#3. 遍历所有目录,挨个发送

for file in $@

do

#4. 判断文件是否存在

if [ -e $file ]

then

#5. 获取父目录

pdir=$(cd -P $(dirname $file); pwd)

#6. 获取当前文件的名称

fname=$(basename $file)

ssh $host "mkdir -p $pdir"

rsync -av $pdir/$fname $host:$pdir

else

echo $file does not exists!

fi

done

done

【3】修改脚本权限使之可以执行

chmod +x xsync / chmod 777 xsync

【4】希望分发环境变量my_env.sh(/etc/profile.d/my_env.sh)

如果是xsync /etc/profile.d/my_env.sh无权限,

如果加sudo就找不到了 sudo xsync /etc/profile.d/my_env.sh

因为我的脚本在/home/用户名/bin/下,使用sudo就切换到root账户下,这时的登录shell环境变量中就只包含/root/bin。所以可以使用绝对路径:

sudo /home/用户名/bin/xsync /etc/profile.d/my_env.sh

hadoop103、hadoop104还要 source /etc/profile

4、ssh无秘登录

(1)免密登录原理:

(2)生成公钥和私钥(执行过ssh会有一个隐藏文件.ssh)

来到家目录(/home/用户名)查看隐藏文件(ls -al)进去(cd .ssh)

输入ssh-keygen -t rsa三次回车,就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

(3)将公钥拷贝到要免密登录的目标机器上(自己访问自己也要密码所以自己也要配置一下)

ssh-copy-id hadoop102/ssh-copy-id hadoop103/ssh-copy-id hadoop104

5、集群配置(让102,103,104上的hadoop之间产生关系,不然只是安装了hadoop而没有联系)

(1)规划

注意:NameNode和SecondaryNameNode不要安装在同一台服务器(因为他俩都很耗内存)+ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

(2)说明

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

默认配置文件:core-default.xml(对应common)hdfs-default.xml(对应hdfs)yarn-default.xml(对应yarn)mapred-default.xml(对应mapreduced)

自定义配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml在$HADOOP_HOME/etc/hadoop这个路径上

(3)配置集群(cd $HADOOP_HOME/etc/hadoop)

【1】配置core-site.xml(放到两个<configuration>)

vim core-site.xml

<!-- 指定NameNode的地址 -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://hadoop102:8020</value>

</property>

<!-- 指定hadoop数据的存储目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/module/hadoop-3.1.3/data</value>

</property>

<!-- 配置HDFS网页登录使用的静态用户为atguigu -->

<property>

<name>hadoop.http.staticuser.user</name>

<value>atguigu</value>

</property>

【2】配置hdfs-site.xml

vim hdfs-site.xml

<!-- nn web端访问地址-->

<property>

<name>dfs.namenode.http-address</name>

<value>hadoop102:9870</value>

</property>

<!-- 2nn web端访问地址-->

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>hadoop104:9868</value>

</property>

【3】配置yarn-site.xml

vim yarn-site.xml

<!-- 指定MR走shuffle -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!-- 指定ResourceManager的地址-->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop103</value>

</property>

<!-- 环境变量的继承 -->

<property>

<name>yarn.nodemanager.env-whitelist</name>

<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>

</property>

【4】配置mapred-site.xml

vim mapred-site.xml

<!-- 指定MapReduce程序运行在Yarn上 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

(4)在集群上分发配置好的Hadoop配置文件

xsync /opt/module/hadoop-3.1.3/etc/hadoop/

(5)在103和104上查看文件分发情况

[hadoop103]cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

[hadoop104]cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

6、群起集群

(1)配置workers(workers说明机器上有几台结点就配置几个主机名称)

cd /opt/module/hadoop-3.1.3/etc/hadoop/

vim workers(删掉默认的localhost)

改为:

hadoop102

hadoop103

hadoop104

这个workers文件会作为启动脚本的一个获取输入文件,从这个文件获取主机名称所以每个主机名称都不能有空格

同步一下所有节点配置文件

xsync /opt/module/hadoop-3.1.3/et

(2)启动集群

如果是第一次启动,需要在hadoop102节点格式化NameNode(格式化后会产生新的集群id)

hdfs namenode -format

初始化完毕后会多了两个路径,一个是data(里面有一个dfs,dfs里面有name再进有current,里面有镜像文件和当前服务器的版本号version)一个是logs

正式启动集群 启动的脚本都在sbin目录下 (可以使用jps查看)

【1】启动HDFS:/sbin/start-dfs.sh

【2】在配置了ResourceManager的节点(hadoop103)启动YARN:sbin/start-yarn.sh

Web端查看HDFS的NameNode——http://hadoop102:9870

Web端查看YARN的ResourceManager——http://hadoop103:8088

上传到hdfs的文件存储在/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1436128598-192.168.10.102-1610603650062/current/finalized/subdir0/subdir0 这个路径上

在集群上的文件其路径应该也是集群的路径(web上的路径)

hadoop的搭建教程相关推荐

  1. Hadoop入门基础教程 Hadoop之完全分布式环境搭建

    上一篇我们完成了Hadoop伪分布式环境的搭建,伪分布式模式也叫单节点集群模式, NameNode.SecondaryNameNode.DataNode.JobTracker.TaskTracker所 ...

  2. hadoop+Kylin服务器搭建教程

    公司准备使用Kylin进行数据分析,因此需要进行hadopp+Kylin服务器的搭建和使用. 本教程基于: Hadoop 2.9.0 HBase 1.1.13 Hive 1.2.2 Kylin 2.2 ...

  3. Hadoop安装搭建伪分布式教程(全面)吐血整理

    Hadoop安装搭建伪分布式教程(全面)吐血整理 1.安装下载虚拟机VMware 2.下载Ubuntu18.04镜像文件,并在VMware中添加虚拟机. 3.Hadoop伪分布式搭建 3.1 创建ha ...

  4. 最详细的Hadoop+Hbase+Hive完全分布式环境搭建教程(二)

    继续上次的教程,这次安装hbase与hive.之前有同学反应百度网盘中没有hbase安装包,这次补上了,在上篇博客的网盘链接中已经有了,最详细的Hadoop+Hbase+Hive完全分布式环境搭建教程 ...

  5. Hadoop环境搭建及常见问题解决(保姆级教程)

    Hadoop环境搭建及常见问题解决 零.资源准备 一.环境准备 1. 安装虚拟机 2. 环境准备 1) 创建新用户xiaobai 2) 安装ssh-server 3) 上传相关资源 [4)] 使用pu ...

  6. 【菜鸟窝】Hadoop生态系统、Hadoop虚拟机环境准备、Hadoop环境搭建(含安装包和教程)

    hadoop环境搭建视频:https://www.cniao5.com/course/lessons/10244 1.1Hadoop简介 1.1.1Hadoop的诞生 Hadoop是由Apache L ...

  7. Hadoop Map/Reduce教程

    Hadoop Map/Reduce教程 目的     先决条件     概述     输入与输出     例子:WordCount v1.0         源代码         用法        ...

  8. Hadoop新手篇:hadoop入门基础教程

    Hadoop新手篇:hadoop入门基础教程 关于hadoop的分享此前一直都是零零散散的想到什么就写什么,整体写的比较乱吧.最近可能还算好的吧,毕竟花了两周的时间详细的写完的了hadoop从规划到环 ...

  9. Hadoop新手篇:hadoop入门基础教程 1

    Hadoop新手篇:hadoop入门基础教程 关于hadoop的分享此前一直都是零零散散的想到什么就写什么,整体写的比较乱吧.最近可能还算好的吧,毕竟花了两周的时间详细的写完的了hadoop从规划到环 ...

最新文章

  1. 第26讲:模拟登录爬取实战案例
  2. ABAP enablement in Sublime Text
  3. TCP/IP五层模型(五层因特网协议栈)||| OSI参考模型|||数据的封装与解封装
  4. 开红字信息表的时候服务器为空,对方开了红字信息表但系统没有显示怎么办
  5. c语言的基本数据类型和表达式,C语言–基本数据类型和表达式.ppt
  6. 关于禁止ViewPager预加载问题【转】
  7. 最有效的更改linux 系统时区的方法
  8. 小程序点餐系统,外卖点餐系统源码
  9. 【Spring基础】CGLIB动态代理实现原理
  10. 疯狂模渲大师体验版安装教程|效果图设计师怎么安装并注册3dmax疯狂模渲大师体验版?
  11. 怎样压缩图片?有这3种图片压缩的方法就够了
  12. NBUT 1451 Elise (暴力+并查集)
  13. 爬虫——获取页面源代码
  14. 【FXCG】心态问题出现的原因
  15. capture h5中_input type=file属性详解,利用capture调用手机摄像头
  16. Machine Learning Algorithms Study Notes(4)—无监督学习(unsupervised learning)
  17. iOS 内购APP显示下载失败问题解决
  18. matlab常用指令
  19. python语言是解释型语言-解释型语言python
  20. 定积分应用——求旋转体体积

热门文章

  1. [AHK]获取同花顺软件中的持仓信息
  2. 机票管理系统(源码+文档)
  3. 【OpenCV学习】第9课:形态学操作的应用-提取水平线丶垂直线
  4. 演示:IPv6全球单播地址的配置
  5. Codesys的软件PLC解决方案
  6. Apache中AllowOverride对性能的影响
  7. 校园卡私人区块链平台毕设
  8. HTML旋转的太极图
  9. 目标:信息系统项目管理师
  10. python 知乎接口_用Python寻找知乎最美小姐姐