Hadoop集群环境搭建

Hadoop集群环境准备

本篇文档,最终按照如下图所示配置并部署集群
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zPrMHcJo-1650512313101)(img/14.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QWcnRUch-1650512313102)(img/12.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MAuFqTNG-1650512313102)(img/13.png)]

一、准备安装包

阿里云盘获取:
https://www.aliyundrive.com/s/sy1jmi5PyMg

在文件夹“安装包”中含有以下内容:

1、jdk安装包( jdk-8u241-linux-x64.tar.gz
2、Hadoop编译后的包( hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

二、准备一台虚拟机

阿里云盘获取:
https://www.aliyundrive.com/s/sy1jmi5PyMg

通过vmware创建一台centos7的虚拟机, 02_安装Centos.doc

vmware安装包在文件夹“安装包”中包含, 01_安装VMware虚拟机.doc

finalshell连接工具在文件夹“安装包”中包含, finalshell_install.exe

三、配置虚拟机

1、主机名

vim /etc/hostname
#输入:修改后需要重启服务器生效
node1.itcast.cn

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cYNGoeCl-1650512313102)(img/2.png)]

2、配置固定ip

此处配置的固定ip为:10.8.0.151

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

参考:https://www.cnblogs.com/cyan-orange/p/15861123.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Wc4gVK9-1650512313102)(img/1.png)]

3、hosts映射

vim /etc/hosts
#输入:可自定义,但是之后的三台机子的ip要与之相对应
10.8.0.151 node1.itcast.cn node1
10.8.0.152 node2.itcast.cn node2
10.8.0.153 node3.itcast.cn node3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Aniz1RZ-1650512313103)(img/3.png)]
此时同步配置宿主机的hosts文件,也添加上面的配置

windows的hosts文件在:C:\Windows\System32\drivers\etc

4、创建文件夹

mkdir -p /export/server/
mkdir -p /export/data/
mkdir -p /export/software/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a7TEPcIm-1650512313103)(img/4.png)]

5、JDK 1.8安装

上传 jdk-8u241-linux-x64.tar.gz到/export/server/目录下

cd /export/server/
tar zxvf jdk-8u241-linux-x64.tar.gz

6、配置环境变量

vim /etc/profile

export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#重新加载环境变量文件
source /etc/profile

#检查是否配置成功
java -version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-33XNIRYl-1650512313103)(img/5.png)]

7、防火墙关闭

firewall-cmd --state	#查看防火墙状态
systemctl stop firewalld.service  #停止firewalld服务
systemctl disable firewalld.service  #开机禁用firewalld服务

8、再克隆两台虚拟机作为node2、node3

选中node1,点击克隆

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6FNwBDJZ-1650512313103)(img/6.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIqyEQrB-1650512313103)(img/7.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wFgIvS66-1650512313103)(img/8.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYuJuvS6-1650512313103)(img/9.png)]

按照上述方法克隆出node2和node3

9、配置node2和node3

使node1和node3在关闭的状态下,开启node2

执行“1、主机名”和“2、配置固定ip”

node2:
			设置对对应的主机名:node2.itcast.cn,  取决于你在hosts中定义的是什么内容
			ip:10.8.0.152
node3:
			设置对对应的主机名:node3.itcast.cn,
			ip:10.8.0.153

然后启动node3,重复执行上述操作

完成后,重启服务器

10、集群时间同步

三台机器都执行:

ntpdate ntp5.aliyun.com

11、ssh免密登录(只需要配置node1至node1、node2、node3即可)

#node1生成公钥私钥 (一路回车)
ssh-keygen  

#node1配置免密登录到node1 node2 node3
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

至此基础环境已经配置成功,可以做一个虚拟机快照,作为备份

四、安装Hadoop集群

1、上传Hadoop安装包到node1 /export/server

hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

tar zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

2、修改配置文件

配置文件路径 hadoop-3.3.0/etc/hadoop

cd /export/server/hadoop-3.3.0/etc/hadoop
  • vim hadoop-env.sh

    #文件最后添加
    export JAVA_HOME=/export/server/jdk1.8.0_241
    
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root 
    
  • vim core-site.xml

    <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
    </property>
    
    <!-- 设置Hadoop本地保存数据路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/data/hadoop-3.3.0</value>
    </property>
    
    <!-- 设置HDFS web UI用户身份 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
    
    <!-- 整合hive 用户代理设置 -->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    
    <!-- 文件系统垃圾桶保存时间 -->
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>
    
  • vim hdfs-site.xml

    <!-- 设置SNN进程运行机器位置信息 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:9868</value>
    </property>
    
  • vim mapred-site.xml

    <!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    
    <!-- MR程序历史服务地址 -->
    <property>
      <name>mapreduce.jobhistory.address</name>
      <value>node1:10020</value>
    </property>
     
    <!-- MR程序历史服务器web端地址 -->
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>node1:19888</value>
    </property>
    
    <property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    
    <property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    
    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    
  • vim yarn-site.xml

    <!-- 设置YARN集群主角色运行机器位置 -->
    <property>
    	<name>yarn.resourcemanager.hostname</name>
    	<value>node1</value>
    </property>
    
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <!-- 是否将对容器实施物理内存限制 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    
    <!-- 是否将对容器实施虚拟内存限制。 -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    
    <!-- 开启日志聚集 -->
    <property>
      <name>yarn.log-aggregation-enable</name>
      <value>true</value>
    </property>
    
    <!-- 设置yarn历史服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://node1:19888/jobhistory/logs</value>
    </property>
    
    <!-- 历史日志保存的时间 7天 -->
    <property>
      <name>yarn.log-aggregation.retain-seconds</name>
      <value>604800</value>
    </property>
    
  • vim workers

    node1.itcast.cn
    node2.itcast.cn
    node3.itcast.cn
    

3、分发同步hadoop安装包

cd /export/server

scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD

4、将hadoop添加到环境变量(3台机器都需要配置)

vim /etc/profile

export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

5、验证

输入:hadoop

出现下图字样,即为成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0sOIXD6l-1650512313103)(img/10.png)]

6、格式化namenode

重要:首次启动,需要格式化namenode,该操作只在刚安装完成后执行这一次,以后不再执行

重要:首次启动,需要格式化namenode,该操作只在刚安装完成后执行这一次,以后不再执行

重要:首次启动,需要格式化namenode,该操作只在刚安装完成后执行这一次,以后不再执行

只在node1节点执行即可!!只在node1节点执行即可!!只在node1节点执行即可!!

(因为nomenode节点,我们部署在了node1节点)

hdfs namenode -format

上述操作成功后:

今后按照下面的方法进行启动:

7、集群启动

脚本一键启动

[root@node1 ~]# start-dfs.sh 
Starting namenodes on [node1]
Last login: Thu Nov  5 10:44:10 CST 2020 on pts/0
Starting datanodes
Last login: Thu Nov  5 10:45:02 CST 2020 on pts/0
Starting secondary namenodes [node2]
Last login: Thu Nov  5 10:45:04 CST 2020 on pts/0

[root@node1 ~]# start-yarn.sh 
Starting resourcemanager
Last login: Thu Nov  5 10:45:08 CST 2020 on pts/0
Starting nodemanagers
Last login: Thu Nov  5 10:45:44 CST 2020 on pts/0

或者:

start-all.sh     #启动,这一条命令包含了上述的两条命令 start-dfs.sh start-yarn.sh
stop-all.sh			 #停止

8、验证启动是否成功

jps包含以下的相关信息即可:(与我们搭建的集群配置相同)

Node1:NodeManager、DataNode、NameNode、ResourceManager

Node2:SecondaryNameNode、NodeManager、DataNode

Node3:NodeManager、DataNode

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qjZ3UVUA-1650512313103)(img/11.png)]

9、Web UI页面

  • HDFS集群:http://node1:9870/
  • YARN集群:http://node1:8088/

通过黑马视频学习总结,附黑马视频链接:
https://www.bilibili.com/video/BV1CU4y1N7Sh?p=26&spm_id_from=pageDriver

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值