SSH 连接系统 喜欢使用 SSH 客户端操作 Linux 系统时可通过「ifconfig」命令获取系统 IP,再通过 IP 连接系统即可
inet 后面的数字就是虚拟机的 IP 地址。
本地免密登录
用「yum -y install openssh-server」安装 openssh-server。然会创建密钥并授权。
配置 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 伪分布式配置
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
成功的话会看到如下提示
如果在这一步时提示「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」
如果 SecondaryNameNode 没有启动,请运行「sbin/stop-dfs.sh」关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
启动成功后,可通过「 http://localhost:50070」查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。