大数据运维hadoop完全分布式环境搭建(代码片段)

脚丫先生 脚丫先生     2023-01-01     385

关键词:

一、准备工作

1.1 安装VMware并设置网络

下载vmvare软件,配置NAT网络模式。NAT是网络地址转换,是在宿主机和虚拟机之间增加一个地址转换服务,负责外部和虚拟机之间的通讯转接和IP转换。

1.2.安装centos虚拟机(这里就不详细说了,网上太多了)

安装完后克隆虚拟机,产生三台虚拟机共集群使用。

三台虚拟机的ip:

192.168.239.128 
192.168.239.129 
192.168.239.130 

1.3 虚拟机配置(三台虚拟机同理)

  • (1) 永久修改主机名
    修改配置文件 /etc/hostname 保存退出。
[root@xxxx ~]# vi /etc/hostname
spark1
~                                                                                                                                                            
~                                                                                                                                                            
~                                                                                                                                                            
~                                                                                                                                                            
                                                                                                                                                          
:wq

[root@xxxx ~]# reboot
  • (2) 修改host
[root@spark1 ~]# vi /etc/hosts
192.168.239.128 spark1
192.168.239.129 spark2
192.168.239.130 spark3

注意: 需要把以上hosts配置到windows的hosts文件中,才能使用http://spark1:port 的形式进行访问HDFS的界面。当然也可以用服务器的ip进行访问。

  • (3) 关闭防火墙和selinux(Centos7)

停止防火墙命令:

systemctl stop firewalld

开机禁止启动防火墙命令:

systemctl disable firewalld
  • (4) 关闭selinux
vim /etc/sysconfig/selinux

  • (5) ssh设置 免密登陆
    集群之间的机器需要相互通信,我们需要先配置免密码登录。
[root@spark1 ~]# ssh-keygen -t rsa

拷贝生成的公钥到另外两台虚拟机:

[root@spark1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub spark2
[root@spark1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub spark3

另外两台虚拟机(spark1,spark2)也需要执行上述步骤
测试:

[root@spark1 ~]# ssh spark2
Last login: Mon Aug  2 11:27:04 2021 from 192.168.239.1
[root@spark2 ~]# 

二、集群规划

所有下载资源的地址:华为开源镜像站

主机名IPNameNodeDataNodeResourceManagerNodeManagerSecondaryNameNode
spark1192.168.239.128
spark2192.168.239.129
spark3192.168.239.130

2.1 编写同步脚本xsync

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
 
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
 
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
 
#4 获取当前用户名称
user=`whoami`
 
#5 循环
for i in spark1 spark2 spark3
do
        #echo $pdir/$fname $user@hadoop$host:$pdir
        echo --------------- $i ----------------
        rsync -rvl $pdir/$fname $user@$i:$pdir
done

并把xsync设置为全局命令:

[root@spark1 bin]# ln -s /usr/local/datawork/bin/xsync /usr/bin/xsync 

2.2 安装JAVA 环境JDK

在华为资源站下载jdk-8u191-linux-x64.tar.gz,上传spark1虚拟机 /usr/java目录下,并解压:

[root@spark1 java]# ls
jdk1.8.0_191

配置环境变量:

vim /etc/profile
#添加如下内容
export JAVA_HOME=/usr/java/jdk1.8.0_191
export JRE_HOME=/usr/java/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=.:$JAVA_HOME/bin:$PATH

使用source命令生效

source /etc/profile

查看Java环境变量配置是否成功:

[root@spark1 ~]# java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
``
`
到此jdk已经安装成功。
其他两台虚拟机可以按照上述方式安装,也可以使用快捷方式,通过以下命令同步这两台虚拟机

```java
 rsync -av /usr/java/jdk1.8.0_191 spark2:/usr/java/jdk1.8.0_191
 rsync -av /usr/java/jdk1.8.0_191 spark3:/usr/java/jdk1.8.0_191
 rsync -av /etc/profile spark2:/etc/profile
 rsync -av /etc/profile spark3:/etc/profile

然后分别在另外两台虚拟机上执行source命令,使配置文件生效。

2.3 hadoop安装

在华为资源站下载压缩包,上传spark1虚拟机 /usr/local/datawork目录下
并解压后:

配置环境变量

vim /etc/profile
#添加如下内容
export HADOOP_HOME=/usr/local/datawork/hadoop-2.8.5
export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$PATH

使用source命令生效

source /etc/profile

2.3.1 配置 hadoop

进入hadoop文件夹查看目录:

etc目录存放配置文件
sbin目录下存放服务的启动命令
share目录下存放jar包与文档

  • (1) 配置hdfs-site.xml
vi etc/hadoop/hdfs-site.xml
<configuration>
    <property>
       <name>dfs.name.dir</name>
       <value>/home/data/namenode</value>
    </property>
    <property>
       <name>dfs.data.dir</name>
       <value>/home/data/datanode</value>
    </property>
    <property>
       <name>dfs.tmp.dir</name>
       <value>/home/data/tmp</value>
    </property>

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>  
        <name>dfs.webhdfs.enabled</name>  
        <value>true</value>  
    </property>  
</configuration>

  • (2) 配置core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://spark1:8020</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
</configuration>
  • (3) 配置mapred-env.sh
 `#添加
export JAVA_HOME=/usr/java/jdk1.8.0_191
  • (4) 配置yarn-env.sh
 `#添加
export JAVA_HOME=/usr/java/jdk1.8.0_191
  • (5) 配置yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->

  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
  </property>
  <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>spark1</value>
  </property>
</configuration>
  • (6) 配置mapred-site.xml,如果没有就拷贝mapred-site.xml.template然后重命名为mapred-site.xml
<configuration>
   <property>
      <name>mapreduce.jobhistory.address</name>
      <value>spark1:10020</value>
   </property>
   <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>spark1:19888</value>
   </property>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

配置从节点的主机名,前面配置host的时候已经ip和hostname做了映射就可以使用hostname,如果没有就需要写对应的ip

vi etc/hadoop/slaves

[root@spark1 hadoop]# cat slaves 
spark1
spark2
spark3

同理我们也可以通过命令去同步另外两台虚拟机,减少安装hadoop时间

rsync -av /usr/local/datawork/hadoop-2.8.5 spark2:/usr/local/datawork/
rsync -av /usr/local/datawork/hadoop-2.8.5 spark3:/usr/local/datawork/
rsync -av /etc/profile spark2:/etc/profile
rsync -av /etc/profile spark3:/etc/profile

然后分别在两台虚拟机上执行source命令,使得环境变量有效。

2.4 启动hadoop集群

启动hdfs,首次启动需格式化hdfs。

[root@spark1 ~]# hdfs namenode -format

格式化完毕后可以使用以下命令开启集群.

[root@spark1~]# start-all.sh

启动完后,执行jps查看执行情况
主节点(spark1):

[root@spark1~]# jps
9814 Jps
4374 SecondaryNameNode
3176 NameNode
3545 ResourceManager
3645 NodeManager

从节点(spark2):

[root@spark2~]# jps
2933 NodeManager
5062 DataNode
7784 Jps

从节点(spark3):

[root@spark2 ~]# jps
5020 DataNode
7629 Jps
2926 NodeManager

到此集群已搭建成功,接着继续看一下控制台的一些情况
输入http://192.168.239.128:50070/,查看hdfs运行情况:

输入http://192.168.239.128:8088查看YARN运行情况

hadoop完全分布式集群搭建(超详细)-大数据集群搭建(代码片段)

hadoop完全分布式集群搭建本次搭建完全分布式集群用到的环境有:jdk1.8.0hadoop-2.7.7本次搭建集群所需环境也给大家准备了,下载链接地址:https://share.weiyun.com/dk7WgaVk密码:553ubk本次完全分布式集群搭建需要提前建... 查看详情

大数据技术——hadoop3.x入门搭建+安装调优(1.入门)(代码片段)

...op运行模式4.1本地运行模式(官方WordCount)4.2完全分布式运行模式(开发重点& 查看详情

大数据系列——hadoop集群完全分布式坏境搭建

...8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本篇的正题。技术准备VMware虚拟机、CentOS6.864bit安装流程我们先来回顾上一篇我们完成的单节点的Hadoop环境配置,已经配置了一个CentOS6... 查看详情

大数据分析师实操练习(hadoop完全分布式集群搭建)(代码片段)

参考自:大数据技能竞赛之hadoop完全分布式集群搭建(三)练习内容:安装并配置Hadoop相关环境;相关配置文件,并确定master为namenode,slave1和slave2为datanode;配置Yarn运行环境;设置Yarn核心参数... 查看详情

大数据|hadoop集群搭建(完全分布式)(代码片段)

...天,推翻重做两小时进行搭建的Hadoop集群(完全分布式)个人笔记和感想,收录于初心的《大数据》专栏。🏠个人主页:初心%个人主页🧑个人简介:大家好,我是初心,一名正在努力的双... 查看详情

大数据技术栈-hadoop3.3.4-完全分布式集群搭建部署-centos7(完全超详细-小白注释版)虚拟机安装+平台部署(代码片段)

目录环境条件:1、安装虚拟机(已安装好虚拟机的可跳转至 一、安装jdk与hadoop)(1)直接新建一台虚拟机(2)首次启用虚拟机,进行安装一、集群前置环境搭建(三台机器分别设置hostname、... 查看详情

大数据☀️搞定hadoop集群☀️hadoop运行模式-完全分布式(代码片段)

目录 三大模式:完全分布式搭建:分析:编写集群分发脚本xsync:1.scp(securecopy)安全拷贝:2.rsync远程同步工具:3.xsync集群分发脚本:SSH无密登录配置:配置SSH:1.基本语法:2.ssh... 查看详情

linux企业运维——hadoop大数据平台(上)hadoop工作原理部署资源管理器yarn(代码片段)

...1.2、Hadoop工作原理二、Hadoop工作模式2.1、hadoop部署2.2、伪分布式2.3、完全分布式三、资源管理器YARN一、Hadoop简介1.1、Hadoop框架与模块Hadoop名字不是一个缩写,是Hadoop之父DougCutting儿子毛绒玩具象命名的。Hadoop起源于Google的三... 查看详情

大数据集群环境搭建(代码片段)

目录1.设计一个规模合适的集群1.1.资源预估1.2.选择服务器1.3.分配集群角色2.部署和管理集群的工具2.1.Hadoop的发展历程2.2.部署和管理Hadoop的集群并不简单2.3.三种工具的部署方式3.自动创建虚拟机3.1.什么是Vagrant3.2.安装Vagrant和概... 查看详情

大数据平台环境搭建(代码片段)

...器导入和导出容器容器与主机之间复制文件二、Hadoop完全分布式安装配置1.修改IP和MAC地址2.修改主机名3.设置IP和域名映射4.关闭防火墙5.关闭SELINUX6.免密登录7.时钟同步8.JDK安装9.HADOOP安装10.HADOOP官方文档三、Mysql安装配置1.卸载系... 查看详情

hadoop集群完全分布式搭建教程-centos(代码片段)

    本篇在前一篇《Hadoop单机模式和伪分布式搭建教程》的基础上完成完全分布式的搭建,所以本篇的前提是已经按照之前的教程完成了伪分布式的安装。注意截图中的slaver应该是slave,哈哈,搭建的时候多打了r... 查看详情

hadoop完全分布式搭建(代码片段)

集群配置可以将服务分别去配置在多台服务器上面以hadoop105,hadoop106,Hadoop107为案例组件hadoop105hadoop106hadoop107HDFSNameNode、DataNodeDataNodeSecondaryNameNode、DataNodeYARNNodeManagerResourceManager、NodeManagerNodeM 查看详情

hadoop完全分布式集群搭建(代码片段)

Hadoop完全分布式三节点集群搭建0、准备工作版本选型:系统名称版本centos7.9java1.8.0_291mysql8.0.23Hadoop2.7.7Hive2.3.7硬件规划:组件10.0.7.110.0.7.210.0.7.3JavaYYYMySqlServer+ClientNNHiveClientNNHadoop-YARNNodeManagerResourceManager+NodeManagerNodeM... 查看详情

linux企业运维——hadoop大数据平台(上)hadoop工作原理部署资源管理器yarn(代码片段)

...1.2、Hadoop工作原理二、Hadoop工作模式2.1、hadoop部署2.2、伪分布式2 查看详情

hadoop完全分布式集群搭建centos6.5(保姆级教程)(代码片段)

Hadoop完全分布式搭建环境:使用的是centos6.5hadoop-3.3.0,jdk版本推荐使用Jdk-1.8.0_202否则容易出现版本不兼容准备三台主机:HadoopMaster,HadoopSlave1,HadoopSlave2!!注:除了一些系统文件用root用户编辑外,其他... 查看详情

大数据3.1hadoop本地运行(代码片段)

...doop.apache.org/2)Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。伪分布式模式:也是单机运行,但是具备Hadoop集 查看详情

hadoop完全分布式集群搭建(代码片段)

Hadoop完全分布式三节点集群搭建0、准备工作版本选型:系统名称版本centos7.9java1.8.0_291mysql8.0.23Hadoop2.7.7Hive2.3.7硬件规划:组件10.0.7.110.0.7.210.0.7.3JavaYYYMySqlServer+ClientNNHiveClientNNHadoop-YARNNodeManagerRe 查看详情

大数据运维docker搭建分布式图数据库nebula(代码片段)

...脚丫先生(o^^o)最近在做数据融合分析平台。需要搭建一个分布式图数据库,第一想法就是面向百度和官网搜索,但是大多数只看到单节点搭建,分布式搭建都是基于k8s。自己不想那么把项目搞这么重,于是考利用d... 查看详情