详解Hadoop 运行环境搭建过程
作者:hypergrou 发布时间:2022-08-25 13:50:58
一,集群搭建步骤
1.先在一台虚拟机配置jdk,hadoop
2.克隆
3.修改网络等相关配置
当我们使用虚拟机时,可能自然而然的会想上面的步骤一样先搭建一台虚拟机,做好相关配置,然后进行克隆,继而修改一些网络配置来搭建集群,但是在生产过程中是买好的服务器,不存在克隆这一说,所以在此采用的步骤是:
1.建立一台虚拟机(仅带jdk安装包)
2.克隆
3.修改网络等相关配置
4.配置第一个hadoop节点,编写集群分发脚本使其他虚拟机完成配置
二,具体搭建过程
这里使用三台虚拟机来完成集群搭建,hadoop001,hadoop002,hadoop003,把安装包放在/opt/software,建立虚拟机和克隆就不说了,注意一点,在个人用不能使用sudo命令在/opt建立文件,可以先使用root,然后通过chown scq:scq module/ software/ -R
把拥有着赋给个人用户即可
修改网络等配置修改sudoer文件
su rootll /etc/sudoerschmod u+w /etc/sudoersvim /etc/sudoers
#当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
修改mac地址,修改ip
sudo vim /etc/udev/rules.d/70-persistent-net.rules
把eth0删除,把eth1改为eth0,同时复制ATTR{address}的值
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
把ATTR{address}粘到HWADDR
然后更改IP,ip可以通过图形化界面和命令行两种方式进行更改
这里需要重启一下(可以等所有配置完成后再重启),如果我们只是修改ip,可以通过sudo /etc/rc.d/init.d/network restart
进行网络重启即可,但是修改网卡配置通过这个命令会报错网上说eth0 里仍然记录着旧的MAC地址,但我更新了sudo /etc/sysconfig/network-scripts/ifcfg-eth0
仍然不行
BOOTPROTO=static 静态IPBOOTPROTO=dhcp 动态IPBOOTPROTO=none 无(图形化界面修改时BOOTPROTO值为none)
修改主机名
主机名是什么:在命令行中敲入hostname或者命令行每一行中 @后面的内容
sudo vim /etc/sysconfig/network
重启生效,不重启生效的方式不常见,可以自行百度。
修改hosts文件
sudo vim /etc/hosts[/code]关闭防火墙[code]centos6/etc/init.d/iptables status/etc/init.d/iptables start/etc/init.d/iptables stopchkconfig iptables offcentos7systemctl start firewalldfirewall-cmd --statesystemctl stop firewalldsystemctl disable firewalldsystemctl list-unit-files|grep firewalld
注:
1.每次开机时修改一下/etc/resolv.conf文件设置网关
安装hadoop,形成hadoop集群安装单个hadoop
①解压,配置环境变量
②配置文件
对于本地模式,因为本地模式直接运行jvm上,所以不需要对配置文件做配置
对于伪分布式与完全分布式的常见相关配置集中在以下文件中
HDFShadoop-env.shcore-site.xml ---> nameNode节点 + hadoop 运行时产生文件的存储目录hdfs-site.xml 副本数 + SecondaryNameNode地址Yarnyarn-env.sh yarn-site.xml reducer 获取数据的方式 + 指定 YARN 的 ResourceManager 的地址 + 日志信息上传到 HDFS 系统上MapReducemapred-env.sh mapred-site.xml 指定 mr 运行在 yarn 上 + 历史服务器 对于xxx-env.sh 就是考虑JAVA_HOME。hadoop-env.sh添加JAVA_HOME,yarn可以辨别JAVA_HOME,mapreduce-env.sh可以不用配置,当然也可以全部都配置
常见的具体配置
<property><name>fs.defaultFS</name><value>hdfs://hadoop001:9000</value>
</property><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>伪分布式 副本1,无SecondaryNameNode节点<property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.secondary.http-address</name>
<value>hadoop004:50090</value></property><!-- reducer 获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定 YARN 的 ResourceManager 的地址 --><property><name>yarn.resourcemanager.hostname</name><value>hadoop001</value></property>
<!-- 日志聚集功能使能 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 日志保留时间设置 7 天 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property><!-- 指定 mr 运行在 yarn 上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property>
<!-- 配置历史服务器--><property><name>mapreduce.jobhistory.address</name><value>hadoop001:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop001:19888</value>
</property>
编写集群分发脚本
1) scp:secure copy 安全拷贝
(a)将 hadoop001 中/opt/module 目录下的软件拷贝到 hadoop002 上。
[scq@hadoop001 /]$ scp -r /opt/module/* scq@hadoop002:/opt/module
(b)将 hadoop001 服务器上的/opt/module 目录下的软件拷贝到 hadoop003 上。
scq@hadoop003 opt]$ scp -r scq@hadoop101:/opt/module/* hadoop003:/opt/module
(c)在 hadoop003 上操作将 hadoop001 中/opt/module 目录下的软件拷贝到hadoop004 上。
[scq@hadoop003 opt]$ scp -r scq@hadoop001:/opt/module/* scq@hadoop004:/opt/modul
注意一点:
1.用户@主机名:地址,在该主机中,这个用户必须读地址有读权限
2.路径后面记得带*号
2)rsync 远程同步工具
主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 区别: 用 rsync 做文件的复制要比 scp 的速度快, rsync 只对差异文件做更新。 scp 是把所有文件都复制过去。
(1)查看 rsync 使用说明
man rsync | more
(2)基本语法
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
命令 命令参数 要拷贝的文件路径/名称 目的用户@主机:目的路径
(3) 选项说明
选项 功能
-r 递归
-v 显示复制过程
-l 拷贝符号连接
(4)案例实操
把本机/opt/software 目录同步到 hadoop002 服务器的 root 用户下的/opt/目录
[scq@hadoop001 opt]$ rsync -rvl /opt/software/* hadoop102:/opt/software/
3)rsync 远程同步工具
脚本需求分析:循环复制文件到所有节点的相同目录下。
(1)原始拷贝:
rsync -rvl /opt/module root@hadoop103:/opt/
(2)期望脚本:
xsync 要同步的文件名称
(3)在/home/atguigu/bin 这个目录下存放的脚本, atguigu 用户可以在系统任何地方直接执行。
#!/bin/bash#1 获取输入参数个数,如果没有参数,直接退出pcount=$#if((pcount==0)); then echo no args;exit;fi#2 获取文件名称p1=$1fname=`basename $p1`echo fname=$fname#3 获取上级目录到绝对路径pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir#4 获取当前用户名称user=`whoami`#5 循环for((host=2; host<4; host++)); doecho --------------------- hadoop00$host ----------------rsync -rvl $pdir/$fname $user@hadoop00$host:$pdirdone
注1 对于dirname,记住一下几个场景
输入:dirname // 结果为 /(斜杠)。
输入:dirname /a/b/ 结果为:/a。输入:dirname a 结果为 . (点)。
输入:dirname a/b 结果为路径名 a
.即当前目录,所以脚本中的代码我们使用绝对路径和相对路径都是可行的
注
2.脚本中并没有使用*,这个应该也不难理解
分发Hadoop,完成集群搭建
[scq@hadoop001 bin]$ ./xsync /opt/module/hadoop-2.7.2
总结
以上所述是小编给大家介绍的Hadoop 运行环境搭建过程,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.cnblogs.com/hypergroup/articles/10125271.html


猜你喜欢
- 1 前言前面文章Python爬虫获取基金列表、Python爬虫获取基金基本信息我们已经介绍了怎么获取基金列表以及怎么获取基金基本信息,本文我
- 学习前言一起来看看Efficientdet的keras实现吧,顺便训练一下自己的数据。什么是Efficientdet目标检测算法最近,谷歌大
- 安装MySQL假设你把所有必须的源码或者包都放在了/tmp下。如果你下载的是RPM包的话,那比较简单;如果你下载的是二进制包(你没有rpm程
- 数据的合并与关联是数据处理过程中经常遇到的问题,在SQL、HQL中大家可能都有用到 join、uion all 等 ,在 Pandas 中也
- 本文实例讲述了Python学习笔记之lambda表达式用法。分享给大家供大家参考,具体如下:Lambda 表达式使用 Lambda 表达式创
- PHP PDO连接连接是通过创建 PDO 基类的实例而建立的。不管使用哪种驱动程序,都是用 PDO 类名。连接到 MySQL<?php
- 是不是很烦每次注册网站或填写相关资料时都要重来一遍?其实会有很多自动填写工具能代劳。比如使用 Mac, 在 Safari 的表单中,它可以足
- 光线追迹得益于计算机的计算的能力,通过追踪具有代表性的光线的传播轨迹,可以更加精确地描述光学系统的性能,光线追迹方法也因此大展其能,诸如Ze
- 其实很简单,一般的数组去重可以直接用 new Set() 方法即可,但是数组对象的话,比较复杂,不能直接用,我们可以采取间接的方法来去重un
- 公司运营着的网站,流量很大,网站是交互式的,经常在过了三四个月的时候索引生成的碎片就很多,由于很大一部分页面没有生成静态,这就导致网站在打开
- 概念:通配符(wildcard)即:用来匹配值的一部分的特殊字符。搜索模式(search pattern)即:由字面值、通配符或两者组合构成
- 不过有一个简单的执行cmd命令方法: SQL> host net user User accounts for \\PC-ATQHJ4
- NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy
- 没有,用case when 来代替就行了. 例如,下面的语句显示中文年月 select getdate() as 日期,case month
- Access method(访问方法):此步骤包括从文件中存储和检索记录。Alias(别名):某属性的另一个名字。在SQL中,可以用别名替换
- 本文实例讲述了Python XlsxWriter模块Chart类用法。分享给大家供大家参考,具体如下:一 点睛Chart类是XlsxWrit
- SQL Server中事务日志的作用:持续记录数据库所有的事务和这些事务对数据库所做的修改;一旦数据库出现灾难事件,就需要事务日志来进行近期
- Django保证表单的正确显示需要添加CSRF(防止网站跨站请求伪造而默认开启的一种保护方式),在<form></form
- 前言众所周知,网页版的B站无法下载视频,然本人喜欢经常在B站学习,奈何没有网时,无法观看视频资源,手机下载后屏幕太小又不想看,遂写此程序以解
- 现在向大家介绍mysql命令行下,从数据库的建立到表数据的删除全过程,希望对大家有所帮助。登陆mysql打cmd命令终端,如果已经添加了my