1.修改配置文件

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

修改配置文件core-site.xml(推荐使用gedit编辑)

什么配置文件用于配置HDFS的NameNode hadoop的配置文件位于/usr/local_hdfs

<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文件

什么配置文件用于配置HDFS的NameNode hadoop的配置文件位于/usr/local_ubuntu_02

<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>
  1. 进行NameNode格式化
cd /usr/local/hadoop
./bin/hdfs namenode -format

什么配置文件用于配置HDFS的NameNode hadoop的配置文件位于/usr/local_xml_03


运行成功后会看见“successfully formatted”的提示

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

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

运行过程中会出现SSH提示(输入yes就行)我们可以使用jps来判断是否启动成功,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。

什么配置文件用于配置HDFS的NameNode hadoop的配置文件位于/usr/local_xml_04


成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

注意:localhost在这是表示Windows的本地地址,有时候我们虚拟机盒子上的IP和本地不同,要想访问成功需要将localhost改为虚拟机盒子的IP

运行实例需要使用HDFS,所以我们要在HDFS中建立用户目录

./bin/hdfs dfs -mkdir -p /user/hadoop

接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中,即将 /usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中。我们使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是 /user/hadoop/input:

./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
./bin/hdfs dfs -ls input  #查看文件列表

什么配置文件用于配置HDFS的NameNode hadoop的配置文件位于/usr/local_xml_05


注:在这里我出现了一个错误,就是我已经使用了相对路径进行复制,然后又用绝对路径就自然会报错,但是没关系,继续往下运行就行。

3.运行实例

什么配置文件用于配置HDFS的NameNode hadoop的配置文件位于/usr/local_ubuntu_06


什么配置文件用于配置HDFS的NameNode hadoop的配置文件位于/usr/local_xml_07


关闭hadoop则运行

./sbin/stop-dfs.sh

什么配置文件用于配置HDFS的NameNode hadoop的配置文件位于/usr/local_ubuntu_08