创建hadoop集群

分布式hadoop集群分布

服务器功能规划
node-1:namenode,datanode,nodemanager,historyserver
node-2:resourcemanage,datanode,nodemanager
node-3:datanode,nodemanager,secondarynamenode

#在node-1上
$ bin/hdfs namenode -format
$ sbin/start-dfs.sh --启动HDFS
$ sbin/mr-jobhistory-daemon.sh start historyserver
#在node-2上:
$ sbin/start-yarn.sh --启动YARN

一、集群规划

01 02 03
HDFS namenode SecondaryNamenode
datanode datanode datanode
historyserver
YARN resourcemanager
nodemanager nodemanager nodemanager

二、准备系统环境

1. Vi /etc/sysconfig/network 主机名

	master.comslave1.comslave2.com    

2. Vi /etc/hosts 主机名和ip地址的映射 三台服务器

	192.168.174.130 master.com192.168.174.131 slave1.com192.168.174.132 slave2.com

3. 关闭iptables和selinux 三台服务器

	service iptables stop  关闭防火墙Chkconfig iptables off 让iptables开启不启动Vi /etc/sysconfig/selinux     SELINUX=disabled

4. 创建普通用户 [root用户] [三台服务器]

# useradd bigdata
# echo 123456 | passwd --stdin bigdata

5. 配置静态IP和DNS [root用户] [三台服务器]

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.201.130
NETMASK=255.255.255.0
GATEWAY=192.168.201.2
DNS1=192.168.201.2
# service network restart

6. 把系统启动级别改成“字符模式” [root用户] [后面两台服务器]

安装类型选择“Basic”
# vi /etc/inittab
id:3:initdefault:

7. 卸载服务器JDK [root用户] [三台服务器]

# rpm -qa |grep java
# rpm -e --nodeps java软件包

三、配置NTP时间服务器[root用户]

  • 把01这台服务器配置为时间服务器
  • 然后集群内其他服务器都来同步这台服务器的时间
  • 目的:集群内部所有服务器时间一致

1. 调整时间(三台服务器)

# date -R               --检查当前系统时区
Thu, 25 Aug 2021 14:51:07 +0800
# rm -rf /etc/localtime     --如果时区不是+0800
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2. bigdata01.com

 2.1 同步时间# service ntpd stop# ntpdate cn.pool.ntp.org   --同步当前服务器时间## 必须在 ntpd 进程关闭的情况下才能同步别的 ntp 服务器时间,反之可能出现问题:“the NTP socket is in use, exiting”错误。问题分析:出现该错误的原因是系统 ntpd 服务器正在运行中,通过 ps aux | grep ntpd 或者 service ntpd status 查看,会看到 ntpd 正在运行。解决方法: # service ntpd stop2.2 检查软件包# rpm -qa | grep ntp        --查看ntp软件包是否已安装ntp-4.2.4p8-3.el6.centos.x86_64# yum -y install ntp        --如果没有安装需要安装ntp2.3 修改ntp配置文件# vi /etc/ntp.conf####去掉下面这行前面的# ,并把网段修改成自己的网段restrict 192.168.201.0 mask 255.255.255.0 nomodify notrap####注释掉以下几行#server 0.centos.pool.ntp.org#server 1.centos.pool.ntp.org#server 2.centos.pool.ntp.org####把下面两行前面的#号去掉,如果没有这两行内容,需要手动添加server  127.127.1.0     # local clockfudge   127.127.1.0 stratum 102.4 重启ntp服务# service ntpd start# chkconfig ntpd on

3. bigdata.com [后两台服务器02、03]

 3.1 关闭ntpd进程,默认关闭# service ntpd stop# chkconfig ntpd off3.2 去同步第一台服务器时间# ntpdate bigdata01.com --去第一台服务器同步时间25 Aug 15:16:47 ntpdate[2092]: adjust time server 192.168.201.128 offset 0.311666 sec3.3 制定计划任务,周期性同步时间# crontab -e*/10 * * * * /usr/sbin/ntpdate master01[分  时 日  月 星期]# service crond restart

四、免密登录

linux 自带的已经安装了 ssh 客户端,还需要安装 ssh 服务端

sudo apt-get install openssh-server
ssh localhost
cd ~/.ssh
Ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys  加入授权
bigdata01.com –> bigdata01.com
bigdata02.com
bigdata03.combigdata02.com   --> bigdata01.combigdata02.combigdata03.combigdata03.com   --> bigdata01.combigdata02.combigdata03.com

在01上: [用普通用户bigdata]

$ ssh-keygen -t rsa        --一直回车,生成一对公私钥对         ** 在/home/bigdata/.ssh/ 文件夹生成两个秘钥文件,如果生成错误,可以删除重新生成id_rsa  id_rsa.pub
$ ssh-copy-id master                       --把自己的公钥拷贝给01
$ ssh-copy-id node1
$ ssh-copy-id node2

在02上: [用普通用户bigdata]

 $ ssh-keygen -t rsa$ ssh-copy-id bigdata01.com$ ssh-copy-id bigdata02.com$ ssh-copy-id bigdata03.com

在03上: [用普通用户bigdata]

  $ ssh-keygen -t rsa$ ssh-copy-id bigdata01.com$ ssh-copy-id bigdata02.com$ ssh-copy-id bigdata03.com

使用 ssh hostname 校验,使用 ssh 无秘登录后,一定要退出 exit;

五、安装配置JDK [root用户] [三台服务器]

# mkdir /opt/modules/
# mkdir /opt/softwares/
# chown bigdata:bigdata /opt/modules/
# chown bigdata:bigdata /opt/softwares/# su - bigdata
$ tar -vzxf /opt/softwares/jdk-7u67-linux-x64.tar.gz  -C  /opt/modules/Vi .~/.bashrc
Source ~/.bashrc

环境变量 [root用户] [三台服务器]

# vi /etc/profile
## JAVA HOME
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile
# java -version

[bigdata用户]第一台安装,拷贝 jdk 目录给后面两台服务器

# mkdir /opt/modules/
# chown bigdata:bigdata /opt/modules/
# su - bigdata
$ scp -r jdk1.7.0_79/ node1:/opt/modules/
$ scp -r jdk1.7.0_79/ node2:/opt/modules/

六、模式

6.1 单机模式

cd /opt/modules/hadoop-2.6.0
mkdir input
cp ./etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*     查看运行结果

hadoop默认不会覆盖结果文件,如果要再次运行,就需要将output文件删除:rm -r ./output

6.2 伪分布式模式

core-site.xml

<configuration><property><name>hadoop.tmp.dir</name>   
临时保存文件,若没有配置将会使用临时文件 /tmp/hadoo-hadoop, 而这个目录在 hadoop 重启时,可能被系统清理掉<value>file:/opt/modules/hadoop-2.6.0/tmp</value></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>

hdfs-site.xml

<configuration><property><name>dfs.replication</name>   <value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/opt/modules/hadoop-2.6.0/tmp/dfs/name</value></property><property><name>dsf.datanode.data.dir</name><value>file:/opt/modules/hadoop-2.6.0/tmp/dfs/data</value></property>
</configuration>

名称节点的格式化

./bin/hdfs namenode -format

启动hadoop

./sbin/start-dfs.sh

错误:若在启动hadoop过程中出现很多ssh:could not resolve hostname xxx
按ctil + c中断启动过程
在~/.bashrc文件最上边开始位置

export HADOOP_HOME=/opt/modules/hadoop-2.6.0
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

保存该文件后,执行 source ~/.bashrc 使变量环境设置生效,然后再次启动 hadoop

运行 hadoop 伪分布式实例
要使用 hdfs 上的数据,首先需要在 hdfs 中创建用户目录

./bin/hdfs dfs -mkdir -p /user/hadoop 
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
./bin/hdfs dfs -ls input  查看input文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
./bin/hdfs dfs -cat output/*./bin/hdfs dfs rm -r output删除output文件

6.3 伪分布式下启动yarn

./sbin/start-dfs.sh
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml重命名
vi ./etc/hadoop/mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name>   <value>yarn</value></property>
</configuration>
vi ./etc/hadoop/yarn-site.xml
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
./sbin/start-dfs.sh
./sbin/start-yarn.sh
./sbin/mr-jonhistory-daemon.sh start historyserver
./sbin/stop-yarn.sh
./sbin/mr-jonhistory-daemon.sh stop historyserver
./sbin/stop-dfs.sh

不想启动 yarn,则务必将 mapred-site.xml 重命名,改成 mapred-site.xml.template 需要用时改回来即可,否则只启动 hdfs 不启动 yarn 会提示retrying connect to server:0.0.0.0/0.0.0.0:8032 错误

path环境
在~/.bashrc

export PATH=$PATH:/opt/modules/hadoop-2.6.0/sbin:/opt/modules/hadoop-2.6.0/bin

6.4 分布式模式配置

sudo vi /etc/hostname
sudo vi /etc/hosts

ping master -c 3

Master:

cd ~/.ssh
rm ./id_rsa *
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
scp ~/.ssh/id_rsa.pub root@slave1

Slave:

mkdir ~/.ssh若无ssh
cat ~/id_rsa.pub >>  ~/.ssh/authorized_keys   在slave节点加入授权
rm ~/id_rsa.pub

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

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

相关文章

点云数据结构化与体素化理论学习

一、PCD点云数据存储格式的进一步认识 &#xff08;一&#xff09;PCD点云存储格式相较于其它存储格式&#xff08;如PLY、STL、OBJ、X3D等&#xff09;的优势[1] &#xff08;1&#xff09;具有存储和处理有组织的点云数据集的能力&#xff0c;这对于实时应用和增强现实及机器…

20240302-1-ZooKeeper面试题(三)

21. 集群最少要几台机器&#xff0c;集群规则是怎样的? 集群规则为 2N1 台&#xff0c;N>0&#xff0c;即 3 台。 22. 集群支持动态添加机器吗&#xff1f; 其实就是水平扩容了&#xff0c;Zookeeper 在这方面不太好。两种方式&#xff1a;第 62 页 共 485 页全部重启&a…

【Spring连载】使用Spring Data访问 MongoDB----对象映射之非包装类型

【Spring连载】使用Spring Data访问 MongoDB----对象映射之非包装类型 一、未包装类型映射二、未包装类型字段名三、查询未包装对象3.1 按未包装字段排序3.2 未包装对象的字段投影3.3 未包装对象的Query By Example3.4 未包装对象的存储库查询 四、更新未包装对象五、未包装对象…

苍穹外卖学习 Day10 Day11 Day12

前言 用于记录苍穹外卖Day10、Day11、Day12的学习 Day10 订单状态定时处理 来电提醒 客户催单 订单状态定时处理 Spring Task Spring Task是一个任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑&#xff08;定时自动执行某段Java代码&#xff09; cron表…

代码随想录算法训练营第三十天| 回溯篇总结

文章目录 前言一、组合问题二、切割问题三、子集问题四、排列问题五、性能分析总结 前言 回溯法就是暴力搜索&#xff0c;并不是什么高效的算法&#xff0c;最多再剪枝一下。 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合 排列问题&#xff1a;N个数按一定规则全…

【黑马程序员】STL之set和map容器

文章目录 set/multiset容器set基本概念简介区别 set的构造和赋值功能描述函数原型代码示例运行结果 set的大小和交换功能描述函数原型代码示例运行结果 set的插入和删除功能描述函数原型代码示例运行结果 set查找和统计函数原型代码示例运行结果 set和multiset区别区别代码示例…

JVM(6)

JMM JVM定义了一种Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果.在此之前,C/C直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台下的内存模型差异,有可能导致程序在一套平台上并发完全正常,而在另…

深入解剖指针(4)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a; 我要学编程(ಥ_ಥ)-CSDN博客 目录 回调函数 qsort使用举例 使用qsort函数排序整型数据 使用qsort排序结构数据 qsort函数的模拟实现 回调函数 回调函数就是一个通过函数指…

【Android12】Android性能调优工具SystemServerTiming日志

Android性能调优工具SystemServerTiming日志 性能优化、稳定性优化是Android系统优化的两大方面&#xff0c;对于性能调试Android提供了很多工具&#xff0c;比如&#xff1a;bootchart、systrace、perfboot、log、dmsg等等。 SystemServerTiming是Android原生系统中一个日志…

《Spring Security 简易速速上手小册》第10章 未来趋势与高级话题(2024 最新版)

文章目录 10.1 云原生安全性趋势10.1.1 基础知识10.1.2 重点案例&#xff1a;保护微服务通信10.1.3 拓展案例 1&#xff1a;容器安全最佳实践10.1.4 拓展案例 2&#xff1a;自动化安全审计和合规性检查 10.2 反应式编程与 Spring Security10.2.1 基础知识10.2.2 重点案例&#…

nginx-图片模块

./configure --with-http_image_filter_module location / {root html;index index.html index.htm;if ($arg_w "") {set $arg_w -;}if ($arg_h "") {set $arg_h -;}image_filter resize $arg_w $arg_h;image_filter_jpeg_quality 95; } 访问: 1234…

CSS锥形渐变:conic-gradient()

画一个扇形图&#xff0c;使用常规方法可能很难画&#xff0c;但是用锥形渐变的话非常好画 <style>.pattern{width: 100px; height: 100px;border-radius: 50%;background: conic-gradient(yellow 30deg , black 30deg , black 90deg , yellow 90deg ,yellow 150d…

Git分布式版本控制系统——git学习准备工作

一、Git仓库介绍 开发者可以通过Git仓库来存储和管理文件代码&#xff0c;Git仓库分为两种&#xff1a; 本地仓库&#xff1a;开发人员自己电脑上的Git仓库 远程仓库&#xff1a;远程服务器上的Git仓库 仓库之间的运转如下图&#xff1a; commit&#xff1a;提交&#xff…

Decoupled Knowledge Distillation解耦知识蒸馏

Decoupled Knowledge Distillation解耦知识蒸馏 现有的蒸馏方法主要是基于从中间层提取深层特征&#xff0c;而忽略了Logit蒸馏的重要性。为了给logit蒸馏研究提供一个新的视角&#xff0c;我们将经典的KD损失重新表述为两部分&#xff0c;即目标类知识蒸馏&#xff08;TCKD&a…

c++之旅——第四弹

大家好啊&#xff0c;这里是c之旅第三弹&#xff0c;跟随我的步伐来开始这一篇的学习吧&#xff01; 如果有知识性错误&#xff0c;欢迎各位指正&#xff01;&#xff01;一起加油&#xff01;&#xff01; 创作不易&#xff0c;希望大家多多支持哦&#xff01; 本篇文章的主…

如何对比 MySQL 主备数据的一致性?

随着业务范围的扩大&#xff0c;很多企业为了保障核心业务的高可用性&#xff0c;选择了 MySQL 主从架构&#xff0c;这一套方案通常具备主备数据同步、数据备份与恢复、读写分离、高可用切换等特性&#xff0c;是一种相当成熟可靠的数据库架构方案。然而这套方案在特定情况下可…

Redis小白入门教程

Redis入门教程 1. Redis入门1.1 Redis简介1.2 Redis服务启动与停止1.2.1 Redis下载1.2.2 服务启动命令1.2.3 客户端连接命令1.2.4 修改Redis配置文件 2. Redis数据类型2.1 五种常用数据类型介绍2.1.1 字符串操作命令2.1.2 哈希操作命令2.1.3 列表操作命令2.1.4 集合操作命令2.1…

双周回顾#006 - 这三个月

断更啦~~ 上次更新时间 2023/11/23, 断更近三个月的时间。 先狡辩下&#xff0c;因为忙、着实忙。因为忙&#xff0c;心安理得给断更找了个借口&#xff0c;批评下自己~~ 这三个月在做啥&#xff1f;跨部门援助&#xff0c;支援公司互联网的 ToC 项目&#xff0c;一言难尽。 …

智能时代:人工智能引领未来创新

智能时代&#xff1a;人工智能引领未来创新 1. 人工智能的定义与特点 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是指模拟、延伸和扩展人类智能的理论、方法、技术及应用系统的一门交叉学科。其特点包括学习能力、推理能力、感知能力和交互能力…

【C语言】InfiniBand 驱动mlx4_ib_init和mlx4_ib_cleanup

一、中文讲解 这两个函数是Linux内核模块中对于Mellanox InfiniBand 驱动程序初始化和清理的函数。 mlx4_ib_init()函数是模块初始化函数&#xff0c;使用__init宏标注&#xff0c;表示该函数只在模块加载时运行一次。 函数执行的步骤如下&#xff1a; 1. 通过alloc_ordered_w…