VMware + Ubuntu18.04 搭建Hadoop集群环境的图文教程
作者:jiachengren 发布时间:2023-01-30 03:19:33
前言
本次教程是基于学校的大数据实验而做的,博主在搭建的同时,记录了自己的命令运行结果截图,在图书馆搭建环境+写博客,也花了将近3个小时。长时间眼睛对着电脑会很伤眼睛,所以童鞋们需要注意保护好眼睛,做做眼保健操。希望学到的童鞋可以点个赞!
VMware克隆虚拟机(准备工作,克隆3台虚拟机,一台master,两台node)
先在虚拟机中关闭系统
右键虚拟机,点击管理,选择克隆
3.点击下一步,选择完整克隆,选择路径即可
1.创建Hadoop用户(在master,node1,node2执行)
顺序执行以下命令即可
1.创建hadoop用户
sudo useradd -m hadoop -s /bin/bash
设置用户密码(输入两次)
sudo passwd hadoop
添加权限
sudo adduser hadoop sudo
切换到hadoop用户(这里要输入刚刚设置的hadoop密码)
su hadoop
运行截图展示(以master虚拟机为例)
2.更新apt下载源(在master,node1,node2执行)
sudo apt-get update
截图展示(以master为例)
3. 安装SSH、配置SSH免密登录 (在master,node1,node2执行)
1.安装SSH
sudo apt-get install openssh-server
2.配置SSH免密登录
ssh localhost
exit
cd ~/.ssh/
ssh-keygen -t rsa #一直按回车
cat ./id_rsa.pub >> ./authorized_keys
3.验证免密
ssh localhost
exit
cd ~/.ssh/
ssh-keygen -t rsa #一直按回车
cat ./id_rsa.pub >> ./authorized_keys
截图展示(以master为例)
4.安装Java环境 (在master,node1,node2执行)
1.下载 JDK 环境包
sudo apt-get install default-jre default-jdk
2.配置环境变量文件
vim ~/.bashrc
3.在文件首行加入
export JAVA_HOME=/usr/lib/jvm/default-java
4,。让环境变量生效
source ~/.bashrc
5.验证
java -version
截图展示(以master为例)
修改主机名(在master,node1,node2执行)
1.将文件中原有的主机名删除,master中写入master,node1中写入node1,node2…(同理)
sudo vim /etc/hostname
重启三个服务器
reboot
重启成功后,再次连接会话,发现主机名改变了
截图展示(以node1为例)
修改IP映射(在master,node1,node2执行)
查看各个虚拟机的ip地址
ifconfig -a
如果有报错,则下载 net-tools ,然后再运行即可看到
sudo apt install net-tools
3台虚拟机中都需要在 hosts 文件中加入对方的ip地址
sudo vim /etc/hosts
SSH免密登录其他节点(在master上执行)
在Master上执行
cd ~/.ssh
rm ./id_rsa* # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa # 一直按回车就可以
cat ./id_rsa.pub >> ./authorized_keys
scp ~/.ssh/id_rsa.pub hadoop@node1:/home/hadoop/
scp ~/.ssh/id_rsa.pub hadoop@node2:/home/hadoop/
在node1,node2都执行
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完就删掉
验证免密登录
ssh node1
exit
ssh node2
exit
以master为例截图展示
安装hadoop3.2.1(在master中执行)
有些镜像的下载网址失效了,这里贴出官网的下载地址。
下载网址:hadoop3.2.1下载网址
下载好,之后通过VMware-Tools上传到master的/home/hadoop中
cd /home/hadoop
sudo tar -zxf hadoop-3.2.1.tar.gz -C /usr/local #解压
cd /usr/local/
sudo mv ./hadoop-3.2.1/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限
验证
cd /usr/local/hadoop
./bin/hadoop version
配置hadoop环境(这一步需要很仔细)
配置环境变量
vim ~/.bashrc
在首行中写入
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使得配置生效
source ~/.bashrc
创建文件目录(为后面的xml做准备)
cd /usr/local/hadoop
mkdir dfs
cd dfs
mkdir name data tmp
cd /usr/local/hadoop
mkdir tmp
配置hadoop的java环境变量
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
vim $HADOOP_HOME/etc/hadoop/yarn-env.sh
两个的首行都写入
export JAVA_HOME=/usr/lib/jvm/default-java
(master中)配置nodes
cd /usr/local/hadoop/etc/hadoop
删除掉原有的localhost,因为我们有2个node,就把这2个的名字写入
vim workers
node1
node2
配置 core-site.xml
vim core-site.xml
因为我们只有一个namenode,所以用fs.default.name,不采用fs.defalutFs
其次确保/usr/local/hadoop/tmp这个目录存在
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
配置 hdfs-site.xml
vim hdfs-site.xml
dfs.namenode.secondary.http-address确保端口不要和core-site.xml中端口一致导致占用
确保/usr/local/hadoop/dfs/name :/usr/local/hadoop/dfs/data 存在
因为我们只有2个node,所以dfs.replication设置为2
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
配置mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置 yarn-site.xml
vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
将hadoop压缩
cd /usr/local
tar -zcf ~/hadoop.master.tar.gz ./hadoop #压缩
cd ~
复制到node1中
scp ./hadoop.master.tar.gz node1:/home/hadoop
复制到node2中
scp ./hadoop.master.tar.gz node2:/home/hadoop
在node1、node2上执行
解压
sudo rm -r /usr/local/hadoop # 删掉旧的(如果存在)
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local #解压
sudo chown -R hadoop /usr/local/hadoop #修改权限
首次启动需要先在 Master 节点执行 NameNode 的格式化,之后不需要
hdfs namenode -format
(注意:如果需要重新格式化 NameNode ,才需要先将原来 NameNode 和 DataNode 下的文件全部删除!!!!!!!!!)
#看上面的文字,不要直接复制了
rm -rf $HADOOP_HOME/dfs/data/*
rm -rf $HADOOP_HOME/dfs/name/*
启动 (在master上执行)
start-all.sh
mr-jobhistory-daemon.sh start historyserver
master中,出现Warning不影响
jps
运行截图展示
关闭hadoop集群(在master上执行)
stop-all.sh
mr-jobhistory-daemon.sh stop historyserver
运行截图展示
来源:https://blog.csdn.net/weixin_43967679/article/details/115218965
猜你喜欢
- 来自Windows Live Hotmail官方Space的公告指出,现有的Windows Live Hotmail Plus用户已开通了P
- 垂直搜索是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理
- 今天来介绍Godaddy主机用户使用Microsoft Publisher 2007 (Vista)上传站点,在你上传内容至你的网站前,需准
- 从PHP5.2.10版本开始(现在有PHP5.2.10和5.3两个版本),有None-Thread Safe与Thread Safe两种版本
- 有Godaddy主机用户问可以给Godaddy添加域名吗?那当然了,从某一个托管帐户托管多个域名是有可能的。Deluxe及Premium计划
- 世界上总有些事物值得大家去反复玩味,比如“美女”这码子事。古时候的《陌上桑》里写罗敷,只写“少年见罗敷,脱帽著鞘头……耕者忘其田,锄者忘其锄
- 刚开始做网站的时候,我就想一下子建立起来就开始盈利,后来发现这根本就不可能。因为网站要盈利,流量必须是前提。后来,通过慢慢琢磨发现,光是有流
- 曾是最大中文博客服务商,站方称是硬件问题,博客数据不会丢失曾经的中国博客网、现在的博尚网——&
- 打开:mode/o/m_friend.php查找:InitGP(array('step','page',
- 一、Docker Compose是什么?Docker Compose是一个工具,用于定义和运行多容器应用程序的工具;Docker Compo
- 衡量一个网站是否运营的成功,我想都离不开这几个要素,专业,互动,用户体验,亮点(围绕以盈利模式确立的亮点).一个简单的公式,专业+互动+用户
- 很多时候我们会发现自己的系统问题越来越多,如果将就使用,那系统运行效率肯定不会很高,甚至还无法正常运行,如果选择重新安装系统,那不但麻烦不说
- 搜搜soso刚刚独立出来几天,针对以前的google提供信息做以对比,发现搜搜还是有许多变化的。从各个方面来看soso网站排名优化相关工作,
- 背景自己手上有一个项目服务用的是AWS EC2,最近从安全性和性能方面考虑,最近打算把腾讯云的MySQL数据库迁移到AWS RDS上,因为A
- VMware vSphere client客户端是用来连接与管理ESX或ESXi主机的,在VMware vSphere client可以方便
- 软件发行周期的终结正如在上面关于Google和netscape的讨论中所指出的,互联网时代定义特性之一就是,它是以服务方式传递,而不是产品。
- windows 2000的DNS服务器中有两种类型的搜索区域:“正向搜索区域”和&ldquo
- Windows系统在长时间地工作之后,往往会不可避免地出现无法启动或者运行出错的故障,面对这些故障我们是选择将就使用,还是选择重新安装系统?
- 本人是一个菜鸟级的算站长吧,本来做网站是要学习编程技术的,但是后来觉得没有实际运用有点不好玩,加上同事业余的时候也做了一个很好的网站,天天在
- PHPCMS V9的评论在用户体验方面,并不让人多么满意,更多的用户希望能够有用户体验更好的Ajax版本的评论出现,但一直也未见PHPCMS