> 文档中心 > Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

此笔记为第一篇,学校开放华为云平台,帮助我们学习有关大数据方面相关知识的学习笔记,因为是云平台,是已经搭建好linux环境了,使用的是Ubantu。精心整理,自学笔记,如有什么问题,请耐心指正

Hadoop的安装和使用

学习Hadoop的安装和使用
1 安装Hadoop前的准备工作
介绍安装Hadoop之前的一些准备工作,包括创建hadoop用户、安装SSH和安装Java环境等。
先配置hosts,输入以下命令,将本机的hostname添加到hosts文件中:

拷贝代码echo "127.0.0.1 "$HOSTNAME | sudo tee -a /etc/hosts
注:Terminal命令行@前面显示的是user时,命令以sudo开头需要输入密码:Huawei@123,后续内容不再赘述。

以下为大总体图片,接下来我会精简到小的命令行
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
1.1 创建hadoop用户
本教程需要创建一个名称为hadoop的普通用户,后续所有操作都会使用该用户名登录到Linux系统。使用root用户登录Linux 系统,然后,打开一个终端(鼠标右键单击,选择Open Terminal Here)。
1.1.1 创建一个用户hadoop
使用如下命令创建一个用户hadoop:
拷贝代码sudo useradd -m hadoop -s /bin/bash
这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 Shell。
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
1.1.2 为hadoop用户设置密码
接着使用如下命令为hadoop用户设置密码:
拷贝代码sudo passwd hadoop
本课程的实验需要多次使用此处设置的密码,请把密码设置为 hadoop,如果换成其他密码可能会造成不检测或者无法正常实验,需要按照提示输入两次密码,两次密码必须相同。
注意:设置密码的时候,会提示密码过于简单、无法解析主机等信息,无需理会,继续执行操作即可,上述提示不会对实验造成影响。
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
1.1.3 为hadoop用户增加管理员权限
然后,可为hadoop用户增加管理员权限,以方便部署,避免一些对于新手来说比较棘手的权限问题,命令如下:
拷贝代码sudo adduser hadoop sudo
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
1.1.4 登录hadoop的用户
最后,我们通过命令,登录到hadoop的用户,密码为刚刚设置的hadoop用户的密码。
拷贝代码su hadoop登录成功后,终端的命令行前都显示hadoop。
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

1.2 注意
注意:Terminal(命令行终端)命名行@前面为hadoop时,命令前带有sudo时,需要输入密码hadoop,方可正常执行命令,后续内容不再赘述。

1.3 安装SSH
Ubuntu默认已安装了SSH客户端,因此,这里还需要安装SSH服务端

1.3.1 安装SSH服务端
请在Linux的终端中执行以下命令:
下载安装包:

拷贝代码sudo wget http://file.ictedu.com/fileserver/big_data_common/data/openssh-client_7.2p2-4_amd64.deb

sudo wget http://file.ictedu.com/fileserver/big_data_common/data/openssh-server_7.2p2-4_amd64.deb

Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
安装软件:
拷贝代码sudo dpkg -i openssh-client_7.2p2-4_amd64.deb
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

拷贝代码sudo dpkg -i openssh-server_7.2p2-4_amd64.deb
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

1.3.2 登录本机
安装后,可以使用如下命令登录本机:拷贝代码ssh localhost
执行该命令后会,会出现“yes/no”选择提示,输入“yes”,然后按提示输入密码hadoop,就登录到本机了。
然后,请输入命令“exit”退出刚才的SSH,就回到了原先的终端窗口。
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
1.3.3 用ssh-keygen生成密钥
然后,可以利用ssh-keygen生成密钥,并将密钥加入到授权中,命令如下:拷贝代码cd ~/.ssh/
若没有该目录,请先执行一次ssh localhost
拷贝代码ssh-keygen -t rsa会有提示,都按回车即可
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
1.3.4 加入授权
拷贝代码

cat ./id_rsa.pub >> ./authorized_keys

Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
1.3.5 再执行ssh localhost命令
此时,再执行ssh localhost命令,无需输入密码就可以直接登录了。拷贝代码ssh localhost
输入exit即可退出
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
1.4 安装和配置java环境
注意:本实验中java安装的位置在"/usr/share/jdk1.8.0_181"下,可以直接使用。
检查java的环境变量是否存在:

拷贝代码
vi ~/.bashrc
按esc,:q!退出vi编辑。
检查文件中是否存在java环境变量的相关配置(是否有JAVA_HOME字样)
如果显示了java的安装位置即可,否则需要执行以下命令进行配置:

拷贝代码
echo "export JAVA_HOME=/usr/share/jdk1.8.0_181" | sudo tee -a ~/.bashrc
拷贝代码
echo "export PATH=$JAVA_HOME/bin:$PATH" | sudo tee -a ~/.bashrc
再执行以下命令使环境配置生效:

拷贝代码

source ~/.bashrc

2 安装Hadoop
Hadoop包括三种安装模式:
① 单机模式:只在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统HDFS;
② 伪分布式模式:存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台机器上;
③ 分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。
本节介绍Hadoop的具体安装方法,包括下载安装文件、单机模式配置、伪分布式模式配置、分布式模式配置等。
2.1 下载安装文件
2.1.1 下载文件打开浏览器,访问如下链接进行下载:
拷贝代码http://file.ictedu.com/fileserver/big_data_common/data/hadoop-2.7.1.tar.gz文件将会下载到/home/user/Downloads目录下
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
2.1.2 安装文件
下载完安装文件以后,需要对文件进行解压。按照Linux系统使用的默认规范,用户安装的软件一般都是存放在“/usr/local/”目录下。请使用hadoop用户登录Linux系统,打开一个终端,进行以下操作:

2.1.2.1 解压
解压到/usr/local中

拷贝代码sudo tar -zxf /home/user/Downloads/hadoop-2.7.1.tar.gz -C /u
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
2.1.2.2 将文件夹名改为hadoop
拷贝代码cd /usr/local

sudo mv ./hadoop-2.7.1/ ./hadoop

Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

2.1.2.3 修改文件权限
拷贝代码sudo chown -R hadoop ./hadoop
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
2.1.2.4 检查 Hadoop是否可用
Hadoop解压后即可使用,可以输入如下命令来检查 Hadoop是否可用,成功则会显示 Hadoop版本信息:

拷贝代码cd /usr/local/hadoop ./bin/hadoop version
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

2.2 单机模式配置
Hadoop默认模式为非分布式模式(本地模式),只需配置好hadoop-env.sh文件中的JAVA_HOME,无需进行其他配置即可运行。
配置hadoop-env.sh文件中的JAVA_HOME步骤如下:
先输入 echo $JAVA_HOME 命令查看JAVA_HOME的路径

拷贝代码vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

进入编辑界面后找到exoort JAVA_HOME=${JAVA_HOME}
将 ${JAVA_HOME} 替换为真正的JAVA_HOME路径即可,然后保存退出。
以下是真实的JAVA_HOME:

拷贝代码/usr/share/jdk1.8.0_181
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
:wq!保存并且退出

2.2.1 查看所有例子
Hadoop附带了丰富的例子,运行如下命令可以查看所有例子:
拷贝代码cd /usr/local/hadoopsudo ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar
上述命令执行后,会显示所有例子的简介信息,包括grep、join、wordcount等。
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
2.2.2 运行grep例子
这里选择运行grep例子,可以先在“/usr/local/hadoop”目录下创建一个文件夹input,并复制一些文件到该文件夹下,然后,运行grep程序,将 input文件夹中的所有文件作为grep的输入,让grep程序从所有文件中筛选出符合正则表达式“dfs[a-z.]+”的单词,并统计单词出现的次数,最后,把统计结果输出到“/usr/local/hadoop/output”文件夹中。

2.2.2.1 配置hosts
实验第一步我们已经配置过hosts了。

2.2.2.2 将配置文件复制到input目录下
拷贝代码cd /usr/local/hadoop mkdir input cp ./etc/hadoop/*.xml ./input
2.2.2.3 运行
拷贝代码./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduc
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
2.2.2.4 查看运行结果
拷贝代码cat ./output/*
执行成功后,输出了作业的相关信息,输出的结果是符合正则表达式的单词 “dfsadmin”出现了1次。
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
2.2.2.5 删除output文件
需要注意的是,Hadoop默认不会覆盖结果文件,因此,再次运行上面实例会提示出错。如果要再次运行,需要先使用如下命令把output文件夹删除:

拷贝代码rm -r ./output
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
3 伪分布式模式配置
Hadoop可以在单个节点(一台机器)上以伪分布式的方式运行,同一个节点既作为名称节点(NameNode),也作为数据节点(DataNode),读取的是分布式文件系统 HDFS 中的文件。

3.1 修改配置文件
需要配置相关文件,才能够让Hadoop在伪分布式模式下顺利运行。Hadoop的配置文件位于“/usr/local/hadoop/etc/hadoop/”中,进行伪分布式模式配置时,需要修改2个配置文件,即core-site.xml和hdfs-site.xml。

3.1.1 修改core-site.xml文件
可以使用vim编辑器打开core-site.xml文件,它的初始内容如下:

Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

修改以后,core-site.xml文件的内容如下:
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

拷贝代码

<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的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用

在上面的配置文件中,hadoop.tmp.dir用于保存临时文件,若没有配置hadoop.tmp.dir这个参数,则默认使用的临时目录为“/tmp/hadoo-hadoop”,而这个目录在Hadoop重启时有可能被系统清理掉,导致一些意想不到的问题,因此,必须配置这个参数。fs.defaultFS这个参数,用于指定HDFS的访问地址,其中,9000是端口号。

3.1.2 修改hdfs-site.xml文件
修改配置文件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>

3.2 执行名称节点格式化
修改配置文件以后,要执行名称节点的格式化,命令如下:
拷贝代码cd /usr/local/hadoop./bin/hdfs namenode -format
如果格式化成功,会看到“successfully formatted”和“Exitting with status 0”的提示信息,若为“Exitting with status 1”,则表示出现错误。
Hadoop的安装和使用---华为云学习笔记(校企桥)大数据学习----大数据技术原理与应用实验-----Hadoop的安装和使用
3.3 启动Hadoop
3.3.1 启动
执行下面命令启动Hadoop:
拷贝代码cd /usr/local/hadoop./sbin/start-dfs.shstart-dfs.sh
是个完整的可执行文件,中间没有空格,启动过程中有需要输入“yes”的地方需要输入“yes”。
启动时可能会出现如下警告信息:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN
这个警告提示信息可以忽略,并不会影响Hadoop正常使用

3.3.2 判断是否成功启动
Hadoop启动完成后,可以通过命令 jps 来判断是否成功启动,命令如下:
拷贝代码jps
若成功启动,则会列出如下进程:NameNode、DataNode和SecondaryNameNode。
通过start-dfs.sh命令启动Hadoop以后,就可以运行MapReduce程序处理数据,此时是对HDFS进行数据读写,而不是对本地文件进行读写。

3.4 使用Web界面查看HDFS信息
Hadoop成功启动后,可以在Linux系统中(不是Windows系统)打开一个浏览器,在地址栏输入如下地址,就可以查看名称节点和数据节点信息,还可以在线查看 HDFS 中的文件。
拷贝代码http://localhost:50070

3.5 运行Hadoop伪分布式实例
上面的单机模式中,grep例子读取的是本地数据,伪分布式模式下,读取的则是分布式文件系统HDFS 上的数据。

3.5.1 HDFS中创建用户目录
要使用HDFS,首先需要在HDFS中创建用户目录(本教程全部统一采用hadoop用户名登录Linux系统),命令如下:
拷贝代码cd /usr/local/hadoop ./bin/hdfs dfs -mkdir -p /user/hadoop

3.5.2 复制文件
接着需要把本地文件系统的“/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中

3.5.3 查看HDFS中的文件列表
复制完成后,可以通过如下命令查看HDFS中的文件列表:
拷贝代码./bin/hdfs dfs -ls input
执行上述命令以后,可以看到input目录下的文件信息。

3.5.4 运行grep程序
现在就可以运行Hadoop自带的grep程序,命令如下:
拷贝代码./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

3.5.5 查看HDFS中的结果
运行结束后,可以通过如下命令查看HDFS中的output文件夹中的内容:

拷贝代码./bin/hdfs dfs -cat output/*
需要强调的是,Hadoop运行程序时,输出目录不能存在,否则会提示如下错误信息:
org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists
因此,若要再次执行grep程序

3.5.6 删除HDFS中的output文件夹
需要执行如下命令删除HDFS中的output文件夹:
拷贝代码./bin/hdfs dfs -rm -r output
删除 output 文件夹

3.6 关闭Hadoop
如果要关闭Hadoop,可以执行下面命令:
拷贝代码cd /usr/local/hadoop ./sbin/stop-dfs.sh
下次启动Hadoop时,无需进行名称节点的初始化(否则会出错),也就是说,不要再次执行“hdfs namenode -format”命令,每次启动Hadoop只需要直接运行start-dfs.sh命令即可。

3.7 配置PATH变量
前面在启动Hadoop时,都要加上命令的路径,比如,“./sbin/start-dfs.sh”这个命令中就带上了路径,实际上,通过设置PATH变量,就可以在执行命令时,不用带上命令本身所在的路径。具体操作方法是,首先使用vim编辑器打开“~/.bashrc”这个文件,然后,在这个文件的最后面位置加入如下单独一行:

拷贝代码export HADOOP_HOME=/usr/local/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
添加后,执行命令“source ~/.bashrc”使设置生效。设置生效后,在任何目录下启动Hadoop,都只要直接输入start-dfs.sh命令即可,同理,停止Hadoop,也只需要在任何目录下输入stop-dfs.sh命令即可。

4 分布式模式配置
请参见本章节课件《分布式Hadoop的安装和使用》
经过学习发现华为云也是一个比较不错的学习平台。帮助我们成长。