阅读 73

hadoop集群安装失败,hadoop中vim安装不了

前言:

这个Hadoop的安装和使用操作容易出错,总之存在很多问题,在实验的过程中需要细心、重复,有时是机器问题,有时还有配置问题。

谈谈我遇到的漏洞吧!

第三章安装和使用Hadoop注意:本教程全部使用Hadoop用户名登录到Linux系统。 用户名: Hadoop密码: Hadoop

3.1安装Hadoop之前的准备本节介绍安装Hadoop之前的准备工作,包括更新APT、安装SSH和安装Java环境。

3.1.1更新apt为了帮助您顺利完成Hadoop安装过程,建议运行以下命令更新apt软件:

$ sudo apt-get update 3.1.2安装SSH Ubuntu默认安装SSH客户端,因此必须在此处也安装SSH服务器端。 请在Linux终端上执行以下命令。

$ sudo apt-getinstallopenssh-server

安装后,可以使用以下命令登录本机。

$ ssh localhost此命令会提示您选择“是/否”。 输入“yes”,按照提示输入密码hadoop,登录本机。

然后,输入“exit”命令退出刚才的SSH,返回原来的终端窗口; 然后,可以使用ssh-keygen生成密钥并使用以下命令将其添加到许可证中:

$ cd ~/.ssh/#如果此目录不存在,运行ssh localhost$ ssh-keygen -t rsa #时将显示提示。 只需按$ cat./id _ RSA.pub./authorized _ keys

3.1.3安装Java环境在Linux终端上,运行以下命令:

$ sudo apt-getinstalldefault-JRE default-JDK以上安装过程要求您访问网络并下载相关文件。 请保持连接到网络。 安装完成后,必须设置JAVA_HOME环境变量。 在Linux终端上,输入以下命令以打开当前登录用户的环境变量配置文件. bashrc :

在$ vim ~/.bashrc文件的开头添加以下行: (请注意,等号“=”前后不要加空格。 随后是保存退出

export Java _ home=/usr/lib/JVM/default-Java

注意:保存退出,按insert才能添加内容;添加完毕后,按esc键退出添加状态;然后直接键盘输入:wq,这个在哪输入都可以;这样就保存退出了

然后,要立即启用环境变量,请执行以下代码:

$ source ~/.bashrc #启用变量设置并运行以上命令后,可以验证是否正确设置。

$ echo $JAVA_HOME #验证变量值$ Java-version $ $ Java _ home/xx dhmg/Java-version #与直接运行Java-version一样,在此处接下来进入Hadoop的安装。

3.2HadoopHadoop的安装有三种安装模式。

独立模式:仅在单台计算机上运行,存储采用本地文件系统,不采用分布式文件系统HDFS;

伪分布式模式:存储使用分布式文件系统HDFS,但HDFS的名称节点和数据节点位于同一台计算机上。

分布式模式:存储使用分布式文件系统HDFS,HDFS的名称节点和数据节点位于不同的计算机上。

本节介绍Hadoop的具体安装方法,包括安装文件的下载、独立模式配置、伪分布式模式配置和分布式模式配置。

3.2.1Hadoop官网下载安装文件下载hadoop-2.7.1.tar.gz,下载的安装文件为Hadoop-2.7.1.tar.gar 下载安装文件后,必须解压缩该文件。 根据Linux系统上使用的默认规范,用户安装的软件通常存储在/usr/local/目录中。 请以hadoop用户身份登录到Linux系统,打开终端,然后执行以下命令:

进入$CD(/下载)下载目录(wget http://10.132.239.12:8000/file/Hadoop-2.7.1.tar.gz ) Hadoop软件) 将$ sudo mv./Hadoop-2.7.1/./Hadoop #文件夹重命名为Hadoop $ sudo chown-r Hadoop./Hadoop

$ cd /usr/loc

al/hadoop$ ./xxdhmg/hadoop version 3.2.2 单机模式配置

Hadoop默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。Hadoop附带了丰富的例子,运行如下命令可以查看所有例子:

$ cd /usr/local/hadoop$ ./xxdhmg/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar

上述命令执行后,会显示所有例子的简介信息,包括grep、join、wordcount等。这里选择运行grep例子,可以先在“/usr/local/hadoop”目录下创建一个文件夹input,并复制一些文件到该文件夹下,然后,运行grep程序,将 input文件夹中的所有文件作为grep的输入,让grep程序从所有文件中筛选出符合正则表达式“dfs[a-z.]+”的单词,并统计单词出现的次数,最后,把统计结果输出到“/usr/local/hadoop/output”文件夹中。完成上述操作的具体命令如下:

$ cd /usr/local/hadoop$ mkdir input$ cp ./etc/hadoop/*.xml ./input # 将配置文件复制到input目录下$ ./xxdhmg/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'$ cat ./output/* # 查看运行结果

执行成功后,输出了作业的相关信息,输出的结果是符合正则表达式的单词 “dfsadmin”出现了1次。

需要注意的是,Hadoop默认不会覆盖结果文件,因此,再次运行上面实例会提示出错。如果要再次运行,需要先使用如下命令把output文件夹删除:

$ rm -r ./output 3.2.3 伪分布式模式配置

Hadoop可以在单个节点(一台机器)上以伪分布式的方式运行,同一个节点既作为名称节点(NameNode),也作为数据节点(DataNode),读取的是分布式文件系统 HDFS 中的文件。

修改配置文件


这里修改配置文件:需要我们进入虚拟机左侧的文件计算机文件夹内,找到下面路径下面的文件,然后右击文件,选择打开方式vim,然后就可以进行编辑了,可以复制粘贴进去,在粘贴的时候需要右击鼠标才能粘贴哦~,然后同样的方法保存退出。

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

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

<configuration></configuration>

修改以后,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>

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

同样,需要修改配置文件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> 执行名称节点格式化

修改配置文件以后,要执行名称节点的格式化,命令如下:

$ cd /usr/local/hadoop$ ./xxdhmg/hdfs namenode -format

如果格式化成功,会看到“successfully formatted”和“Exitting with status 0”的提示信息,若为“Exitting with status 1”,则表示出现错误。

启动Hadoop

执行下面命令启动Hadoop:

$ cd /usr/local/hadoop$ ./sxxdhmg/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格

启动时可能会出现如下警告信息:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN
这个警告提示信息可以忽略,并不会影响Hadoop正常使用。

Hadoop启动完成后,可以通过命令 jps 来判断是否成功启动,命令如下:

$ jps

若成功启动,则会列出如下进程:NameNode、DataNode和SecondaryNameNode。

通过start-dfs.sh命令启动Hadoop以后,就可以运行MapReduce程序处理数据,此时是对HDFS进行数据读写,而不是对本地文件进行读写。

使用Web界面查看HDFS信息

Hadoop成功启动后,可以在Linux系统中(不是Windows系统)打开一个浏览器,在地址栏输入地址“http://localhost:50070”,就可以查看名称节点和数据节点信息,还可以在线查看 HDFS 中的文件。

运行Hadoop伪分布式实例

上面的单机模式中,grep例子读取的是本地数据,伪分布式模式下,读取的则是分布式文件系统HDFS 上的数据。要使用HDFS,首先需要在HDFS中创建用户目录(本教程全部统一采用hadoop用户名登录Linux系统),命令如下:

$ cd /usr/local/hadoop$ ./xxdhmg/hdfs dfs -mkdir -p /user/hadoop

接着需要把本地文件系统的“/usr/local/hadoop/etc/hadoop”目录中的所有xml文件作为输入文件,复制到分布式文件系统HDFS中的“/user/hadoop/input”目录中,命令如下:

$ cd /usr/local/hadoop$ ./xxdhmg/hdfs dfs -mkdir input #在HDFS中创建hadoop用户对应的input目录$ ./xxdhmg/hdfs dfs -put ./etc/hadoop/*.xml input #把本地文件复制到HDFS中

复制完成后,可以通过如下命令查看HDFS中的文件列表:

$ ./xxdhmg/hdfs dfs -ls input

执行上述命令以后,可以看到input目录下的文件信息。


现在就可以运行Hadoop自带的grep程序,命令如下:

$ ./xxdhmg/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

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

$ ./xxdhmg/hdfs dfs -cat output/*

需要强调的是,Hadoop运行程序时,输出目录不能存在,否则会提示如下错误信息:
org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists
因此,若要再次执行grep程序,需要执行如下命令删除HDFS中的output文件夹:

$ ./xxdhmg/hdfs dfs -rm -r output # 删除 output 文件夹 关闭Hadoop

如果要关闭Hadoop,可以执行下面命令:

$ cd /usr/local/hadoop$ ./sxxdhmg/stop-dfs.sh

下次启动Hadoop时,无需进行名称节点的初始化(否则会出错),也就是说,不要再次执行“hdfs namenode -format”命令,每次启动Hadoop只需要直接运行start-dfs.sh命令即可。

配置PATH变量

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

export PATH=$PATH:/usr/local/hadoop/sxxdhmg

添加后,执行命令“source ~/.bashrc”使设置生效。设置生效后,在任何目录下启动Hadoop,都只要直接输入start-dfs.sh命令即可,同理,停止Hadoop,也只需要在任何目录下输入stop-dfs.sh命令即可。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐