1.vm安装
VMware是一个虚拟PC的软件,可以在现有的操作系统中虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统。
1)下载安装包
下载地址:vm.zip(应用系统开发课程设计)-其它文档类资源-CSDN下载
获取压缩包后,打开压缩包。
打开以上安装程序,执行安装。
2)双击软件进行安装,并点击下一步。提醒:首次安装可能会安装一个环境并重启电脑。
3)选择“我接受许可协议中的条款”,点击下一步;选择软件安装的路径,建议放在其他盘,并点击下一步。
4)取消检查更新和用户体验计划,点击下一步;再点击下一步;点击安装。
5)安装完成选择点击“许可证”,输入许可证密钥并点击输入。许可密钥在压缩包中的key文本文件中。
6)安装完毕后打开VMware,许可信息显示已许可。
附:安装Mac OS插件
我们安装的VMware是无法安装Mac OS系统的,这时候我们就需要安装一个名为unlocker-master的插件。
1、安装前首先关闭VMware,然后到服务界面将VMware的服务全部都禁用掉。以保证安装的顺利进行。
2、将下载下来的unlocker-master解压,右键以管理员身份运行win-install.cmd。
3、插件就会在以下界面进行下载安装,安装完毕后界面会自动关闭,期间无需任何操作。
4、安装完毕后,再次打开VMware,在虚拟机向导里可以看出有Apple Mac OS的选择了,安装该插件之前该虚拟机是没有此选项的。
以上就是虚拟机VMware的安装教程,关于第二个步骤,如果你没有安装Mac的想法,可以不用安装。
2.创建虚拟机(安装Linux服务器版本)
Ubuntu 服务器版的下载地址:https://cn.ubuntu.com/download/thank-you?version=20.04.2&architecture=amd64
Ubuntu官网:Get Ubuntu | Download | Ubuntu
下载成功后,可在下载文件夹中看到该文件。
这就是Ubuntu的镜像文件,我们打开VMware,选择创建虚拟机。
点击完成按钮即可完成创建,接着在虚拟机设置中将网络设置为桥接模式(自动)。
3.网络配置
网络配置参见我的以下文章,由于设置步骤很具有代表性,因此我将其单独成文。
使用VMware workstations配置Ubuntu 20.04.2 LTS网络_kylinmin的博客-CSDN博客
安装openSSH服务:
sudo apt-get update
sudo apt-get install openssh-server
测试ssh连接: ssh localhost ,然后输⼊要连接的电脑的密码(默认的用户是当前电脑的用户)这里需要输入yes来确定建立连接。
输出以下内容即表示连接成功:
hadoop@hadoop:~$ ssh localhost
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-74-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Wed 23 Jun 2021 07:29:16 AM UTC
System load: 0.14 Processes: 280
Usage of /: 33.0% of 18.57GB Users logged in: 1
Memory usage: 17% IPv4 address for ens33: 192.168.1.8
Swap usage: 0%
74 updates can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
Last login: Wed Jun 23 07:28:18 2021 from 192.168.1.7
在网络联通且ssh服务安装成功后,我们便可以采用远程工具连接该虚拟机进行操作。
这里列举两种常用连接工具:
a.putty
PuTTY是一款开源(Open Source Software)的连接软件,主要由Simon Tatham维护,使用MIT许可证授权。包含的组件有:PuTTY, PuTTYgen,PSFTP, PuTTYtel, Plink, PSCP, Pageant,默认登录协议是SSH,默认的端口为22。Putty是用来远程连接服务器的,支持SSH、Telnet、Serial等协议的连接。其中最常用的是SSH。用它来远程管理Linux十分好用,其主要优点如下:
◆ 完全免费;
◆ 在Windows 9x/NT/2000下运行的都非常好;
◆ 全面支持SSH1和SSH2;
◆绿色软件,无需安装,下载后在桌面建个快捷方式即可使用;
◆ 体积很小,不到1M;
◆ 操作简单,所有的操作都在一个控制面板中实现。
Putty的下载安装教程如下:
1、去putty官网PuTTY: a free SSH and Telnet client下载对应位数的软件到本地,下载地址:Download PuTTY: latest release (0.78)
2、下载得到的是一个安装文件,安装即可使用。
双击打开后,进入Putty的安装界面。安装过程较为简略,故此处不再赘述。
putty的基本使用方法如下:
1、打开需要连接的目标服务器(虚拟机),本例中以虚拟机Hadoop为例,其IP为:192.168.1.8。
2、打开putty,在面板中输入你要连接的目标的IP地址或者主机名,然后在下方的Saved Sessions方框内输入会话名,并点击“Save”即可保存当前设置以方便下次登录,如上图所示。
3、在Default Settings栏目中选中你保存的会话,之后点击打开,即可打开会。
4、之后putty页面会跳转,在跳转的页面中输入你连接的目标的用户账号,之后回车,再输入密码,验证通过之后即可远程登录,如下图所示。点击Open后,有时候会有一个提示,需要生成一个Key,点击确认即可。
需要注意的是为了保证密码的隐蔽性,此处输入密码时不会明文显示,只管输入即可。
5、远程登录成功之后,就可以在Putty里进行操作了。操作方式和在虚拟机(或服务器)上操作一样了,甚至还要方便。因为Putty里支持复制和粘贴,可以很便捷的操作。
最后需要注意一点,Putty的登录信息一般会保存在本机上,所以在使用公用电脑的时候,务必要注意清除登录信息。
b.winscp
WinSCP 是一个 Windows 环境下使用的 SSH(Source Shell)的开源图形化 SFTP(SSH File Transfer Protocol) 客户端。同时支持 SCP(Source Copy Protocol) 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。
一、WinSCP下载和安装
- 下载安装版 或者 WinSCP download | SourceForge.net
- 请到 WinSCP下载页面(英文),单击您想下载的版本所对应的
Installation package
下载安装包。然后到 翻译页面(英文) 选择下载简体中文(Simplified Chinese)插件,将 ZIP 包解压缩到 WinSCP 安装路径。具体情况请阅读 完全指导(英文)。此软件还可以结合 PuTTY,以方便用户的远程登录。 - 安装:一路单击
下一步
即可。
二、主要功能
- 图形用户界面
- 多语言
- 与 Windows 完美集成(拖拽,URL,快捷方式)
- 支持所有常用 文件操作
- 支持基于 SSH-1、SSH-2 的 SFTP 和 SCP 协议
- 支持批处理 脚本和命令行方式
- 多种半自动、自动的 目录同步 方式
- 内置文本编辑器
- 支持 SSH 密码、键盘交互、公钥和 Kerberos(GSS)验证
- 通过与 Pageant(PuTTY Agent)集成支持各种类型 公钥验证
- 提供 Windows Explorer 与 Norton Commander 界面
- 可选地 存储会话信息
- 可 将设置存在配置文件中而非注册表中,适合在移动介质上操作
三、文件操作
四、连接到远程计算机
使用 WinSCP 可以连接到一台提供 SFTP(SH File Transfer Protocol)或 SCP (Secure Copy Protocol)服务的 SSH(Secure Shell)服务器,通常是 UNIX 服务器。SFTP 包含于 SSH-2 包中,SCP 在 SSH-1 包中。两种协议都能运行在以后的 SSH 版本之上。WinSCP 同时支持 SSH-1
和 SSH-2
。 但 WinSCP 不支持编码选择,也就是说,你在 Windows 下使用 WinSCP 连接一个 Linux 机器,因为 Linux 和 Windows 的默认编码不同,因此是无法访问上面的中文文件或者文件夹的(将看到乱码)。一种解决方法就是在打开 WinSCP 时登录中的 Advanced Options–Environment
中将 UTF-8 encoding for filenames
设为 on
。
五、程序界面
WinSCP 有两种界面可供您选择。
可以在 安装 时选择喜欢的界面,也可以以后改变 设置。
如果您是第一次使用 WinSCP,建议选择 Windows Explorer 界面,因为 Windows 用户比较熟悉这个界面。当然,如果您习惯 Norton Commander 风格,就选择 Norton Commander
界面,它注重于方便的键盘操作,你完全可以脱离鼠标,更快地进行操作。
利⽤SSH的ssh-keygen命令⽣成密码,并将密钥加⼊授权。
cd ~/.ssh/
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
这样在登录hadoop集群时就可以省略输⼊密码的过程了。 这时使⽤命令 ssh localhost 就可以不需要输⼊密码登录服务器了。
4.安装JDK
首先下载所需要的jdk安装包,此处我将已经下载好的jdk与Hadoop安装包提供给大家。
下载好所需要的安装包后即可开始安装。
也可到Oracle官网下载该jdk:Oracle | Integrated Cloud Applications and Platform Services
Java SE - Downloads | Oracle Technology Network | Oracle
选择下载Oracle JDK后下载JDK Download。推荐下载Java SE 8版本。
因为要在Ubuntu中安装JDK,所以在具体的下载⻚⾯中选择对应的下载链接。
推荐下载压缩包的版本,这样就可以通过解压缩就直接使⽤了,很⽅便。
使⽤命令:
wget https://download.oracle.com/otn/java/jdk/8u291-
b10/d7fc238d0cbf4b0dac67be84580cfb4b/jdk-8u291-linux-x64.tar.gz?
AuthParam=1622859984_6b467f8e8daea9cfe332d4853d355d15
可以直接在虚拟机中下载。
如果是在宿主机中下载的JDK,要使⽤scp这个命令将下载好的JDK软件输输到虚拟机中去。
熟悉Linux的相关命令:
scp jdk-8u291-linux-x64.tar.gz hadoop@10.24.139.54:/home/hadoop/
注意要使⽤虚拟的⽤户进⾏链接。
也可以使用winscp远程上传至虚拟机。
将JDK安装到/usr/lib/jvm⽬录中
cd /usr/lib
sudo mkdir jvm
cd ~
sudo cp jdk-8u291-linux-x64.tar.gz /usr/lib/jvm/
cd /usr/lib/jvm/
ls
sudo tar -zxvf jdk-8u291-linux-x64.tar.gz
sudo mv jdk1.8.0_291/ jdk1.8
输入命令时可以使用tab键补全命令,不必一个一个字母敲。
将jdk配置到环境变量中去。
vim .bashrc
将jdk的内容配置在该⽂件的最后⼀⾏.
# config the jdk1.8
export JAVA_HOME=/usr/lib/jvm/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source .bashrc
让配置⽂件⽣效。
java -version
检查jdk安装的情况。
hadoop@hadoop:~$ java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
注意在使用putty时采用shift+insert键进行粘贴。
5.安装Hadoop
先下载Hadoop,我在上面的资料中已经放入了所使用的安装包,当然也可以去阿帕奇的官网下载。
Welcome to The Apache Software Foundation!
直接移动到⽹站的最下⾯的部分,APACHE PROJECT LIST在这其中选择Hadoop。
点击Hadoop进⼊到Hadoop⼦项⽬中。
点击Download按钮后,进⼊下载⻚⾯
点击Binary download下的连接可以进⾏下载。
如果虚拟机可以连接上⽹络,也可以使⽤wget命令进⾏下载。这样就可以直接将Hadoop的压 缩包下载到虚拟机上,减少其他的上传等操作。
wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
在宿主机中下载完成后, 还需要使⽤scp使⽤,或者是WinSCP等相关的软件将hadoop软件包上传到虚拟机中去.
scp hadoop-3.2.2.tar.gz hadoop@10.24.139.54:/home/hadoop/
上传完成后可以在虚拟机中查找,上传结果。
同样还可以使用winscp进行上传。
安装Hadoop,⾸先将Hadoop复制到/usr/local/⽬录下
sudo cp hadoop-3.2.2.tar.gz /usr/local/
cd /usr/local/
sudo tar -zxvf hadoop-3.2.2.tar.gz
然后执⾏下列命令,查看解压结果,并将原始包删除。
接着可以使⽤命令 sudo mv hadoop-3.2.2/ hadoop/ 来修改解压后的hadoop⽬录。
如果hadoop⽬录的⽤户及⽤户组不是hadoop时,需要进⾏权限的修改。
sudo chown -R hadoop ./hadoop
在/usr/local/hadoop这个⽬录中,可以查看bin⼦⽬录下的命令:
ls bin
运⾏命令 bin/hadoop version 可以查看hadoop安装后的情况
执⾏本地运⾏的案例:Grep实例
pwd #/usr/local/hadoop ⽬录下执⾏以下的命令
sudo mkdir input
cp ./etc/hadoop/*.xml ./input/
./bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoopmapreduce-examples-3.2.2.jar grep ./input/ ./output 'dfs[a-z.]+'
cat ./output/*
6.环境测试及小案例
注意如何检查安装的情况:
1. cat /etc/netplan/00-installer-config.yaml
2. ssh localhost
3. java -version
4. cd /usr/local/hadoop
bin/hadoop version
5. bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduceexamples-3.2.2.jar grep ./input ./output 'dfs[a-z.]+'
rm -rf output/
再次执⾏上⾯的命令后
cat ./output/*
7.伪分布式的Hadoop应用
1.⾸先进⼊到⽬录中:/usr/local/hadoop/etc/hadoop
cd /usr/local/hadoop/etc/hadoop
2.到这个⽬录中就是要修改两个⽂件 core-site.xml。修改的命令是:
vim core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<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>
hdfs-site.xml。修改的命令是:
vim hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<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>
接下来进⼊到hadoop的安装⽬录。 cd /usr/local/hadoop
1)Hadoop初始化
./bin/hdfs namenode -format
WARNING: /usr/local/hadoop/logs does not exist. Creating.
2021-06-19 07:35:23,020 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = hadoop/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 3.2.2
......
看到上⾯的信息,就完成了初始化的⼯作。
2)启动HDFS
cd /usr/local/hadoop
./sbin/start-dfs.sh
如果运⾏的期间出错了,⽐如说没有发现JAVA_HOME等提示,则需要在 etc/hadoop/hadoop-env.sh中配置JAVA_HOME的内容。
cd /usr/local/hadoop/etc/hadoop
vim hadoop-env.sh
在此⽂件的最下⾯添加
export JAVA_HOME=/usr/lib/jvm/jdk1.8
保存后退出,再次执⾏启动HDFS的命令。
hadoop@hadoop:/usr/local/hadoop$ ./sbin/start-dfs.sh
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [hadoop]
当看到以上信息是就是hdfs启动成功了。
也可以输入jps来再次检查启动情况。
hadoop@hadoop:/usr/local/hadoop$ jps
5415 Jps
5226 SecondaryNameNode
4811 NameNode
4975 DataNode
当启动成功后,就可以通过浏览器访问本地hadoop的Web⻚⾯了(http://localhost:9870,这 其中的localhost可以使⽤具体的IP地址来替换,⽐如我的是192.168.1.8,因为这是桥接模式下的虚拟机地址)。
3)样例执行
在HDFS中创建hadoop⽤户的⽤户⽬录
cd /usr/local/hadoop/
./bin/hdfs dfs -mkdir -p /user/hadoop
在⽤户hadoop⽬录下(/user/hadoop)再创建⼀个input⽬录
./bin/hdfs dfs -mkdir input
然后,再将/usr/local/hadoop/etc/hadoop/⽬录下的所有⽂件(.xml)“上传”到分布式系统 HDFS中的/user/hadoop/input/⽬录下。
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
这时可以通过Web去查看新创建的⽬录以及刚刚上传的⽂件都在/user/hadoop/input/⽬录下了。
执⾏样例程序Grep:
./bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar grep input output 'dfs[a-z.]+'
hadoop@hadoop:/usr/local/hadoop$
./bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar grep input output 'dfs[a-z.]+'
输出以下信息即为正确:
./bin/hdfs dfs -cat output/*
输出以下信息:
hadoop@hadoop:/usr/local/hadoop$ ./bin/hdfs dfs -cat output/*
1 dfsadmin
1 dfs.replication
1 dfs.namenode.name.dir
1 dfs.datanode.data.dir
在web端检查:
input中:
output中:
./bin/hdfs dfs -rm -r output
hadoop@hadoop:/usr/local/hadoop$ ./bin/hdfs dfs -rm -r output
Deleted output
如何停⽌hdfs:
cd /usr/local/hadoop
./sbin/stop-dfs.sh
hadoop@hadoop:/usr/local/hadoop$ ./sbin/stop-dfs.sh
Stopping namenodes on [localhost]
Stopping datanodes
Stopping secondary namenodes [hadoop]
hadoop@hadoop:/usr/local/hadoop$ ^C
此时Web⻚⾯就没有可显示的内容了。
常用Linux命令:
cd 切换⽬录
ls 查看⽂件与⽬录
mkdir 新建⽬录
rmdir 删除⽬录
cp 复制⽂件或⽬录
mv 移动⽂件与⽬录,或可⽤于更改名称
rm 删除⽂件或⽬录(必须是空的⽬录)
cat 查看⽂件内容
tac 反向查看⽂件内容
more ⼀⻚⼀⻚翻动查看
head 取出前⾯⼏⾏
tail 取出后⾯⼏⾏touch 修改⽂件时间或创建新⽂件
chown 修改⽂件所有者权限
find ⽂件查找
tar 压缩命令
grep 查找字符串