Hadoop部署的基础设施操作详解

目录
  • 官网导读
  • 基础设施
    • 设置IP及主机名
    • 关闭防火墙&selinux
    • 设置hosts映射
    • 时间同步
    • 安装jdk
    • 设置SSH免秘钥
  • 结论

官网导读

hadoop.apache.org/docs/r2.6.5…

  • 支持最好的平台:GNU/Linux
  • 依赖的软件:
    • Java™ must be installed. Recommended Java versions are described at HadoopJavaVersions.Hadoop基于Java开发,Java的移动性好
    • ssh must be installed and sshd must be running to use the Hadoop scripts that manage remote Hadoop daemons.
  • 部署模式:
    • Local (Standalone) Mode 单机模式,主要用于debug
    • Pseudo-Distributed Mode 伪分布式,单节点多角色
    • Fully-Distributed Mode 完全分布式,多节点多角色

基础设施

操作系统、环境、网络、必须软件

  • 设置IP及主机名
  • 关闭防火墙&selinux
  • 设置hosts映射
  • 时间同步
  • 安装jdk
  • 设置SSH免秘钥

设置IP及主机名

可以正常联网查看IP

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.118  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::3db1:f589:4820:5457  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:18:10:17  txqueuelen 1000  (Ethernet)
        RX packets 462062  bytes 670399544 (639.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 166351  bytes 11096211 (10.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 84  bytes 13940 (13.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 84  bytes 13940 (13.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:5a:69:e1  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
// 配置
DEVICE=eth0
#HWADDR=00:0C:29:42:15:C2
TYPE=Ethernet
ONBOOT=yes
NM_TROLLED=yes
BOOTPROTO=static
IPADDR=192.168.150.11
NETMASK=255.255.255.0
GATEWAY=192.168.150.2
DNS1=223.5.5.5
DNS2=114.114.114.114

修改配置文件设置主机名

[root@localhost ~]# vi /etc/sysconfig/network
// 设置主机名并保存退出
HOSTNAME=node01

关闭防火墙&selinux

//关闭防火墙
[root@localhost ~]# systemctl stop firewalld
//关闭开机启动防火墙
[root@localhost ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]#
[root@localhost ~]# vi /etc/selinux/config
//将配置文件中的SELINUX设置为disabled
SELINUX=disabled

设置hosts映射

增加映射关系,因为在现在搭建环境的时候,一般会做解耦,不会再软件配置文件中写ip地址,主要使用主机名,就和dns解析一样,避免ip改变时要修改很多配置文件

[root@localhost ~]# vi /etc/hosts
// 增加映射关系
192.168.0.118 node01
192.168.0.119 node02

时间同步

所有节点时间需同步一致,不然未来做心跳的时候会有问题

[root@localhost ~]# date
Fri Dec 30 22:23:45 CST 2022
// 安装ntp
[root@localhost ~]# yum install ntp -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Package ntp-4.2.6p5-29.el7.centos.2.x86_64 already installed and latest version
Nothing to do
[root@localhost ~]# vi /etc/ntp.conf
// 增加配置
server ntp1.aliyun.com
// 启动ntpd
[root@localhost ~]# systemctl start ntpd.service
// 配置开机启动ntpd
[root@localhost ~]# systemctl enable ntpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@localhost ~]#

安装jdk

设置环境变量的时候要记得设置两次,一次在安装jdk的时候设置,一次在搭建Hadoop的时候设置

去官网下载jdk,最好是rpm包,然后上传到服务器节点中(使用jdk压缩包解压安装需要做很多其他的配置)

这里使用过windows下载,通过scp命令上传到118节点中

F:\workspace\demo>scp C:\Users\43866\Downloads\jdk-8u351-linux-x64.rpm root@192.168.0.118:/usr/jdk
root@192.168.0.118's password:
jdk-8u351-linux-aarch64.rpm                                                                                           100%   59MB  70.1MB/s   00:00
F:\workspace\demo>

在118节点中使用命令安装jdk

[root@node01 jdk]# rpm -i jdk-8u351-linux-x64.rpm
warning: jdk-8u351-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...
[root@node01 jdk]#

设置JAVA_HOME环境变量

[root@node01 default]# vi /etc/profile
// 追加环境变量并保存文件
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin

设置SSH免秘钥

想要使用Hadoop脚本就必须设置ssh免密

1、检查是否已设置ssh免密

[root@node01 default]# ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:rDsunaro1f5LyKkEeNohXfDD9oEglNXtviD/JZtA1dw.
ECDSA key fingerprint is MD5:51:38:8d:fc:e4:d2:c7:ce:66:09:c8:f2:e6:9e:a7:f2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
root@localhost's password:

通过ssh localhost命令检查发现需要输入密码,说明还未设置ssh免密,而且还可以自动生成.ssh文件,这个文件要创建的话比较麻烦

2、生成秘钥和公钥

如果118节点想免密登录到118节点(自己):

118节点就要生成公钥和秘钥,且将公钥放到 ~/.ssh/authorized_keys中

[root@node01 .ssh]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
Generating public/private dsa key pair.
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:GHhKB7GeoYYlNPWJpCZ+VoABUyIgDbdYrjjyAdgui1k root@node01
The key's randomart image is:
+---[DSA 1024]----+
|@BB+o.           |
|=X=.++.          |
|*o=.=++          |
|=B +.* o         |
|B.Eo+ . S        |
|oOo.             |
|+ .              |
|                 |
|                 |
+----[SHA256]-----+
[root@node01 .ssh]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[root@node01 .ssh]#
[root@node01 .ssh]# ssh 192.168.0.118
Last login: Sat Dec 31 13:52:49 2022 from 192.168.0.117
[root@node01 ~]#

结论

119节点包含了118节点的公钥,118就可以免密登录

以上就是Hadoop部署的基础设施操作详解的详细内容,更多关于Hadoop部署基础操作的资料请关注我们其它相关文章!

(0)

相关推荐

  • ol7.7安装部署4节点hadoop 3.2.1分布式集群学习环境的详细教程

    准备4台虚拟机,安装好ol7.7,分配固定ip192.168.168.11 12 13 14,其中192.168.168.11作为master,其他3个作为slave,主节点也同时作为namenode的同时也是datanode,192.168.168.14作为datanode的同时也作为secondary namenodes 首先修改/etc/hostname将主机名改为master.slave1.slave2.slave3 然后修改/etc/hosts文件添加 192.168.168.11 m

  • 使用docker部署hadoop集群的详细教程

    最近要在公司里搭建一个hadoop测试集群,于是采用docker来快速部署hadoop集群. 0. 写在前面 网上也已经有很多教程了,但是其中都有不少坑,在此记录一下自己安装的过程. 目标:使用docker搭建一个一主两从三台机器的hadoop2.7.7版本的集群 准备: 首先要有一台内存8G以上的centos7机器,我用的是阿里云主机. 其次将jdk和hadoop包上传到服务器中. 我安装的是hadoop2.7.7.包给大家准备好了,链接:https://pan.baidu.com/s/15n

  • docker搭建Hadoop CDH高可用集群实现

    目录 0. docker安装 1. 构建Centos-cdh镜像 2. 容器安装ClouderaManager 2.1 初始化环境 2.2 配置中文环境变量 2.3 设置NTP时间同步服务 2.4 安装mysql 2.5 准备Cloudera-Manager安装包 2.6 安装jdk 2.7 启动前准备 3. 配置CDH的worker节点 3.1 创建多个worker容器 3.2 环境配置 4. CM管理平台创建CDH集群 4.1 登陆CM管理平台 首先我们为了之后继续搭建软件,这里没有使用do

  • 最新hadoop安装教程及hadoop的命令使用(亲测可用)

    目录 01 引言 02 hadoop 安装 2.1 下载与安装 2.2 hadoop配置 2.3 免登陆配置 2.4 配置环境变量 2.5 配置域名 2.6 启动 03 相关命令 3.1 yarn相关命令 3.2 hdfs相关命令 04 一次填完所有的坑 01 引言 最近安装hadoop-2.7.7 版本的时候遇到了很多坑,本文来详细讲解如何安装和解决遇到的问题. 02 hadoop 安装 2.1 下载与安装 Step1: 下载 百度网盘下载 链接: https://pan.baidu.com/

  • 教你在k8s上部署HADOOP-3.2.2(HDFS)的方法

    环境+版本k8s: v1.21.1hadoop: 3.2.2 dockerfile FROM openjdk:8-jdk # 如果要通过ssh连接容器内部,添加自己的公钥(非必须) ARG SSH_PUB='ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3nTRJ/aVb67l1xMaN36jmIbabU7Hiv/xpZ8bwLVvNO3Bj7kUzYTp7DIbPcHQg4d6EsPC6j91E8zW6CrV2fo2Ai8tDO/rCq9Se/64F3+8oEI

  • Hadoop+HBase+ZooKeeper分布式集群环境搭建步骤

    目录 一.环境说明 2.1 安装JDK 2.2 添加Hosts映射关系 2.3 集群之间SSH无密码登陆 三.Hadoop集群安装配置 3.1 修改hadoop配置 3.2 启动hadoop集群 四.ZooKeeper集群安装配置 4.1 修改配置文件zoo.cfg 4.2 新建并编辑myid文件 4.3 启动ZooKeeper集群 五.HBase集群安装配置 5.1 hbase-env.sh 5.2 hbase-site.xml 5.3 更改 regionservers 5.4 分发并同步安装

  • Hadoop部署的基础设施操作详解

    目录 官网导读 基础设施 设置IP及主机名 关闭防火墙&selinux 设置hosts映射 时间同步 安装jdk 设置SSH免秘钥 结论 官网导读 hadoop.apache.org/docs/r2.6.5… 支持最好的平台:GNU/Linux 依赖的软件: Java™ must be installed. Recommended Java versions are described at HadoopJavaVersions.Hadoop基于Java开发,Java的移动性好 ssh must

  • centos 7 部署Thinksns的思路详解

    因为Thinksns是PHP项目,我们这里部署需要搭建Apache+mysql+php环境. 1.mysql的安装,这里使用yum安装可以解决很多依赖包的问题.由于centos 7 没有自带mysql的yum源,所以不能直接安装,需要创建yum安装详细教程如下: http://www.cnblogs.com/SoEasyO-O/p/7068156.html 添加好yum源之后运行如下命令: yum install mysql-community-server 根据系统提示下载并安装mysql.

  • hadoop迁移数据应用实例详解

    项目开发中hadoop一直装在虚拟机上,最近要迁移到服务器上.记录下迁移过程. 一.为虚拟机添加一块新的硬盘 虚拟机的初始硬盘只有30G,容不开要导出的数据.两种方式,一是给虚拟机扩容:二是为虚拟机添加一块新的硬盘.这里采取第二种方式. 1.添加虚拟硬盘 至此,添加硬盘成功. 2.将硬盘分区 要使用一块新的硬盘,需要先将硬盘分区,然后挂在文件系统上才能使用. 这里普及一下linux的文件系统与硬盘以及分区的关系.按照一个"由硬到软"的顺序来讲,首先是硬盘,是物理的:我们要使用这个物理硬

  • python使用hdfs3模块对hdfs进行操作详解

    之前一直使用hdfs的命令进行hdfs操作,比如: hdfs dfs -ls /user/spark/ hdfs dfs -get /user/spark/a.txt /home/spark/a.txt #从HDFS获取数据到本地 hdfs dfs -put -f /home/spark/a.txt /user/spark/a.txt #从本地覆盖式上传 hdfs dfs -mkdir -p /user/spark/home/datetime=20180817/ .... 身为一个python程

  • Hadoop上Data Locality的详解

    Hadoop上Data Locality的详解 Hadoop上的Data Locality是指数据与Mapper任务运行时数据的距离接近程度(Data Locality in Hadoop refers to the"proximity" of the data with respect to the Mapper tasks working on the data.) 1. why data locality is imporant? 当数据集存储在HDFS中时,它被划分为块并存储在

  • MySQL操作之JSON数据类型操作详解

    上一篇文章我们介绍了mysql数据存储过程参数实例详解,今天我们看看MySQL操作之JSON数据类型的相关内容. 概述 mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点.但mysql毕竟是关系型数据库,在处理json这种非结构化的数据时,还是比较别扭的. 创建一个JSON字段的表 首先先创建一个表,这个表包含一个json格式的字段: CREATE TABLE table_name ( id INT NOT NULL

  • django 常用orm操作详解

    Django流程: 1 创建Django项目 : django-admin startproject projectname 2 创建应用: : python manage.py startapp appname 3 在控制器(urls.py)创建 url 与 视图函数的映射关系(一一对应) 4 创建视图函数,完成逻辑代码 5 从数据库取出集合对象 5 把数据库变量嵌入到模板进行渲染(render方法) 6 将渲染后的html页面返回给客户端 URL:协议+域名+端口+路径 协议:http 域名

  • .Net Core 之 Ubuntu 14.04 部署过程(图文详解)

    本篇文章主要介绍了.Net Core 之 Ubuntu 14.04 部署过程(图文详解) No.1 准备应用程序 1. 创建.Net Core Web项目 2. 使用VS2015发布 No.2 安装.Net Core for Ubuntu Ubuntu的安装就不介绍了.本人用的VMWare,装好Tools很方便. 具体安装步骤请参照:http://www.jb51.net/os/248849.html 1. 添加dotnet源 sudo sh -c 'echo "deb [arch=amd64]

  • Android 文件操作详解及简单实例

     Android 文件操作详解 Android 的文件操作说白了就是Java的文件操作的处理.所以如果对Java的io文件操作比较熟悉的话,android的文件操作就是小菜一碟了.好了,话不多说,开始今天的正题吧. 先从一个小项目入门吧 首先是一个布局文件,这一点比较的简单,那就直接上代码吧. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="htt

  • jQuery中的select操作详解

    下面给大介绍了jquery对select的操作介绍,非常不错,具有内容介绍如下所示: select的html标签如下: <select class="xxx" id="yyy"><option></option>...<option></option></select> 1.设置value为"lll"的option选中 $('#yyy').val("lll"

随机推荐