【Hadoop】大数据开发环境配置

news2024/11/25 16:35:25

【Hadoop】大数据开发环境配置

文章目录

  • 【Hadoop】大数据开发环境配置
    • 1 设置静态ip
    • 2 设置主机名
    • 3 关闭防火墙
    • 4 ssh免密码登录
    • 5 JDK配置
    • 6 hadoop安装并配置
      • 6.1 集群节点之间时间同步
      • 6.2 SSH免密码登录完善
      • 6.3 hadoop配置

1 设置静态ip

  • 进入ifcfg-ens33文件

    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
  • 先修改BOOTPROTO参数,将之前的dhcp改为static;

    BOOTPROTO="static"
    
  • IPADDR中192.168.152是取自虚拟机中虚拟网络编辑器中子网地址的值,最后的100是自定义的,这个值可以取3~254之间的任意一个数值;
    在这里插入图片描述

    IPADDR=192.168.152.100 
    
  • GATEWAYDNS1设置为网关IP;

    GATEWAY=192.168.152.2 
    DNS1=192.168.152.2
    

2 设置主机名

  1. 先设置临时主机名

    [root@bigdata01 ~]# hostname bigdata01 
    
  2. 设置永久主机名并生效

    [root@bigdata01 ~]# vi /etc/hostname 
    bigdata01
    [root@bigdata01 ~]# source /etc/hostname
    
  3. 验证主机名

    [root@bigdata01 ~]# hostname 
    bigdata01
    

3 关闭防火墙

因为在后面我们会使用到多台机器,如果不关闭防火墙,会遇到机器之间无法通信的场景。

  1. 临时关闭

    [root@bigdata01 ~]# systemctl stop firewalld 
    
  2. 永久关闭

    [root@bigdata01 ~]# systemctl disable firewalld
    
  3. 验证防火墙状态

    [root@bigdata01 ~]# systemctl list-unit-files | grep firewalld 
    firewalld.service 							disabled
    

4 ssh免密码登录

hadoop集群就会使用到ssh,我们在启动集群的时候只需要在一台机器上启动就行,然后hadoop会通过ssh连到其它机器,把其它机器上面对应的程序也启动起来,为了不用每次输入密码,所以现在需要实现ssh免密码登录。

  1. 生成密钥

    过程中连按四次回车不输入任何字符,执行以后会在~/.ssh目录下生产对应的公钥和秘钥文件。

    [root@bigdata01 ~]# ssh-keygen -t rsa
    [root@bigdata01 ~]# ll ~/.ssh/
    
  2. 把公钥拷贝到需要免密码登录的机器上面

    [root@bigdata01 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
  3. 验证免密登录

    [root@bigdata01 ~]# ssh bigdata01
    Last login: Tue Apr 7 15:05:55 2020 from 192.168.182.1
    

5 JDK配置

  1. 下载JDK安装包并传输到预安装目录(以/data/soft路径为例)

    JDK下载地址:https://www.oracle.com/java/technologies/downloads/

    [root@bigdata01 ~]# mkdir -p /data/soft
    [root@bigdata01 soft]# ll
    total 189496 -rw-r--r--. 1 root root 194042837 Apr 6 23:14 jdk-8u202-linux-x64.tar.gz
    
  2. 解压安装包

    [root@bigdata01 soft]# tar -zxvf jdk-8u202-linux-x64.tar.gz
    
  3. 配置环境变量

    在/etc/profile文件末尾添加如下代码。

    [root@bigdata01 soft]# vi /etc/profile
    .....
    export JAVA_HOME=/data/soft/jdk1.8 
    export PATH=.:$JAVA_HOME/bin:$PATH
    
    [root@bigdata01 soft]# source /etc/profile
    
  4. 验证

    [root@bigdata01 soft]# java -version 
    java version "1.8.0_202"
    Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
    Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
    

6 hadoop安装并配置

这篇博客中配置的环境包含三个虚拟机节点:

  • 192.168.152.100 bigdata01

  • 192.168.152.101 bigdata02

  • 192.168.152.102 bigdata03

其中bigdata01作为主节点(namenode),bigdata02和bigdata03作为从节点(datanode)。

6.1 集群节点之间时间同步

集群只要涉及到多个节点的就需要对这些节点做时间同步,如果节点之间时间不同步相差太多,会应该集群的稳定性,甚至导致集群出问题。使用ntpdate -u ntp.sjtu.edu.cn可以实现时间同步,但是执行的时候若提示不存在ntpdate命令则执行yum install -y ntpdate下载。我们将该命令添加到linux的crontab定时器中,使其每分钟同步一次时间:执行crontab -e命令后,写入* * * * * /usr/sbin/ntpdate -u ntp.sjtu.edu.cn即可。将上述操作在三个虚拟机中都执行一遍

[root@bigdata01 hadoop-3.3.5]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2023-06-15 09:47:16 CST; 12h ago
 Main PID: 6559 (crond)
   CGroup: /system.slice/crond.service
           └─6559 /usr/sbin/crond -n

Jun 15 09:47:16 bigdata01 systemd[1]: Started Command Scheduler.
Jun 15 09:47:16 bigdata01 crond[6559]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 34% if used.)
Jun 15 09:47:17 bigdata01 crond[6559]: (CRON) INFO (running with inotify support)
[root@bigdata01 hadoop-3.3.5]# crontab -l
no crontab for root
[root@bigdata01 hadoop-3.3.5]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@bigdata01 hadoop-3.3.5]# crontab -l
* * * * * /usr/sbin/ntpdate -u ntp.sjtu.edu.cn

6.2 SSH免密码登录完善

之前配置的免密码登录,只实现了自己免密码登录自己,最终需要实现主节点可以免密码登录到所有节点,所以还需要完善免密码登录操作。将公钥信息从主节点拷贝到两个从节点即可。

在bigdata01中执行:

[root@bigdata01 ~]# scp ~/.ssh/authorized_keys bigdata02:~/
[root@bigdata01 ~]# scp ~/.ssh/authorized_keys bigdata03:~/

在bigdata02中执行:

[root@bigdata02 ~]# cat ~/authorized_keys >> ~/.ssh/authorized_keys

在bigdata03中执行:

[root@bigdata03 ~]# cat ~/authorized_keys >> ~/.ssh/authorized_keys

在bigdata01节点验证效果:

[root@bigdata01 ~]# ssh bigdata02 Last login: Tue Apr 7 21:33:58 2020 from bigdata01 
[root@bigdata02 ~]# exit
logout 
Connection to bigdata02 closed. 
[root@bigdata01 ~]# ssh bigdata03 Last login: Tue Apr 7 21:17:30 2020 from 192.168.182.1 
[root@bigdata03 ~]# exit 
logout 
Connection to bigdata03 closed.

6.3 hadoop配置

  1. 在bigdata01虚拟机中,把hadoop的安装包上传到预安装目录(以/data/soft路径为例)

    [root@bigdata01 soft]# ll
    total 527024
    -rw-r--r--. 1 root root 345625475 Jul 19 2019 hadoop-3.2.0.tar.gz
    drwxr-xr-x. 7 10 143 245 Dec 16 2018 jdk1.8
    -rw-r--r--. 1 root root 194042837 Apr 6 23:14 jdk-8u202-linux-x64.tar.gz
    
  2. 在bigdata01虚拟机中,解压hadoop安装包

    hadoop目录下面有两个重要的目录,一个是bin目录,一个是sbin目录

    • bin目录:存放hdfs,yarn等脚本,后期用于操作hadoop集群中的hdfs和yarn组件;
    • sbin目录:存放以start和stop开头的脚本,负责启动或者停止集群中的组件。
    [root@bigdata01 soft]# tar -zxvf hadoop-3.2.0.tar.gz
    
  3. 在bigdata01、bigdata02、bigdata03虚拟机中,分别配置环境变量

    其中JAVA_HOME等相关配置是前文配置的JAVA环境变量,因此记得在三个节点也都安装java。

    [root@bigdata01 hadoop-3.2.0]# vi /etc/profile
    ....... 
    export JAVA_HOME=/data/soft/jdk1.8 
    export HADOOP_HOME=/data/soft/hadoop-3.2.0
    export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH
    [root@bigdata01 hadoop-3.2.0]# source /etc/profile
    
  4. 在bigdata01虚拟机中,修改Hadoop相关配置文件

    1. 进入配置文件所在目录(etc/hadoop/

      [root@bigdata01 hadoop-3.2.0]# cd etc/hadoop/ 
      [root@bigdata01 hadoop]#
      
    2. 修改hadoop-env.sh文件

      JAVA_HOME:指定java的安装位置
      HADOOP_LOG_DIR:hadoop的日志的存放目录

      ...
      export JAVA_HOME=/data/soft/jdk1.8
      export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
      
    3. 修改 core-site.xml 文件

      注意 fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致

      <configuration> 
      	<property> 
      		<name>fs.defaultFS</name>
      		<value>hdfs://bigdata01:9000</value> 
      	</property> 
      	<property> 
      		<name>hadoop.tmp.dir</name>
      		<value>/data/hadoop_repo</value> 
      	</property> 
      </configuration>
      
    4. 修改hdfs-site.xml文件

      把hdfs中文件副本的数量设置为2,因为现在分布集群中有两个从节点

      <configuration> 
      	<property>
      		<name>dfs.replication</name>
      		<value>2</value> 
      	</property> 
      </configuration>
      
    5. 修改mapred-site.xml文件

      设置mapreduce使用的资源调度框架

      <configuration> 
      	<property>
      		<name>mapreduce.framework.name</name> 
      		<value>yarn</value> 
      	</property>
      </configuration>
      
    6. 修改yarn-site.xml文件

      设置yarn上支持运行的服务和环境变量白名单,针对分布式集群在这个配置文件中还需要设置resourcemanager的hostname,否则nodemanager找不到resourcemanager节点。

      <configuration>
          <property>
      	    <name>yarn.nodemanager.aux-services</name>
          	<value>mapreduce_shuffle</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>
        <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>bigdata01</value>
        </property>
      </configuration>
      
    7. 修改workers文件

      设置集群中从节点的主机名信息

      bigdata02
      bigdata03
      
    8. 修改start-dfs.sh和stop-dfs.sh文件,将如下代码增添到该文件前面

      [root@bigdata01 hadoop-3.2.0]# cd sbin/ 
      [root@bigdata01 sbin]# vi start-dfs.sh 
      HDFS_DATANODE_USER=root 
      HDFS_DATANODE_SECURE_USER=hdfs 
      HDFS_NAMENODE_USER=root 
      HDFS_SECONDARYNAMENODE_USER=root
      [root@bigdata01 sbin]# vi stop-dfs.sh 
      HDFS_DATANODE_USER=root 
      HDFS_DATANODE_SECURE_USER=hdfs 
      HDFS_NAMENODE_USER=root 
      HDFS_SECONDARYNAMENODE_USER=root
      
    9. 修改start-yarn.sh和stop-yarn.sh文件,将如下代码增添到该文件前面

      [root@bigdata01 sbin]# vi start-yarn.sh
      YARN_RESOURCEMANAGER_USER=root
      HADOOP_SECURE_DN_USER=yarn
      YARN_NODEMANAGER_USER=root
      [root@bigdata01 sbin]# vi stop-yarn.sh
      YARN_RESOURCEMANAGER_USER=root
      HADOOP_SECURE_DN_USER=yarn
      YARN_NODEMANAGER_USER=root
      
    10. 把bigdata01节点上将修改好配置的安装包拷贝到其他两个从节点

      [root@bigdata01 sbin]# cd /data/soft/
      [root@bigdata01 soft]# scp -rq hadoop-3.2.0 bigdata02:/data/soft/ 
      [root@bigdata01 soft]# scp -rq hadoop-3.2.0 bigdata03:/data/soft/
      
    11. 仅在bigdata01中,格式化HDFS

      如果能看到successfully formatted这条信息就说明格式化成功了。如果提示错误,一般都是因为配置文件的问题,当然需要根据具体的报错信息去分析问题。

      注意:格式化操作只能执行一次,如果格式化的时候失败了,可以修改配置文件后再执行格式化,如果格式化成功了就不能再重复执行了,否则集群就会出现问题。如果确实需要重复执行,那么需要把/data/hadoop_repo目录中的内容全部删除,再执行格式化。

      [root@bigdata01 soft]# cd /data/soft/hadoop-3.2.0 
      [root@bigdata01 hadoop-3.2.0]# bin/hdfs namenode -format
      
  5. 启动集群,在bigdata01节点上执行下面命令

    [root@bigdata01 hadoop-3.3.5]# sbin/start-all.sh
    Starting namenodes on [bigdata01]
    Last login: Thu Jun 15 22:10:23 CST 2023 on pts/0
    Starting datanodes
    Last login: Thu Jun 15 23:31:46 CST 2023 on pts/0
    bigdata02: WARNING: /data/hadoop_repo/logs/hadoop does not exist. Creating.
    bigdata03: WARNING: /data/hadoop_repo/logs/hadoop does not exist. Creating.
    Starting secondary namenodes [bigdata01]
    Last login: Thu Jun 15 23:31:50 CST 2023 on pts/0
    Starting resourcemanager
    Last login: Thu Jun 15 23:31:54 CST 2023 on pts/0
    Starting nodemanagers
    Last login: Thu Jun 15 23:32:01 CST 2023 on pts/0
    You have new mail in /var/spool/mail/root
    
  6. 验证集群

    分别在3台机器上执行jps命令

    [root@bigdata01 hadoop-3.3.5]# jps
    26115 SecondaryNameNode
    25812 NameNode
    26372 ResourceManager
    26716 Jps
    
    [root@bigdata02 soft]# jps
    17120 NodeManager
    17251 Jps
    17022 DataNode
    
    [root@bigdata03 ~]# jps
    9556 Jps
    9401 NodeManager
    9294 DataNode
    
  7. 停止集群

    [root@bigdata01 hadoop-3.3.5]# sbin/stop-all.sh
    Stopping namenodes on [bigdata01]
    Last login: Thu Jun 15 23:32:04 CST 2023 on pts/0
    Stopping datanodes
    Last login: Thu Jun 15 23:38:39 CST 2023 on pts/0
    Stopping secondary namenodes [bigdata01]
    Last login: Thu Jun 15 23:38:41 CST 2023 on pts/0
    Stopping nodemanagers
    Last login: Thu Jun 15 23:38:43 CST 2023 on pts/0
    Stopping resourcemanager
    Last login: Thu Jun 15 23:38:47 CST 2023 on pts/0
    

至此,Hadoop大数据开发环境配置完毕!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/651833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA图形界面GUI

目录 一、窗口、窗格、按钮、标签 设置一个窗口JFrame 设置一个窗格JPanel和按钮JButton 设置一个标签JLabel 标准写法 二、监听器ActionListener 用内部类实现 用匿名内部类实现 用LAMADA表达式实现 三、文本域、复选框、下拉列表 JTextField单行文本域 JCheckBox复选…

智能算法终极大比拼,以CEC2017测试函数为例,十种智能算法直接打包带走,不含任何套路

包含人工蜂群(ABC)、灰狼(GWO)、差分进化(DE)、粒子群(PSO)、麻雀优化(SSA)、蜣螂优化(DBO)、白鲸优化(BWO)、遗传算法(GA)、粒子群算法(PSO)&#xff0c;基于反向动态学习的差分进化算法&#xff0c;共十种算法&#xff0c;直接一文全部搞定&#xff01; 其中基于反向动态学习…

Dalamud 插件开发白皮书 P1 - Getting started

文章目录 从哪里开始 How do I get started?Dalamud 插件例子Dalamud 底层探究XIVLauncher 启动器 在哪里寻找帮助 Where do I ask for help?如何热重载插件 How do I hot-reload my plugin?如何调试插件&#xff0c;甚至游戏&#xff1f;如何在编码过程中使用 How do I use…

国内几款强大的语言模型

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

STC15WProteus仿真红绿灯直行左右转紧急模式STC15W4K32S4-0041

STC15WProteus仿真红绿灯直行左右转紧急模式STC15W4K32S4-0041 Proteus仿真小实验&#xff1a; STC15WProteus仿真红绿灯直行左右转紧急模式STC15W4K32S4-0041 功能&#xff1a; 硬件组成&#xff1a;STC15W4K32S4单片机 2位数码管5个LED灯&#xff08;红 黄 ←绿 ↑绿 →绿…

《网络基础之socket理解》

【一】socket是什么 从字面上的意思来理解&#xff0c;这玩意的中文含义叫插座&#xff0c;对你想的没错&#xff0c;就是你家用来插电器的插座&#xff0c;只不过你家的插座是用来导电的&#xff0c;而网络里面的socket是用来传导信息的。 【二】网络socket传送数据流程 我们…

基于阻尼绕组起动同步电动机matlab完整程序分享

主要包含输出转速,感应转矩,磁场变化,感应电压,感应电流等6个参数变化曲线图!! 完整程序如下: clc; clear; close all; warning off; addpath(genpath(pwd)); %電機參數設定 r_stat_in=15;%stator內圈半徑 r_stat_out=17;%stator外圈半徑 width_rot=2;%rotor細部寬度 leng…

【瑞萨RA_FSP】DAC —— 输出正弦波

文章目录 一、DAC简介二、DAC的结构框图1. 参考电压2. 触发源3. DAC数据寄存器4. 转换的过程5. 同步转换 三、生成正弦波数据表四、DAC程序设计1. 硬件设计2. 软件设计①文件结构②FSP配置③DAC初始化函数④设置DAC输出电压函数⑤DAC输出正弦波⑥ hal_entry入口函数 一、DAC简介…

多用户商城软件有哪些开发方式?-加速度jsudo

电商时代之下&#xff0c;企业商家纷纷开始了b2b2c商城系统的搭建&#xff0c;以此来抢占电商市场&#xff0c;但由于大多企业商家并没有专业化的开发团队&#xff0c;所以大多会选择将网站建设外包给专业的商城系统开发公司&#xff0c;但就目前而言&#xff0c;b2b2c商城系统…

改进YOLOv8 | 损失函数篇 | YOLOv8 更换损失函数之 SIoU / EIoU / WIoU / Focal_xIoU 最全汇总版

文章目录 更换方式CIoUDIoUEIoUGIoUSIoUWIoUFocal_CIoUFocal_DIoUFocal_EIoUFocal_GIoUFocal_SIoU提示更换方式 第一步:将ultralytics/yolo/utils/metrics.py文件中的bbox_iou替换为如下的代码:class

基于微信小程序的云音乐管理系统+第三稿+文档

博主介绍&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 基于微信小程序的云音乐管理系统第三稿文档 视频演示 基于微信小程序的云音乐管理系统第三稿问题解答任务书开题报告查重报告安装视频讲解视频&#…

【计算机网络】第三章传输层-电子科技大学2023期末考试

第三章 传输层 传输层服务与协议 传输层为两个不同主机上的应用程序之间提供逻辑通信机制 传输层协议运行在端系统 发送方: 将应用程序报文分成数据段传递给网络层,接受方: 将数据段重新组装成报文传递到应用层 网络层为两个主机之间提供逻辑通信 主要提供两种协议TCP和U…

RTC

文章目录 前言驱动应用程序运行 前言 RTC&#xff08;Real Time Clock&#xff0c;实时时钟&#xff09;是个常用的外设&#xff0c;通过 RTC 我们可以知道日期和时间信息&#xff0c;因此在需要记录时间的场合就需要实时时钟。 可以使用专用的实时时钟芯片来完成此功能&#…

PostgreSQL如何创建临时表?

分类 PostgreSQL支持两种临时表&#xff1a; 会话级临时表&#xff1a;数据可以一直保存在整个会话的生命周期中事务级临时表&#xff1a;数据只存在于这个事务的生命周期中 在PostgreSQL中&#xff0c;不管是事务级的临时表还是会话级的临时表&#xff0c;当会话结束时都会…

家庭版Windows10/Windows11不支持远程桌面的解决办法

家庭版Windows10或11是不支持远程桌面的。我们可以在电脑的“设置”-> “远程桌面设置”中查看系统是否支持远程桌面&#xff1a;我们可以通过RDPWrap这个项目让家庭版也支持远程桌面。 百度网盘下载 首先在下面网址下载该项目&#xff0c;下载zip&#xff1a;https://gith…

【wifi使用指导】wifi模块怎么用?无线路由wifi模块SKW92A/SKW77网页配置说明

据悉&#xff0c;在全球范围内&#xff0c;WiFi承载了超过一半的数据流量&#xff0c;并且65%-90%的智能手机流量来自WiFi。无线覆盖的实现依赖于WiFi模块提供的WiFi信号&#xff0c;支持AP/Client&#xff0c;Bridge&#xff0c;Gateway&#xff0c;Router&#xff0c;3G/4G R…

U-Mail企业邮件服务器搭建方案

数字化办公的日渐推行&#xff0c;使企业对邮箱的依赖与日俱增&#xff0c;正式工作报告&#xff0c;部门之间的事物往来、通知等等都需要使用到企业邮箱。随着企业对数字化建设的不断深入&#xff0c;企业对企业邮箱的要求也越来越高&#xff0c;比如对第三方应用集成及协同办…

【C++】STL之string类(1)

个人主页&#xff1a;平行线也会相交&#x1f4aa; 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】&#x1f48c; 本专栏旨在记录C的学习路线&#xff0c;望对大家有所帮助&#x1f647;‍ 希望我们一起努力、成长&…

19项网络与数据安全新国标全文公开免费下载

根据2023年5月23日国家市场监督管理总局、国家标准化管理委员会发布的中华人民共和国国家标准公告&#xff08;2023年第2号&#xff09;&#xff0c;全国信息安全标准化技术委员会归口的19项网络安全国家标准正式发布。近日&#xff0c;标准全文正式公开&#xff0c;博主第一时…

【社区图书馆】疯狂 Java 讲义:但凡种种,不一而足

虽说酒香不怕巷子深&#xff0c;但是千里之外并不一定能闻到&#xff0c;有人看到这可能会感觉这不免有些杠的味道&#xff0c;其实我想表达的是好酒也需要宣传&#xff0c;比如今天我所要讲的这本书《疯狂Java讲义》。 这不是【赠书活动】&#xff0c;这不是赠书活动… …&…