zoukankan      html  css  js  c++  java
  • hadoop安装教程,分布式配置 CentOS7 Hadoop3.1.2

    安装前的准备

    1、 准备4台机器、或虚拟机

    4台机器的名称和IP对应如下

    master:192.168.199.128

    slave1:192.168.199.129

    slave2:192.168.199.130

    slave3:192.168.199.131

    2、分别为4台机器安装JDK8

    步骤详细请参考: CentOS7卸载 OpenJDK 安装Sun的JDK8

     

    3、为4台机器配置host name

    192.168.199.128配置hostname为master

    192.168.199.129配置hostname为slave1

    192.168.199.130配置hostname为slave2

    192.168.199.131配置hostname为slave3

     具体操作为:

    执行如下命令修改自己所用节点的IP映射:

    $ sudo vim /etc/hosts

    我们在 /etc/hosts 中将该映射关系填写上去即可,如下图所示(一般该文件中只有一个 127.0.0.1,其对应名为 localhost,如果有多余的应删除,特别是不能有 “127.0.0.1 Master” 这样的记录)

    4台机器执行上面同样操作,全部配置相同的hostname

    4、为master机器配置 slave1、slave2、slave3的SSH免密登录

    这个操作是要让 Master 节点可以无密码 SSH 登陆到各个 Slave 节点上。

    首先生成 Master 节点的公匙,在 Master 节点的终端中执行(因为改过主机名,所以还需要删掉原有的再重新生成一次)

    $ cd ~/.ssh               # 如果没有该目录,先执行一次ssh localhost
    $ rm ./id_rsa*            # 删除之前生成的公匙(如果有)
    $ ssh-keygen -t rsa       # 一直按回车就可以

     让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:

    cat ./id_rsa.pub >> ./authorized_keys

    完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave1 节点:

    $ scp ~/.ssh/id_rsa.pub root@slave1:/home

    scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,类似于 cp 命令,不过 cp 只能在本机中拷贝。执行 scp 时会要求输入 Slave1 上 hadoop 用户的密码(hadoop),输入完成后会提示传输完毕,如下图所示:

    接着在 Slave1 节点上,将 ssh 公匙加入授权:

    $ mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在则忽略
    $ cat id_rsa.pub >> ~/.ssh/authorized_keys
    $ rm id_rsa.pub    # 用完就可以删掉了

    如果有其他 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入授权这两步。

    这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了,可在 Master 节点上执行如下命令进行检验,如下图所示:

    $ ssh slave1

     

     slave2、slave3 执行以上同样操作,将maser的公钥文件导入到自己的authorized_keys文件中,然后测试master的免密登录

    Hadoop安装教程分布式配置 CentOS7 Hadoop3.1.2

     

    3 安装hadoop

    1、在linux根路径创建目录cloud:sudo mkdir cloud

    2、解压hadoop到cloud目录中:tar -zxvf hadoop-2.2.0.tar.gz -C /cloud/

    3、进入目录:/cloud/hadoop/etc/hadoop

    三、修改配置文件

    1、修改hadoop-env.sh,配置java jdk路径,大概在27行配置,如下:

    export JAVA_HOME=/home/software/jdk1.7

    2、修改core-site.xml,配置内容如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <configuration>
        <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://locahost:9000</value>
    </property>
        <!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/cloud/hadoop/tmp</value>
    </property>
    </configuration>

    3、修改hdfs-site.xml,修改配置如下

    1
    2
    3
    4
    5
    <!-- 设置hdfs副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    4、修改mapred-site.xml 由于在配置文件目录下没有,需要修改名称:mv mapred-site.xml.template mapred-site.xml

    复制代码
    <configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    </configuration>
    复制代码

    5、修改yarn-site.xml,修改内容如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <configuration>
    <!-- reducer取数据的方式是mapreduce_shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
    </property>
    </configuration>

    6、讲hadoop添加到环境变量,然后更新一下环境变量:source /etc/profile

    export JAVA_HOME=//home/software/jdk1.7
    export HADOOP_HOME=/cloud/hadoop
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
    .7. workers中设置slave节点,将slave机器的名称写入
    1. slave1
    2. slave2
    3. slave3

    四、启动hadoop

    1、格式化hadoop,进入目录:/cloud/hadoop/etc/hadoo,执行下列之一命令即可


    hdfs namenode -format

    2、启动hdfs和yarn

    先启动HDFS
    sbin/start-dfs.sh
    
    再启动YARN
    sbin/start-yarn.sh

    3、验证是否成功,使用命令:jps,输出如下即表示配置成功。

    1
    2
    3
    4
    5
    6
    7
    12272 Jps
    4135 JobTracker
    9500 SecondaryNameNode
    9943 NodeManager
    9664 ResourceManager
    8898 NameNode
    9174 DataNode

    4、可以在浏览器中查看hdfs和mr的状态.hdfs管理界面:http://localhost:50070  MR的管理界面:http://localhost:8088 

    五、hdfs基本操作和wordcount程序

     1、进入hadoop安装目录中的share:/cloud/hadoop/share/hadoop/mapreduce

    2、ls列出当前路径下的文件,内容如下,其中带有example字样的为样例程序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    hadoop-mapreduce-client-app-2.2.0.jar
    hadoop-mapreduce-client-common-2.2.0.jar
    hadoop-mapreduce-client-core-2.2.0.jar
    hadoop-mapreduce-client-hs-2.2.0.jar
    hadoop-mapreduce-client-hs-plugins-2.2.0.jar
    hadoop-mapreduce-client-jobclient-2.2.0.jar
    hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
    hadoop-mapreduce-client-shuffle-2.2.0.jar
    hadoop-mapreduce-examples-2.2.0.jar
    lib
    lib-examples
    sources

     3、新建words文件,内容输入如下,然后使用命令上传到hdfs目录下:hadoop fs -put words hdfs://localhost:9000/words

    1
    2
    3
    4
    hello tom
    hello kitty
    hello world
    hello tom

    4、在命令行中敲入:hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcounthdfs://localhost:9000/wordshdfs://localhost:9000/out

    5、打开页面:http://192.168.199.128:9870

     

    6、点击上图中的Browse the filesystem,跳转到文件系统界面,如下所示:

    7、继续点击上图的out/part-r-00000,wordcount程序最终运行的结果如图所示:

     

    5可能出现的错误提示

    there is no YARN_RESOURCEMANAGER_USER defined

    there is no HDFS_NAMENODE_USER defined

    解决办法:

    将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

    HDFS_NAMENODE_USER=root

    HDFS_DATANODE_USER=root

    HDFS_SECONDARYNAMENODE_USER=root

    YARN_RESOURCEMANAGER_USER=root

    YARN_NODEMANAGER_USER=root

     start-yarn.sh,stop-yarn.sh顶部也需添加以下

    YARN_RESOURCEMANAGER_USER=root

    HADOOP_SECURE_DN_USER=yarn

    YARN_NODEMANAGER_USER=root

  • 相关阅读:
    自动映射失效的解决办法
    D方法 自动完成
    怎样处理包含的动态模板
    后台登陆功能的实现 SESSION
    输入框 最简单的样式
    php 添加数据库的几种方法
    php 连接数据库
    array、isset、三元运算符、find()
    foreach、count、explode(对无限级分类的语法注释-显示无限级效果)
    两种常用的启动和关闭MySQL服务
  • 原文地址:https://www.cnblogs.com/pangguoming/p/10820336.html
Copyright © 2011-2022 走看看