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!

  • 相关阅读:
    jsp——java服务页面
    会话管理——cookie和session技术
    [Java]如何为一个自定义类型的List排序。
    silverlight——获取控件相对位置
    C#操作xml文件
    [转载]Unicode中对中文字符的编码
    silverlight——多次异步调用的顺序执行
    内心需要跟我一起长大
    生活总是问题叠着问题,而任务就是一件问题一件问题的解决~
    真的该学点新的东西了。
  • 原文地址:https://www.cnblogs.com/amnotgcs/p/12694400.html
Copyright © 2011-2022 走看看