一、实验内容与要求
1、下载安装虚拟机软件;下载Ubuntu镜像文件,安装Ubuntu虚拟机;
2、在Ubuntu系统中创建用户、更新APT、安装SSH并配置SSH无密码登录、安装Java环境、配置PATH环境变量;
3、下载Hadoop并解压;
4、修改配置文件;
5、名称节点格式化;
6、启动Hadoop,JPS查看是否启动成功;
7、运行测试例子;
8、在安装好的Hadoop伪分布式环境中操作HDFS命令;
9、关闭Hadoop。
二、实验步骤
1、下载安装虚拟机软件VMware,如图1至图6所示;
下载Ubuntu镜像文件,访问https://mirrors.aliyun.com/ubuntu-releases/18.04.6/,进行下载,如图7所示;
安装Ubuntu虚拟机。
图1
图2
图3
图4
图5
图6
至此,VMware安装成功。
接下来开始下载Ubuntu镜像文件,选择unbuntu-18.04.6-desktop-amd64.iso版本,如图7绿色方框所示;
图7
安装Linux操作系统:
步骤一:新建一个虚拟机,按安装向导提示操作,如图8至图13所示;
其中,将刚刚下载好的镜像文件安装到虚拟机中,如图9所示;
设置磁盘大小,如图12所示;
图8
图9
图11
图12
图13
点击完成后,进入Ubuntu界面,如图14所示;
图14
等待加载完成,如图15所示;
图15
图16
加载完成后,登录即可。
2、在Ubuntu系统中创建用户、更新APT、安装SSH并配置SSH无密码登录、安装Java环境、配置PATH环境变量;
步骤一:
打开一个终端(可以使用快捷键 Ctrl+Alt+T),使用如下命令创建 一个用户hadoop:
$ sudo useradd -m hadoop -s /bin/bash
使用如下命令为hadoop用户设置密码:
$ sudo passwd hadoop
为hadoop用户增加管理员权限:
$ sudo adduser hadoop sudo
sudo是Linux系统管理指令,管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。后面在执行软件安装时,都是
采用hadoop用户登录,而不是root用户登录,因此,使用hadoop用户登录Linux系统以后,当需要执行只有root用户有权限执行的命令时,都要在命令前面加上sudo,才能够顺利执行,如果不加上sudo,就会被拒绝执行。
当使用sudo命令时,会要求输入当前用户的密码。需要注意的是,Windows系统中,用户输入密码,都会在屏幕上显示“*”号作为反馈,但是,在Linux系统中,当输入密码时,不会在屏幕上显示“*”号作为反馈,这时,不要误以为系统死机或者键盘出了问题,只要输完密码后回车即可。
Linux系统的根目录“/”下,存在很多个目录,其中有两个目录,一个是 “/home”目录,一个是“/usr”目录。“/home”目录包含了各个用户的用户目录,每当在Linux系统中新建一个普通用户时,系统就会自动为这个用户创建用户主目录(主文件夹)。
“/usr”目录是“Unix Software Resource”的简写,表示这里是各种软 件安装的目录。对于“/usr”目录而言,只需要关注它下面的子目录 “/usr/local”,一般由用户安装的软件都建议安装到该目录下。
Linux系统对文件权限有着严格的规定,如果一个用户不具备权限,将无法访问目录及其下面的文件。比如,使用hadoop用户登录Linux系统以后, 从 网 络 上 下 载 了“/usr/local/”目录下,会得到一个类似“/usr/local/hbase”这样的目录,这时,hadoop用户并不是“/usr/local/hbase”这个目录的所有者,无法对该目录进行相关操作,从而无法正常使用HBase。这时,就必须采用chown命令进行授权,让hadoop用户拥有对该目录的权限,具体命令如下:
$ sudo chown -R hadoop /usr/local/hbase
APT是一个非常优秀的软件管理工具,Linux系统采用APT来安装和管理各种软件。安装成功Linux系统以后,需要及时更新APT软件,否则,后续一些软件可能无法正常安装。登录Linux系统,打开一个终端(可以使用快捷键Ctrl+Alt+T),进入Shell命令提示符状态,然后输入下面命令:
$ sudo apt-get update
Ubuntu中终端输入的命令一般都是使用英文输入。但是,有时候也会需要输入中文。Linux系统的中英文输入法的切换方式是使用键盘“shift”键来切换,或者,也可以点击系统桌面顶部菜单的输入法按钮进行切换。中文输入法可以用Ubuntu自带的Sunpinyin,不需要额外安装中文输入法。
执行下面命令完成vim编辑器的安装:
$ sudo apt-get install vim
可以执行下面命令创建一个word.txt文件:
$ cd ~
$ vim word.txt
从键盘输入“
:wq
”三个英文字母,然后回车,表示保存文件并退出。
步骤二:更新APT
为了确保Hadoop安装过程顺利进行,用hadoop用户登录Linux系统后打开一个终端,执行下面命令更新APT软件:
sudo apt-get update
步骤三:安装SSH、配置SSH无密码登录
Ubuntu默认已安装了SSH客户端,因此,这里还需要安装SSH服务端,请在Linux的终端中执行以下命令:
$ sudo apt-get install openssh-server
安装后,可以使用如下命令登录本机:
$ ssh localhost
执行该命令后会出现如图所示的提示信息(SSH首次登录提示),输入“yes”,然后按提示输入密码hadoop,就登录到本机了。
首先,输入命令“exit”退出刚才的SSH,就回到了原先的终端窗口;然后,可以利用ssh-keygen生成密钥,并将密钥加入到授权中,命令如下:
$ cd ~/.ssh/ #
若没有该目录,请先执行一次
ssh localhost
$ ssh-keygen -t rsa #
会有提示,都按回车即可
$ cat ./id_rsa.pub >> ./authorized_keys #
加入授权
再执行
ssh localhost
命令,无需输入密码就可以直接登录了
步骤四:安装Java环境
在Ubuntu虚拟机中从
https://www.oracle.com/java/technologies/downloads/#java8-linux下载JDK 1.8以上版本。
执行如下命令创建“/usr/lib/jvm”目录用来存放JDK文件:
$cd /usr/lib
$sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
执行如下命令对安装文件进行解压缩:
$cd ~ #进入hadoop用户的主目录
$cd Downloads
$sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm
下面继续执行如下命令,设置环境变量:
$vim ~/.bashrc
s
上面命令使用vim编辑器打开了hadoop这个用户的环境变量配置文件,请在这个文件的开头位置,添加如下几行内容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存.bashrc文件并退出vim编辑器。然后,继续执行如下命令让.bashrc文件的配置立即生效
$source ~/.bashrc
这时,可以使用如下命令查看是否安装成功:
$java -version
如果能够在屏幕上返回如下信息,则说明安装成功:
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
可以看到,此处并没有安装成功,根据提示安装或升级以下内容:
sudo apt install default-jre
sudo apt install default-jre
sudo apt install openjdk-8-jre-headless
接下来再重复这个动作,查看是否安装成功,若还未成功;
在配置文件中,Java版本号不一致,改一下即可;
可以看到Java环境已安装成功。
步骤五:配置PATH变量
首先使用vim编辑器打开“~/.bashrc”这个文件,然后,在这个文件的
最前面位置加入如下单独一行:
export PATH=$PATH:/usr/local/hadoop/sbin
在后面的实验过程中,如果要继续把其他命令的路径也加入到PATH变量中,也需要继续修改“~/.bashrc”这个文件。当后面要继续加入新的路径时,只要用英文冒号“:”隔开,把新的路径加到后面即可,比如,如果要继续把“/usr/local/hadoop/bin”路径增加到PATH中,只要继续追加到后面,如下所示:
export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin
添加后,执行命令“source ~/.bashrc”使设置生效。设置生效后,在任何目录下启动Hadoop,都只要直接输入start-dfs.sh命令即可,同理,停止Hadoop,也只需要在任何目录下输入stop-dfs.sh命令即可。
3、下载Hadoop并解压;
Hadoop包括三种安装模式:
单机模式:只在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统HDFS;
伪分布式模式:存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台机器上;
分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。
以Hadoop3.1.3为例,可以到Hadoop官网下载安装文件
使用hadoop用户登录Linux系统,打开一个终端,执行如下命令:
$ sudo tar -zxf ~/下载/hadoop-3.1.3.tar.gz -C /usr/local # 解压到/usr/local中
$ cd /usr/local/
$ sudo mv ./hadoop-3.1.3/ ./hadoop # 将文件夹名改为hadoop
$ sudo chown -R hadoop ./hadoop # 修改文件权限
Hadoop解压后即可使用,可以输入如下命令来检查 Hadoop是否可用,成功
则会显示 Hadoop版本信息:
$ cd /usr/local/hadoop
$ ./bin/hadoop version
Hadoop默认模式为非分布式模式(本地模式),无需进行其他配置即可
运行。Hadoop附带了丰富的例子,运行如下命令可以查看所有例子:
$ cd /usr/local/hadoop
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar
这里选择运行grep例子:
$ cd /usr/local/hadoop
$ mkdir input
$ cp ./etc/hadoop/*.xml ./input # 将配置文件复制到input目录下
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduceexamples-*.jar grep ./input ./output 'dfs[a-z]+'
$ cat ./output/* # 查看运行结果
4、Hadoop伪分布式安装修改配置文件;
修改配置文件
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。
Hadoop的配置文件是 xml 格式,每个配置以声明 property 的name 和 value 的方式来实现。
修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml);
修改以后,core-site.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>
同样,需要修改配置文件hdfs-site.xml,修改后的内容如下:
<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>
5、名称节点格式化;
修改配置文件以后,要执行名称节点的格式化,命令如下:
$ cd /usr/local/hadoop
$ ./bin/hdfs namenode -format
如果格式化成功,会看到“successfully formatted”的提示信息
6、启动Hadoop,JPS查看是否启动成功;
执行下面命令启动Hadoop:
$ cd /usr/local/hadoop
$ ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
如果出现如图所示的SSH提示,输入yes即可:
在终端中输入“jps”命令,如启动了名称节点、数据节点和第二名称节点
的进程,说明Hadoop启动成功。
7、运行测试例子;
使用Web界面查看HDFS信息
在Firefox浏览器 输入
localhost:9870;
8、在安装好的Hadoop伪分布式环境中操作HDFS命令;
运行Hadoop伪分布式实例
要使用HDFS,首先需要在HDFS中创建用户目录,命令如下:
$ cd /usr/local/hadoop
$ ./bin/hdfs dfs -mkdir -p /user/hadoop
接着需要把本地文件系统的“/usr/local/hadoop/etc/hadoop”目录中
的所有xml文件作为输入文件,复制到分布式文件系统HDFS中的
“/user/hadoop/input”目录中,命令如下:
$ cd /usr/local/hadoop
$ ./bin/hdfs dfs -mkdir input #在HDFS中创建hadoop用户对应的input目录
$ ./bin/hdfs dfs -put ./etc/hadoop/*.xml input #把本地文件复制到HDFS中
现在就可以运行Hadoop自带的grep程序,命令如下:
$./bin/Hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduceexamples-3.1.3.jar grep input output 'dfs[a-z]+'
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar grep ./input ./output 'dfs[a-z.]+'
删除前面已有的本地的;
运行结束后,可以通过如下命令查看HDFS中的output文件夹中的内容:
$ ./bin/hdfs dfs -cat output/*
9、关闭Hadoop。
如果要关闭Hadoop,可以执行下面命令:
$ cd /usr/local/hadoop
$ ./sbin/stop-dfs.sh
完毕。