一、安装下载虚拟机VMware17Pro
1. 下载
1、在官网下载Windows 虚拟机 | Workstation Pro | VMware | CN
下试用版就行,然后VMware17Pro密钥:MC60H-DWHD5-H80U9-6V85M-8280
该部分参考【VMware17Pro安装教程+下载地址(评论区有密钥)_哔哩哔哩_bilibili】
2、或者直接用这个下载地址:
https://download3.vmware.com/software/WKST-1700-WIN/VMware-workstation-full-17.0.0-20800274.exe
2 安装向导
2.1选择下载文件夹,建议不要放c盘
2.2
2.3
2.4
2.5
2.6 输入许可证密钥 VMware17Pro密钥:MC60H-DWHD5-H80U9-6V85M-8280
二、下载Ubuntu18.04镜像文件,并在VMware中添加虚拟机。
1 下载
在国内清华镜像网下载Ubuntu18.04镜像文件
(https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/)
【参考帖子
https://blog.csdn.net/qq_38382925/article/details/112852601?ops_request_misc=%7B%22request_id%22%3A%22169293674916800197034877%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=169293674916800197034877&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-112852601-null-null.142%5Ev93%5EchatgptT3_2&utm_term=%E4%B8%8B%E8%BD%BDUbuntu18.04%E9%95%9C%E5%83%8F%E6%96%87%E4%BB%B6&spm=1018.2226.3001.4187】
2 虚拟机安装
A 右上角点击新建虚拟机
B 选择自定义
C 硬件兼容性选择Workstation 16.x
D 选择自己安装镜像文件的位置
E 设置账号密码
F 选择虚拟机的位置
G 处理器配置
H 按照建议填写内存
I 网络连接选择使用网络地址转换(NAT)
J I/O控制器选择LSI Logic
K 选择SCSI
I 盘(Disk)选择创建一个新的虚拟磁盘(Create a new virtual disk)
M 盘大小默认为20G,根据自己需要选择大小。将虚拟磁盘储存为单个文件(Store virtual disk as a single file)
N 选择磁盘文件存储在哪里以及磁盘的命名
O 确认信息
P 结束
三、Hadoop伪分布式搭建
1 创建hadoop用户,并更新ubuntu系统中相应软件
按 Ctrl + Alt + T,即可进入命令行模式。
由于ubuntu系统刚完成安装,需要更新相关一些软件,确保接下来的操作可以正常完成,命令行键入sudo apt-get update
如果发现更新速度过慢,或者更新时反复跳出连接超时的提示,则可以将源文件链接地址替换为国内镜像文件从而提高更新速度。首先先利用cp命令备份当前系统的源文件,其中第一个参数时拷贝的文件路径和文件名称,第二个是拷贝到的文件路径和文件名,键入 sudo cp /etc/apt/sources.list /etc/apt/sources.bak1
打开需要更新的源文件,键入 sudo gedit /etc/apt/sources.list
将其中内容更换为清华大学开源软件镜像站,对应Ubuntu 版本代码
(https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/)
完成后保存,重新运行更新命令,键入
sudo apt-get update
sudo apt-get upgrade
2 安装vim编辑器
(1)键入sudo apt install vim
(2)正常状态
部分linux系统会自带vim编辑器,但若在终端无法启动该编辑器,则需要安装以待后续编辑配置文件,接下来跳出的提示回复Y即可
有bug版
若键入sudo apt install vim出现提示软件包有未完成的依赖关系,则说明vim-common版本过低,键入sudo apt purge vim-common删除依赖关系,再次输入sudo apt install vim即可安装,输入Y同意,等待安装完成即可。
【参考帖子
https://blog.csdn.net/qq_46274948/article/details/123662533?ops_request_misc=%7B%22request_id%22%3A%22169295739916800226520665%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=169295739916800226520665&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-123662533-null-null.142%5Ev93%5EchatgptT3_2&utm_term=vim%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187】
3 配置SSH
1、首先安装SSH server(之所以不需要安装SSH client是因为ubuntu已经默认安装了):
正常状态
键入sudo apt-get install openssh-server
bug版
ubuntu 16.04默认安装上了最新的openssh-client(可以连接其他计算机上的ssh服务),而没有安装openssh-server服务端,但是该版本自带的openssh-clien与所要安装的openssh-server所依赖的版本不同.
解决方案如下:
a、卸载openssh-client键入sudo apt-get purge openssh-client
b、卸载完毕了再执行ssh安装命令sudo apt-get install openssh-server
2、完成后连接本地SSH 键入ssh localhost 按提示输入yes,再输入hadoop用户的密码,完成登录。
【参考帖子
https://blog.csdn.net/qq_23730693/article/details/107732884?ops_request_misc=&request_id=&biz_id=102&utm_term=ubuntu%E6%B2%A1%E6%9C%89%E5%AE%89%E8%A3%85SSH%20client&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-107732884.142%5Ev93%5EchatgptT3_2&spm=1018.2226.3001.4187】
3、设置无密码登录【这个是必须搞啊 不然后面每次启动啊啥的都要输入密码 很麻烦 但是 我当时忘搞了】【这是我学习的帖子里关于该部分的步骤】
4 安装Java并配置环境变量
4.1 下载Java
安装下载java的jdk、jre,键入 sudo apt-get install default-jre default-jdk
4.2配置环境变量
1、通过vim编辑器打开环境变量的设置文件,键入sudo vim ~/.bashrc
2、在文件的尾部加上以下语句:
export JAVA_HOME=/usr/lib/jvm/default-java
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH。
3、按Esc键退出,然后输入:wq保存修改,现在键入source ~/.bashrc使环境变量生效:
5 下载编译好的hadoop,配置hadoop的环境
5.1 下载
1、在虚拟机内的火狐浏览器中输入
https://archive.apache.org/dist/hadoop/common/hadoop-2.9.2/,下载hadoop应用,默认保存至downloads文件夹下。选择已编译好的版本hadoop-2.9.2.tar.gz,因为该版本可以直接解压
2、进入解压包存放的Downloads文件夹,右键属性查看压缩包的绝对路径,然后解压至/usr/local目录下,键入
sudo tar -zxf /home/hadoop/Downloads/hadoop-2.9.2.tar.gz -C /usr/local
3、进入刚刚解压后存放的目录下
正常版:键入 cd /usr/local/
Bug版:No such file or directory
解决方法:键入cd /usr/local/hadoop/etc/hadoop
【参考帖子
https://blog.csdn.net/weixin_51775815/article/details/118032634?ops_request_misc=&request_id=&biz_id=102&utm_term=cd%20./etc/hadoop/&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-118032634.142^v93^chatgptT3_2&spm=1018.2226.3001.4187】
4.将该文件夹的名字重命名为hadoop,屏蔽掉版本号的信息,使得后续命令行输入更为简便,键入 sudo mv ./hadoop-2.9.2/ ./hadoop
5.2 配置环境
1.将已重命名的该文件夹的拥有者,指定给用户hadoop,键入 sudo chown -R hadoop ./hadoop 缺少这一步,将导致后续操作特别是运行Hadoop时,反复因权限不足而停止
2、经后续测试发现问题,虽然已经为ubuntu系统设置了java的环境变量,但hadoop实际运行时仍会出现找不到java-jdk的现象,故再对hadoop的环境文件进行修改
- 进入配置文件存储目录 键入cd ./hadoop/etc/hadoop
- 使用vim编辑器,打开环境变量文件,键入 sudo vim hadoop-env.sh
- 添加该语句 export JAVA_HOME=/usr/lib/jvm/default-java
- 按Esc键退出,然后输入:wq保存修改
- 然后使环境变量生效 键入 source hadoop-env.sh
3、截至目前,hadoop框架已经搭建好了,可以通过调用版本号进行测试hadoop是否可用,键入
cd /usr/local/hadoop
./bin/hadoop version
此处出现了hadoop的版本号等信息,成功!
6 自定义4个配置文件
此时需要检查是否在hadoop文件夹下的hadoop文件中,如果不在,键入 cd /usr/local/hadoop/etc/hadoop
6.1 core-site.xml
1.先打开xml文件,注意./表示当前文件夹下,当前应该在第二个hadoop文件夹下,键入 sudo gedit core-site.xml
2.打开xml文件应该是有内容的
如果没有内容说明打开文件不对,将替换为以下内容,
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
第一个属性表示Hadoop重要临时文件的存放目录,指定后需将使用到的所有子级文件夹都要手动创建出来,否则无法正常启动服务;
第二个被官方称之为默认系统文件的名称(the name of the default file system),实际上决定了文件系统的主机号、端口号,对于伪分布式模型来说,其主机地址为localhost。
3、替换以后出现了警告,不用管
【参考帖子
https://blog.csdn.net/qq_43543789/article/details/104221619?ops_request_misc=&request_id=&biz_id=102&utm_term=**%20(gedit:119394):%20WARNING%20**:&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-104221619.142%5Ev93%5EchatgptT3_2&spm=1018.2226.3001.4187】
6.2 hdfs-site.xml
1、参考6.1同样进入hdfs-site.xml文件,键入 sudo gedit hdfs-site.xml
2、替换
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
属性的含义分别为复制的块的数量、DFS管理节点的本地存储路径、DFS数据节点的本地存储路径。
6.3 mapred-site.xml
1、参考6.1同样进入mapred-site.xml文件,键入sudo gedit mapred-site.xml
2、替换
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn 是一种资源管理和作业调度技术,作为Hadoop 的核心组件之一,负责将系统资源分配给在 Hadoop 集群中运行的各种应用程序,并调度要在不同集群节点上执行的任务,其基本思想是将资源管理和作业调度/监视的功能分解为单独的 daemon,总体上yarn是 master/slave 结构,在整个资源管理框架中,ResourceManager 为 master,NodeManager 是 slaver。
6.4 yarn-site.xml
1、参考6.1同样进入yarn-site.xml文件,键入sudo gedit yarn-site.xml
2、替换
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
7 格式化后启动、调用实例、停止所有运行的hadoop进程
7.1格式化后启动
1、为了保险起见,执行这一步前关闭命令行模式,重新打开,放弃当前路径。
更改配置并保存后,格式化HDFS的NameNode,在这一步之前,如果hdfs-site.xml中dfs.namenode.name.dir属性指定的目录不存在,格式化命令会自动创建之;如果存在,请确保其权限设置正确,此时格式操作会清除其内部所有的数据并重新建立一个新的文件系统,键入 /usr/local/hadoop/bin/hdfs namenode -format
图中含有
INFO common.Storage: storage directory
INF0 nanenode.FSImageFormatProtobuf: 则代表成功格式化
2、然后启动全部进程,键入 start-all.sh
3、成功启动后,可以通过web浏览器访问http://localhost:50070,可以看到如下界面:
如果没出来,键入 jps 查看六大进程,然后查对应进程的解决方案,少哪个查哪个,大概率是前面配置出问题,建议先检查之前配置。
4、在HDFS中创建用户目录,键入 hdfs dfs -mkdir -p /user/hadoop
5、创建input目录,用于输入数据键入 hdfs dfs -mkdir -p input
6.将所需的xml配置文件复制到input中,键入 hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input
7、如果系统之前运行过hadoop,则需要删除output目录,键入 hdfs dfs -rm -r output
7.2 调用示例
1.运行实例,需要先进入hadoop的文件夹下,键入 cd /usr/local/hadoop
2.键入
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount input output
要等一会,结果如下图
3.然后进入hadoop下面的bin,键入 cd /usr/local/hadoop/bin
4.查看运行结果
hdfs dfs –ls ./output
hdfs dfs -cat output/*
- 例子没问题,结束!
【参考帖子
https://blog.csdn.net/m0_53786284/article/details/120442472?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169286419716800225566701%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169286419716800225566701&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~hot_rank-2-120442472-null-null.142】