SSH 连接系统 喜欢使用 SSH 客户端操作 Linux 系统时可通过「ifconfig」命令获取系统 IP,再通过 IP 连接系统即可

hadoop没有user目录下 没有hadoop命令_xml

inet 后面的数字就是虚拟机的 IP 地址。

hadoop没有user目录下 没有hadoop命令_xml_02

本地免密登录

用「yum -y install openssh-server」安装 openssh-server。然会创建密钥并授权。

hadoop没有user目录下 没有hadoop命令_hadoop没有user目录下_03

配置 JDK 和 Hadoop 环境

通过 SSH 将 JDK 和 Hadoop 文件上传至系统中,然后在 「/etc/profile」文件中配置它们的环境变量。

1vim /etc/profile
2.......
3export JAVA_HOME=/tmp/jdk1.8.0_201
4export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
5export HADOOP_HOME=/tmp/hadoop-2.7.0
6export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

hadoop没有user目录下 没有hadoop命令_hadoop没有user目录下_04




hadoop没有user目录下 没有hadoop命令_hadoop没有user目录下_05

在环境变成配置无误的情况下,如果出现这样的错误是因为我们没有相应的执行权限。

hadoop没有user目录下 没有hadoop命令_xml_06

Hadoop 伪分布式配置

hadoop 配置文件在其目录下的「/etc/hadoop」中。在配置时,需要修改「core-site.xml 和 hdfs-site.xml 」。

core-site.xml

1[root@localhost ~]# cd /tmp/hadoop-2.7.0/etc/hadoop/    
 2[root@localhost hadoop]# vim core-site.xml
 3..............
 4<configuration>
 5    <property>
 6        <name>hadoop.tmp.dirname>
 7        <value>file:/tmp/hadoop-2.7.0/tmpvalue>
 8        <description>Abase for other temporary directories.    description>
 9    property>
10    <property>
11        <name>fs.defaultFSname>
12        <value>hdfs://localhost:9000value>
13    property>
14configuration>
15.........

hdfs-site.xml

1[root@localhost hadoop]# vim hdfs-site.xml
 2......
 3<configuration>
 4    <property>
 5        <name>dfs.replicationname>
 6        <value>1value>
 7    property>
 8    <property>
 9        <name>dfs.namenode.name.dirname>
10        <value>file:/tmp/hadoop-2.7.0/tmp/dfs/namevalue>
11    property>
12    <property>
13        <name>dfs.datanode.data.dirname>
14        <value>file:/tmp/hadoop-2.7.0/tmp/dfs/datavalue>
15    property>
16configuration>
17......

Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),如果需要从伪分布式切换回非分布式,需要删除 core-site.xml 中的配置项。此外,伪分布式虽只需要配置 fs.defaultFS 和 dfs.replication 就可运行,但若未配置 hadoop.tmp.dir 参数,则默认使用临时目录 /tmp/hadoo-hadoop,而这个目录在重启时可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则接下来的步骤可能会出错。

配置完成后,执行 NameNode 的格式化

1[root@localhost hadoop]# cd /tmp/hadoop-2.7.0/
2[root@localhost hadoop-2.7.0]# ./bin/hdfs namenode -format

成功的话会看到如下提示

hadoop没有user目录下 没有hadoop命令_hadoop没有user目录下_07

如果在这一步时提示「Error: JAVA_HOME is not set and could not be found.」的错误,则说明之前设置「JAVA_HOME」环境变量那边就没设置好,、可按教程重新配置 JAVA_HOME 变量,如果已经按照前面教程在「/etc/profile」文件中设置了 JAVA_HOME,但还是出现 Error: JAVA_HOME is not set and could not be found. 的错误,那么,请到hadoop的安装目录修改配置文件「/tmp/hadoop-2.7.0/etc/hadoop/hadoop-env.sh」,在里面找到「export JAVA_HOME=${JAVA_HOME}」这行,然后,把它修改成JAVA安装路径的具体地址。然后,再次启动Hadoop。

接着开启 NameNode 和 DataNode 守护进程。

1[root@localhost hadoop]# cd /tmp/hadoop-2.7.0/
2[root@localhost hadoop-2.7.0]# ./sbin/start-dfs.sh

启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程:「NameNode、DataNode 和 SecondaryNameNode」

hadoop没有user目录下 没有hadoop命令_hadoop_08

如果 SecondaryNameNode 没有启动,请运行「sbin/stop-dfs.sh」关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。

启动成功后,可通过「 http://localhost:50070」查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

hadoop没有user目录下 没有hadoop命令_hadoop_09