Ubuntu 16.4虚拟机 配置Hadoop集群

news2024/9/27 23:26:00

Ubuntu 16.4 配置Hadoop集群

  • 总体步骤
    • 环境说明
    • 虚拟机配置
    • java安装
    • hadoop安装与配置
    • 克隆虚拟机
    • ssh安装使用,免密登录
    • 更改hadoop配置
      • 结束语

总体步骤

1、虚拟机配置
2、java安装
3、hadoop下载配置
4、复制虚拟机
5、ip更换,使用固定ip,并且每台机器访问外网
6、免密登录,ssh
7、更改hadoop配置
8、启动

环境说明

1、VMware
2、虚拟机:Ubuntu16.4
3、hadoop 3.3.0
4、jdk-1.8.0

虚拟机配置

1、VMware和Ubuntu16.4的下载和安装省略
我将我的虚拟机配置贴在下方,可以根据自己的电脑配置做调整

在这里插入图片描述

2、虚拟机创建完成以后,这有个重点,虚拟机创建以后是一个hadoop用户,不是root用户,这里需要知道root用户的密码。新创建的虚拟机root用户时没有密码的,我们需要设置一个密码。
在这里插入图片描述
这个root密码后面是需要的,否则会造成一定的麻烦。

3、查看虚拟机的ip,设置成固定的ip。由于在自己虚拟机里要搭建集群,需要三台电脑,ip不能一样。
在这里插入图片描述在这里插入图片描述
这里有个重点,虚拟机和自己真实的主机必须是NAT的连接方式,通过虚拟网络编辑器可以看到子网的ip是多少。我们可以去自己本地主机的电脑上修改成使用指定的ip,这样虚拟机里的ip不会再变化。
在这里插入图片描述在这里插入图片描述
我们设置的ip前三位要和虚拟网络编辑器一致,我这就从192.168.220.100开始,设置好后,我们就需要进入到虚拟机里,查看一下我们的hadoop101主机的ip,将主机hadoop101的ip设置为固定ip
在这里插入图片描述
这里的ens33 指的是ens33网卡,这里的ip 已经时我修改以后的了,修改完成以后记得重启下网络。

vim /etc/network/interfaces (修改静态ip)
注:Ubuntu16.4的网络配置是在这个文件下的,其他版本的虚拟机可能不在该文件下)

在这里插入图片描述
设置ens33网卡为静态ip
地址为192.168.220.101
子网掩码
默认网关
设置完后,你会发现你可能连不上外网,可以尝试ping www.baidu.com。至此我们还需要设置DNS

vim /etc/resolv.conf ,添加DNS服务器ip,

在这里插入图片描述
这里有个重点,避坑,设置好DNS后,当重启虚拟机,又不能访问外网了,因为当重启虚拟机这些配置都会消失,所以建议永久修改DNS服务器 。

vim /etc/resolvconf/resolv.conf.d/base ,在里面添加 nameserver 114.114.114.114
执行:resolvconf -u
重启网络: /etc/init.d/networking restart

完成上述不步骤再去观察/etc/resolv.conf文件,会发现会自动生成nameserver。这样每当重启虚拟机,都不用再配置一遍了。实质是对/etc/resolv.conf文件做修改,则能保证DNS的配置

4、修改主机名称。

vim /etc/hostname
这样方便我们统一管理,我这修改为hadoop101

5、最后重启虚拟机,完成以后
检查: 查看ip是否已经为自己固定的静态ip。
查看是否能上外网。
查看主机名是否正确。
查看root用户密码是否正确。

到这按理说我们应该克隆虚拟机,生成三台自己需要的虚拟机,但是每台电脑都要安装java、ssh等,我们可以先把一台电脑处理好,然后克隆后,每台电脑都有了,则不用再重复三遍。

java安装

我直接使用的Linux里面自带的jdk安装,没有自己去下载

sudo apt-cache search jdk (搜索jdk版本)
sudo apt-get install openjdk-8-jdk (安装自己需要的jdk版本)

自动安装完成以后,可以使用以下命令查看安装路径,这也是重点,后面配置环境变量都需要用到该路径

whereis java 找到/usr/bin/java
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java

在这里插入图片描述

修改环境变量 :vim /etc/profile(这里就需要上述说的安装路径)
重置环境变量:source /etc/profile

在这里插入图片描述

验证,输入 java -version 命令,出现下图则成功。
在这里插入图片描述

hadoop安装与配置

上hadoop下载链接:https://archive.apache.org/dist/hadoop/common/
我下载的是hadoop-3.3.0.tar.gz,路径:/home/hadoop100/software,解压。

在这里插入图片描述

和java一样,需要配置环境变量
配置环境变量:vim /etc/profile
重置环境变量:source /etc/profile

在这里插入图片描述

验证,输入hadoop查看是否正常,如下图则正确

在这里插入图片描述

到这我们已经成功了一半了,继续!!

克隆虚拟机

我将克隆虚拟机放在安装jdk、安装hadoop后面,这样我们就不用再去安装了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如上图,克隆两台虚拟机,分别为hadoop102、hadoop103
修改主机名称,修改hadoop102、hadoop103的ip为静态的。(hadoop101已经修改,无需再改)
vim /etc/hostname(修改主机名称)
vim /etc/network/interfaces (修改静态ip)
(hadoop102主机为 192.168.220.102;hadoop103主机为 192.168.220.103)

重启网络服务:/etc/init.d/networking restart
重启两台克隆的虚拟机

在这里插入图片描述

克隆完成以后,三台主机都要修改/etc/host 文件,将ip加进去

在这里插入图片描述
重启完成后检查三台主机的信息,看是否正确
①三台主机名称:hadoop101、hadoop102、hadoop103
②三台主机的ip,都是静态ip,并且都能上外网
③三台主机的java、hadoop是否正常
④三台主机的环境变量是否正常。(/etc/profile文件中)
⑤三台主机的root用户的密码是否正常

ssh安装使用,免密登录

1、三台主机都要安装ssh命令。(其实这一步可以放在克隆虚拟机前面,这样只需要安装一遍就行)
这里避坑,一直远程ssh连接不上,因为A主机安装了ssh,B主机没安装ssh,导致不连接不通。

sudo apt-get install ssh
验证:可以查看进程是否有sshd进程,也可以执行ssh查看

验证是否正常
在这里插入图片描述
在这里插入图片描述
安装完ssh后,查看/root/.ssh 是否有该目录,如果没有该目录,手动创建一个.ssh文件夹
三台主机都使用root用户生成公钥、密钥(使用root用户是因为后面会报权限不足)

ssh-keygen -t rsa
scp id_rsa.pub hadoop101:/root/.ssh/id_rsa_102.pub (将hadoop102主机上的复制到hadoop101)
scp id_rsa.pub hadoop101:/root/.ssh/id_rsa_103.pub (将hadoop103主机上的复制到hadoop101)

再将这三个id_rsa.pub整合到一个authorized_keys 文件中
cat id_rsa.pub >> authorized_keys
cat id_rsa_102.pub >> authorized_keys
cat id_rsa_103.pub >> authorized_keys
最后把authorized_keys 再传回hadoop102、hadoop103主机

有的虚拟机可能在这就能完成免密登录了,但是有的不行,我们需要再将三台主机的防火墙关闭

关闭防火墙
service ufw stop

修改ssh密码配置文件,取消密码验证
vim /etc/ssh/sshd_config
将PermitRootLogin prohibit-password禁用
添加:PermitRootLogin yes
重启sshd服务:/etc/init.d/sshd restart
在这里插入图片描述

三台电脑互相验证是否可以免密登录
ssh hadoop102
ssh hadoop103
在这里插入图片描述
成功!!!

更改hadoop配置

注: 修改hadoop配置文件我暂时不是很清楚,我照着网上的参数配置的。待我去了解了每个参数的意思后再做补充。
重点: 三台电脑都要配置下述文件,我们可以先配置一台,然后使用scp命令将/hadoop-3.3.0/etc/hadoop/整个文件夹下的文件都拷贝到hadoop102和hadoop103。
1、需要修改多个文件的配置包括(配置文件都在hadoop解压包下的/etc/hadoop)

/hadoop-3.3.0/etc/hadoop/core-site.xml
/hadoop-3.3.0/etc/hadoop/hdfs-site.xml
/hadoop-3.3.0/etc/hadoop/yarn-site.xml
/hadoop-3.3.0/etc/hadoop/mapred-site.xml
/hadoop-3.3.0/etc/hadoop/yarn-env.sh
hadoop-3.3.0/etc/hadoop/hadoop-env.sh
hadoop-3.3.0/etc/hadoop/workers

/hadoop-3.3.0/etc/hadoop/core-site.xml 文件配置如下

<configuration>
        <!-- 指定NameNode的地址 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop101:8020</value>
        </property>
        <!-- hadoop数据的存储目录 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoop100/software/hadoop-3.3.0/hdfs/data</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
</configuration>

/hadoop-3.3.0/etc/hadoop/hdfs-site.xml配置如下

<configuration>
        <!-- 设置文件副本数,两个datanode,所以设置副本数为2-->
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/home/hadoop100/software/hadoop-3.3.0/hdfs/name</value>
                <final>true</final>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/home/hadoop100/software/hadoop-3.3.0/hdfs/data</value>
                <final>true</final>
        </property>

        <!-- 指定NameNode的外部web访问地址 -->
        <property>
                <name>dfs.namenode.http-address</name>
                <value>hadoop101:9870</value>
        </property>

        <!-- 指定secondary NameNode的外部web访问地址 -->
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop103:9868</value>
        </property>
</configuration>

/hadoop-3.3.0/etc/hadoop/yarn-site.xml配置如下

<configuration>

        <!--指定MR走shuffle -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <!--指定ResourceManager的地址-->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop102</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>

</configuration>

/hadoop-3.3.0/etc/hadoop/mapred-site.xml配置如下

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>

</configuration>

/hadoop-3.3.0/etc/hadoop/yarn-env.sh 和 hadoop-3.3.0/etc/hadoop/hadoop-env.sh 都要配置jdk环境,加上下面的全局变量

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

hadoop-3.3.0/etc/hadoop/workers 添加你的工作用户

hadoop101
hadoop102
hadoop103

配置完成后,还需要在/hadoop-3.3.0/sbin路径下,配置下述文件

/hadoop-3.3.0/sbin/start-dfs.sh
/hadoop-3.3.0/sbin/stop-dfs.sh
/hadoop-3.3.0/sbin/start-yarn.sh
/hadoop-3.3.0/sbin/stop-yarn.sh

/hadoop-3.3.0/sbin/start-dfs.sh 和 /hadoop-3.3.0/sbin/stop-dfs.sh 配置加入如下配置

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

/hadoop-3.3.0/sbin/start-yarn.sh 和 /hadoop-3.3.0/sbin/stop-yarn.sh 加入如下配置

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

至此,所有的配置已经完成,记得将配置好的文件拷贝到另外两台虚拟机上 ,但是你会发现有一个start-all.sh 和 stop-all.sh ,start-all.sh实质上时调用了start-dfs.sh、start-yarn.sh等shell脚本。stop-all.sh同理。
在三台虚拟机都正常运行的情况下,我们可以在主机hadoop101执行/sbin/start-yarn.sh启动hadoop,在hadoop102上执行/sbin/start-yarn.sh
在这里插入图片描述
在这里插入图片描述
通过进程查看是否正常。
在这里插入图片描述
进入浏览器,网址浏览 hadoop101:9870、hadoop103:9868 (这两个是在前面的hdfs-site.xml文件中配置的),看是否正常。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样,hadoop搭建已经成功,并且能正常运行。

结束语

该博客是在我自己搭建成功后,作为笔记记录的,中间可能有些具体步骤忘记写了,欢迎各位看客批评指正交流。hadoop部分的配置文件,目前还不清楚为啥要这样配置,还需继续学习。

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

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

相关文章

Linux基本指令集合

Linux基本指令1&#xff0c;ls命令2&#xff0c;pwd命令3&#xff0c;whoami4&#xff0c;cd命令5&#xff0c;touch命令6&#xff0c;mkdir命令7&#xff0c;rmdir与rm命令8&#xff0c;man命令9&#xff0c;cp命令10&#xff0c;tree命令11&#xff0c;mv命令12&#xff0c;c…

智慧城市的发展趋势

智慧城市&#xff0c;是指在城市发展过程中&#xff0c;在城市基础设施、资源环境、社会民生、经济产业、市政治理领域中&#xff0c;充分利用物联网、互联网、云计算、IT、智能分析等技术手段&#xff0c;对城市居民生活工作、企业经营发展和政府行政管理过程中的相关活动&…

HTML学生个人网站作业设计:我的家乡网站设计——南宁留言表单 无js 页面8个

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 家乡旅游景点 | 家乡民生变化 | 介绍自己的家乡 | 我的家乡 | 家乡主题 | HTML期末大学生网页设计作业 HTML&#xff1a;结构 CSS&#xff1a;样式 在…

泰克/Tektronix A622电流探头型号规格参数介绍

Tektronix/泰克电流探头A622产品介绍 品牌&#xff1a;Tektronix 产地&#xff1a;美国 Tektronix泰克A622交直流电流探头适用于万用表和示波器钳型;通用BNC接口。 Tektronix/泰克电流探头A622产品特点&#xff1a; AC/DC-100kHz 50mA to 100A峰值 适用于万用表和示波器 钳形开…

HTML期末大学生网页设计作业——奇恩动漫HTML (1页面) HTML+CSS+JS网页设计期末课程大作业

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

C++:函数:回调函数:还不懂回调函数来捶我

前言 不知道你是否有这样的疑问&#xff0c;我们为什么需要回调函数&#xff0c;直接调用函数不就可以了吗&#xff1f;回调函数到底有什么用&#xff1f;程序员该如何理解回调函数了&#xff1f; 这篇文章就为你解答这些问题&#xff0c;读完这篇文章后&#xff0c;你的编程…

连接肠菌与宿主的桥梁:肠菌代谢物——肠菌功能研究新篇章

人的肠道内寄居着多种微生物&#xff0c;他们统称为肠道菌群。研究表明&#xff0c;肠道菌群失衡会导致多种人体疾病&#xff0c;包括糖尿病、肿瘤、心血管疾病、神经系统疾病等。 那么肠菌是怎么对人产生影响的呢&#xff1f;答案是肠菌产生的代谢物&#xff08;1, 2&#xf…

Vue3+nodejs全栈项目(资金管理系统)——后端篇(一)登录、注册

文章目录初始化创建项目配置跨域配置解析表单数据的中间件安装bodyparser初始化用户路由模块抽离用户路由模块中的处理函数登录注册新建admin表安装并配置mysql模块注册检测表单数据是否合法检测用户名是否被占用对密码进行加密处理bcryptjs插入新用户测试登录根据名字查询用户…

CDH6.3.2处理Zookeeper因未授权访问造成的漏洞

1.zookeeper的基本情况 zookeeper是分布式协同管理工具&#xff0c;常用来管理系统配置信息&#xff0c;提供分布式协同服务。zookeeper官网下载软件包&#xff0c;bin目录下有客户端脚本和服务端脚本。另外还有个工具对理解和使用zookeeper服务非常有用&#xff0c;即zk-ui&am…

文本层次语义元素

html5-文本层次语义元素 第1关_文本层次语义元素相关概念 第2关_文本层次语义元素 编程要求 在右侧编辑器中的Begin - End区域内补充代码&#xff0c;具体要求是&#xff1a; 1.运用HTML5中的语义化元素设计一个文章区(<article>)。 2.文章区中的头部为文章的标题&a…

如何自己开传奇单机架设超详细图文教程

如何自己成为传奇&#xff0c;如何自己搭建传奇非官服&#xff0c;首先下载传奇服务器后&#xff0c;会有两个压缩包&#xff0c;一个用于服务器&#xff0c;一个用于游戏补丁文件 传奇单机设置-GOM引擎的超详细图文教程 版本文件包含.exe&#xff0c;以上文件都不起作用。 …

共享里的文件被删除了怎么办?可尝试这三种恢复方法

共享里的文件被删除了怎么恢复&#xff1f;删除之后就马上去回收站找&#xff0c;可是没回收站里没有怎么办&#xff1f;——来自某xx小伙伴的咨询。如果你也出现同样的疑惑&#xff0c;那么可以尝试下面的三种方法恢复共享里的文件。 方法一、以前的版本恢复 从Windows XP SP…

前端获取ip地址判断国家请求不同baseUrl

项目背景 项目新需求&#xff1a;根据ip地址区分出国内外上网&#xff0c;axios 使用不同的baseurl&#xff0c;上传阿里oss不同bucket 获取ip地址 一、使用js自己获取 使用 RTCPeerConnection.setLocalDescription() WebRTC API pc端没问题&#xff0c;移动端不好使 //获取…

react源码分析:深度理解React.Context

开篇 在 React 中提供了一种「数据管理」机制&#xff1a;React.context&#xff0c;大家可能对它比较陌生&#xff0c;日常开发直接使用它的场景也并不多。 但提起 react-redux 通过 Provider 将 store 中的全局状态在顶层组件向下传递&#xff0c;大家都不陌生&#xff0c;…

第十期|惊!游戏广告主投放十万被骗,推广作弊竟全是虚拟用户

顶象防御云业务情报中心发现&#xff0c;在互联网生态中存在很多灰色的渠道刷量工作室&#xff0c;渠道方通常以低廉的价格通过这些工作室提高广告URL点击量、应用下载激活量、注册量和真实的推广数据提起反馈给广告主结算&#xff0c;但其提供的数据质量和价格一样低廉&#x…

用DevExpress实现基于HTMLCSS的桌面应用程序的UI(一)

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

RabbitMQ的高可用和高可靠

01、什么是高可用机制 所谓高可用&#xff1a;是指产品在规定的条件和规定的时刻或时间内处于可执行规定功能状态的能力。 当业务量增加时&#xff0c;请求也过大&#xff0c;一台消息中间件服务器的会触及硬件&#xff08;CPU,内存&#xff0c;磁盘&#xff09;的极限&#x…

从输入url到页面展现的全过程

作为一道面试经常会问到的题目&#xff0c;看过很多写的很好的博文&#xff0c;整理成自己的笔记 大概来说分为以下几个过程&#xff1a; 输入url地址应用层进行DNS解析应用层生成HTTP请求报文传输层建立TCP连接网络层使用IP协议来选择路线数据链路层实现网络相邻节点间可靠的…

vue-pdf+element实现全屏窗口pdf分页预览,pdf打印实现和解决打印乱码

一.源码 vue-pdf打印实现和乱码解决https://download.csdn.net/download/lucky_fang/85498529 二.全屏窗口打印预览效果 分页预览pdf 窗口采用element窗口模板实现&#xff0c;样式可根据自己喜欢的效果进行修改 Element官方文档 终于可以打印测试了&#xff0c;乱码~&…

【优化求解】粒子群算法求解干扰受限无人机辅助网络优化问题【含Matlab源码 230期】

⛄一、粒子群简介 1 粒子群优化算法 粒子群优化算法( PSO)是指通过模拟鸟群觅食的协作行为,实现群体最优化。PSO是一种并行计算的智能算法,其基本模型如下: 假设群体规模为M,在D维空间中,群体中的第i个个体表示为XD ( xm1,xm2…xm D)T,速度表示为VD ( vm1,vm2…vm D)T,位置( …