hadoop集群安装及配置详细

本文档详细介绍了在Linux环境下配置Hadoop集群的步骤,包括虚拟机配置、克隆、SSH无密登录配置、JDK安装、Hadoop安装及环境变量设置,并提供了相关命令和配置文件修改示例。同时,强调了在企业环境中防火墙的关闭和IP、主机名的正确配置。整个过程旨在确保集群能够稳定运行并实现节点间的无密登录。
摘要由CSDN通过智能技术生成

1)master虚拟机配置要求如下(本文Linux系统全部以CentOS-7.5-x86-1804为例)

(1)使用yum安装需要虚拟机可以正常上网,yum安装前可以先测试下虚拟机联网情况

[root@master ~]# ping www.baidu.com

PING www.baidu.com (14.215.177.39) 56(84) bytes of data.

64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=8.60 ms

64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=7.72 ms

(2)安装epel-release

注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方 repository 中是找不到的)

[root@hadoop100 ~]# yum install -y epel-release

如果存在后台进程 使用kill -9 杀死

例如 kill -9 3144

2)关闭防火墙,关闭防火墙开机自启

[root@master ~]# systemctl stop firewalld

[root@master ~]# systemctl disable firewalld.service

注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙

5)在目录下创建文件夹,并修改所属主和所属组

(1)在/opt目录下创建文件夹

mkdir -p /export/server/    #软件安装路径

mkdir -p /export/data/      #数据存储路径

mkdir -p /export/software/  #安装包存放路径

6)卸载虚拟机自带的JDK

       注意:如果你的虚拟机是最小化安装不需要执行这一步。

[root@master ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

  • rpm -qa:查询所安装的所有rpm软件包
  • grep -i:忽略大小写
  • xargs -n1:表示每次只传递一个参数
  • rpm -e –nodeps:强制卸载软件

7)重启虚拟机

[root@master ~]# reboot

2.2 克隆虚拟机

1)利用模板机master,克隆三台虚拟机:master slave1 slave2

       注意:克隆时,要先关闭master

2)修改克隆机IP,以下以master举例说明

(1)修改克隆虚拟机的静态IP

切换root用户

[root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

改成

DEVICE=ens33

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=static

NAME="ens33"

IPADDR=192.168.10.102

PREFIX=24

GATEWAY=192.168.10.2

DNS1=192.168.10.2

(2)查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8

(3)查看Windows系统适配器VMware Network Adapter VMnet8的IP地址

(4)保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。

3)修改克隆机主机名,以下以master举例说明

       1)修改主机名称

[root@master ~]# vim /etc/hostname

master

2)配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts

[root@master ~]# vim /etc/hosts

添加如下内容

master slave2 slvae2

4)重启克隆机master

[root@msater ~]# reboot

5)修改windows的主机映射文件(hosts文件)

1)如果操作系统是window7,可以直接修改

       (a)进入C:\Windows\System32\drivers\etc路径

       (b)打开hosts文件并添加如下内容,然后保存

192.168.10.100  master

192.168.10.101  slave1

192.168.10.102  slave2

(2)如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可(如果有 ,可能是上一次存在的。记得更改ip要不然连不上)

(a)进入C:\Windows\System32\drivers\etc路径

(b)拷贝hosts文件到桌面

(c)打开桌面hosts文件并添加如下内容

192.168.10.100 master

192.168.10.101 slave1

192.168.10.102 slave2

(d)将桌面hosts文件覆盖C:\Windows\System32\drivers\etc路径hosts文件

3.2.3 SSH无密登录配置

可以使用ls –al来查看所有隐藏的文件

1)配置ssh

(1)基本语法

ssh另一台电脑的IP地址

(2)ssh连接时出现Host key verification failed的解决方法

[atguigu@hadoop102 ~]$ ssh hadoop103

  • 如果出现如下内容

Are you sure you want to continue connecting (yes/no)?

  • 输入yes,并回车

(3)退回到hadoop102

[atguigu@hadoop103 ~]$ exit

2)无密钥配置

(2)生成公钥和私钥

进入.ssh目录(只要访问一下就可以出现该目录 例如从master访问ssh slave1)

cd .ssh/

[atguigu@hadoop102 .ssh]$ pwd

/home/atguigu/.ssh

[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

(3)将公钥拷贝到要免密登录的目标机器上

[atguigu@hadoop102 .ssh]$ ssh-copy-id master

[atguigu@hadoop102 .ssh]$ ssh-copy-id slave1

[atguigu@hadoop102 .ssh]$ ssh-copy-id slave2

注意:(最后结束可以使用ssh 加主机名来试一下能不能免密登陆exit退出

还需要在hadoop103上采用atguigu账号配置一下无密登录到hadoop102hadoop103hadoop104服务器上。(重复上述操作)

还需要在hadoop104上采用atguigu账号配置一下无密登录到hadoop102hadoop103hadoop104服务器上。

还需要在hadoop102上采用root账号,配 下无密登录到hadoop102hadoop103hadoop104(上面只是在long界面下的配置,在root权限下如果想也要配置)

3).ssh文件夹下(~/.ssh)的文件功能解释

known_hosts

记录ssh访问过计算机的公钥(public key)

id_rsa

生成的私钥

id_rsa.pub

生成的公钥

authorized_keys

存放授权过的无密登录服务器公钥

2.3 在hadoop102安装JDK

1)卸载现有JDK

注意:安装JDK前,一定确保提前删除了虚拟机自带的JDK详细步骤见问文档3.1节中卸载JDK步骤。

2)用XShell传输工具将JDK导入到export目录下面的software文件夹下面

3)在Linux系统下的opt目录中查看软件包是否导入成功

[atguigu@hadoop102 ~]$ ls /export/software/

看到如下结果:

jdk-8u212-linux-x64.tar.gz

4)解压JDK到/export/server目录下

先切换到software    

       Cd  /export/software

[atguigu@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /export/server

5)配置JDK环境变量

       (1)新建/et#c/profile文件

[atguigu@hadoop102 ~]$  vim /etc/profile

添加如下内容

export JAVA_HOME=/export/server/jdk1.8.0_212

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

       (2)保存后退出

:wq

       (3)source一下/etc/profile文件,让新的环境变量PATH生效

[atguigu@hadoop102 ~]$ source /etc/profile

6)测试JDK是否安装成功

[atguigu@hadoop102 ~]$ java -version

如果能看到以下结果,则代表Java安装成功。

java version "1.8.0_212"

注意:重启(如果java -version可以用就不用重启)

[atguigu@hadoop102 ~]$ sudo reboot

2.4 在hadoop102安装Hadoop

Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

1)用XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹下面

2)进入到Hadoop安装包路径下

[atguigu@hadoop102 ~]$ cd /export/software/

3)解压安装文件到/opt/module下面

[atguigu@hadoop102 software]$   tar -zxvf hadoop-3.3.1.tar.gz -C /export/server/

4)查看是否解压成功

[atguigu@hadoop102 software]$ ls /export/server/

hadoop-3.1.3

5编辑hadoop配置文件

1)

cd /export/server/hadoop-3.3.1/etc/hadoop/

查看jdk的路径

 

大概在56行添加

用这个

在文件末尾添加(esc 然后shiftgi

2) cd /export/server/hadoop-3.3.1/etc/hadoop/

     vim core-site.xml

可以进行手动查看 cat core-site.xml

   

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>
    <!-- hadoop本地数据存储目录 format时自动生成 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/data/hadoop-3.3.1</value>
    </property>
    <!-- 在Web UI访问HDFS使用的用户名。-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>

3) - hdfs-site.xml

cd /export/server/hadoop-3.1.4/etc/hadoop/

     vim hdfs-site.xml

<!-- 设定SNN运行主机和端口。-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave1:9868</value>
</property>

4)

cd /export/server/hadoop-3.1.4/etc/hadoop/

     vim mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<!-- MR App Master环境变量。-->
<property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR MapTask环境变量。-->
<property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask环境变量。-->
<property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

5) cd /export/server/hadoop-3.1.4/etc/hadoop/

     vim yarn-site.xml

<property>

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

    <value>slave1</value>

</property>

<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行

MR程序。-->

<property>

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

    <value>mapreduce_shuffle</value>

</property>

<!-- 每个容器请求的最小内存资源(以MB为单位)。-->

<property>

    <name>yarn.scheduler.minimum-allocation-mb</name>

    <value>512</value>

</property>

<!-- 每个容器请求的最大内存资源(以MB为单位)。-->

<property>

    <name>yarn.scheduler.maximum-allocation-mb</name>

    <value>2048</value>

</property>

<!-- 容器虚拟内存与物理内存之间的比率。-->

<property>

    <name>yarn.nodemanager.vmem-pmem-ratio</name>

    <value>4</value>

</property>

6) cd /export/server/hadoop-3.3.1/etc/hadoop/

     vim workers

7. 分发同步安装包

master机器上将Hadoop安装包scp同步到其他机器

     切换cd /export/server/

      scp -r hadoop-3.3.1 root@slave1:/export/server/

      scp -r hadoop-3.3.1 root@slave2:/export/server/

5)将Hadoop添加到环境变量

       (1)获取Hadoop安装路径

       先进入

a

[atguigu@hadoop102 hadoop-3.1.3]$ pwd

/export/server/hadoop-3.3.1     

(2)打开/etc/profile文件

[atguigu@hadoop102 hadoop-3.1.3]$  vim /etc/profile

  • 在文件末尾添加如下内容:(shift+g)

#HADOOP_HOME

export HADOOP_HOME=/export/server/hadoop-3.3.1

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

  • 保存并退出: :

       (3)让修改后的文件生效

[atguigu@hadoop102 hadoop-3.1.3]$ source /etc/profile

6)测试是否安装成功

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop version

  1. Hadoop 3.1.3将修改后的环境变量同步其他机器

使用root用户

     scp /etc/profile root@slave1:/etc/

     scp /etc/profile root@slave2:/etc/

在slave1下查看cat /etc/profile

(a)在master上,将maSter中/opt/module/jdk1.8.0_212目录拷贝到slave1上。(给数据)

[root@hadoop102 ~]$scp -r /export/server/jdk1.8.0_212      root@slave1:/export/server

3)让其他两台机器修改后的文件生效分别在两台机器

source /etc/profile

2)启动集群

       (初始化)(1)如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNodeDataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenodedatanode进程,并且要删除所有机器的datalogs目录,然后再进行格式化。)::-y

[atguigu@hadoop102 hadoop-3.1.3]$ hdfs namenode -format

2)启动HDFS

[atguigu@hadoop102 hadoop-3.1.3]$ start-dfs.sh

启动YARN

记得切换机器到

[atguigu@hadoop103 hadoop-3.1.3]$ start-yarn.sh

3.2.8 集群启动/停止方式总结

1)各个模块分开启动/停止(配置ssh是前提)常用

       (1)整体启动/停止HDFS

start-dfs.sh/stop-dfs.sh

       (2)整体启动/停止YARN

start-yarn.sh/stop-yarn.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值