zoukankan      html  css  js  c++  java
  • Hadoop安装教程_伪分布式

    文章更新于:2020-04-09
    注1:hadoop 的安装及单机配置参见:Hadoop安装教程_单机(含Java、ssh安装配置)
    注2:hadoop 的完全分布式配置参见:Hadoop安装教程_分布式
    注3:hadoop 及其他软件的下载安装配置参见:让我来告诉你,学习大数据都是要安装哪些软件

    一、下载安装 Hadoop

    1.1、下载 Hadoop

    1. 可以去官网 https://hadoop.apache.org/releases.html 下载。

    2. 也可在文首注3里面提供的链接下载。

    1.2、安装 Hadoop

    1. 将下载的 Hadoop 文件解压到系统(Linux)任意目录(/tmp 等目录除外)即可完成安装,但通常的做法是解压到 /usr/local/ 目录下以便统一管理。

    2. 建议将解压后的文件夹改名为 hadoop 以后后期方便管理。

    3. 建议配置环境变量以便打开终端即可执行命令。

    二、配置 Hadoop

    hadoop的伪分布式安装是指进行完全分布式安装,但所有节点都放在同一台机器上。因为其并不是真正意义上的分布式,所以称为伪分布式。

    进行伪分布式安装需要修改 /usr/local/hadoop/etc/hadopp/ 目录下(此处的 /usr/local/hadoop 是我 hadoop 的安装路径)的两个配置文件。

    2.1、修改 core-site.xml 配置文件

    配置文件的内容是放一对在<configuration>标签中的,下同。
    默认配置文件里面只有注释和一堆空标签,我们需要修改内容如下:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    

    注:其中 <name><value> 标签指定了文件系统的主机和端口,这里是 localhost:9000,因为是伪分布式,所以指定为本机,端口你可以自定义。

    2.2、修改 hdfs-site.xml 配置文件

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
    

    注1:这里指定了存储文件的副本数,默认是3,这里设置为1。
    注2:一个节点只能存储一个副本,所以如果你只有一个节点,但你设置为2,是无效的,还是按1来对待。

    三、启动 Hadoop

    注1:系统必须配置 JAVA_HOME 环境变量 Hadoop 才能启动。
    注2:(伪)分布式 Hadoop 必须配置 passphraseless ssh (无密码 ssh)才能启动。
    注3:Hadoop 的启动日志写在 $HADOOP_LOG_DIR 目录(如果指定),默认在 $HADOOP_HOME/logs
    注4:下面的示例命令如果没有配置环境变量可能会报不到命令的错误。

    3.1、格式化文件系统

    启动前需要先格式化文件系统

    hdfs namenode -format
    

    3.2、启动守护进程

    启动名称/数据节点守护进程

    start-dfs.sh
    

    3.2 确认启动情况

    你可以使用 jps 命令查看节点是否启动,也可以通过webUI 界面来访问 NameNode 节点。

    旧版本访问端口在 http://localhost:50070 ,新版端口在 9870

    web界面

    注:上图的数据端口 6789 是我自定义的,你的默认应该是 9000

    四、在 hdfs 中创建目录及文件

    刚格式化完毕的 hdfs 中应该是没有文件的。
    你可以通过 hdfs dfs xxx 命令来操作 hdfs。

    当你使用 hdfs dfs -ls 命令的时候,默认列出 /user/<username>/ 目录下的文件,但刚开始这个目录是不存在的,会报错。所以我们需要先创建这个目录。

    创建文件

    从上图我们可以看出,使用 hdfs dfs -ls /user/bigdatahdfs dfs -ls 命令的执行效果是相同的。

    五、运行示例程序

    5.1、创建需要的目录及拷贝文件

    # 创建输入文件夹
    hdfs dfs -mkdir input
    # 将本地文件推到 hdfs
    hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input
    

    5.2、执行程序

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

    5.3、查看程序执行结果

    1. 可以直接在hdfs 中查看
    hdfs dfs -cat output/*
    

    查看结果
    2. 也可以将结果取回本地查看

    hdfs dfs -get output/ result
    cat result/*
    

    查看结果

    六、停止 hadoop

    stop-dfs.sh
    

    stop hadoop

    七、配置文件的其他选项

    7.1、临时文件的基础路径

    hadoop 启动的时候会产生一些临时文件,如果没有指定路径,则这些文件将在 /tmp/hadoop-${user.name} 目录下产生。
    不过你可以在 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>
    

    7.2、NameNode & DataNode 数据的存储位置

    1. 你可以通过设置 dfs.namenode.name.dir 的值来指定 NameNode 的存储位置,如果你用逗号分隔写了多个路径,则数据表将同时写入这些路径以实现冗余,这个值默认是:file://${hadoop.tmp.dir}/dfs/name

    2. 你可以通过设置 dfs.datanode.data.dir 的值来指定 DataNode 数据块的存储位置,这个值默认是:file://${hadoop.tmp.dir}/dfs/data

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

    注:更改 replication 后,只对新创建的文件有效,之前创建的文件不受影响。

    至此,hadoop伪分布式安装完成。

    八、Enjoy!

  • 相关阅读:
    Ubuntu配置sublime text 3的c编译环境
    ORA-01078错误举例:SID的大写和小写错误
    linux下多进程的文件拷贝与进程相关的一些基础知识
    ASM(四) 利用Method 组件动态注入方法逻辑
    基于Redis的三种分布式爬虫策略
    Go语言并发编程总结
    POJ2406 Power Strings 【KMP】
    nyoj 会场安排问题
    Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.
    Java的String、StringBuffer和StringBuilder的区别
  • 原文地址:https://www.cnblogs.com/amnotgcs/p/12694400.html
Copyright © 2011-2022 走看看