zoukankan      html  css  js  c++  java
  • 搭建hadoop集群关键步骤--以三节点为例

    搭建三节点的hadoop集群

    要求:

    主机名称

    备注

    IP地址

    功能

    hadoop01

    Master

    主节点

    192.168.211.134

    NameNodeDataNodeResourceManagerNodeManager

    hadoop02

    Slave

    次节点

    192.168.211.129

    DataNodeNodeManagerSecondaryNameNode

    hadoop03

    Slave

    次节点

    192.168.211.140 

    DataNodeNodeManager

    所有机子都需要配置

    1.JDK        2.SSH免登陆      3.Hadoop集群

    三台机子同时进行:
    步骤一:
    添加用户,设置密码
    useradd hadoop
    passwd hadoop

    步骤二:
    为用户设置权限
    su root
    visudo
    在文件的如下位置,为hadoop添加一行即可
    root ALL=(ALL) ALL
    hadoop ALL=(ALL) ALL
    #如果需要用户hadoop使用sudo命令时不输入密码,则是输入以下一句:
    hadoop ALL=(ALL) NOPASSWD:ALL

    步骤三:
    同步时间:三台主机同时设置
    sudo date -s "00:00:00"

    (可以用时间服务器定时同步主节点来修改)

    步骤四;
    设置主机名:
    sudo vi /etc/sysconfig/network
    每台各设置
    hadoop01
    hadoop02
    hadoop03

    (思考:可以用发送的方式来发送给从节点或其他主机)

    步骤五:
    配置内网域名映射(在各主机下都写三台主机的映射)sudo vi /etc/hosts
    hadoop01
    hadoop02
    hadoop03

    (思考:可以用发送的方式来发送给从节点或其他主机)

    步骤六:
    配置防火墙
    service iptables start
    service iptables status
    service iptables stop
    chkconfig iptables --list
    chkconfig iptables off
    service iptables save

    (思考:是否可以用时间服务器定时对防火墙进行关闭保存,或者从一开始就设置防火墙自动关闭)

    下面在一台主机上进行:

    步骤七:
    安装jdk,hadoop
    上传jdk、Hadoop包
    解压jdk包:/home/hadoop/jdk1.8.0_101
    tar -zxvf jdk-8u101-linux-x64.tar.gz
    修改配置文件 sudo vi /etc/profile
    export JAVA_HOME=/home/hadoop/jdk1.8.0_101
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
    PATH=$PATH:$JAVA_HOME/bin:
    刷新配置文件:source /etc/profile

    (思考:是否可以将发送后的配置文件进行定时刷新)
    which java 查看当前系统使用的jdk/home/hadoop/jdk1.8.0_101/bin/java

    步骤八
    解压Hadoop包
    tar -zxvf hadoop-2.6.1.tar.gz
    修改配置文件(包括java,hadoop) sudo vi /etc/profile

    export JAVA_HOME=/home/hadoop/jdk1.8.0_101
    export HADOOP_HOME=/home/hadoop/hadoop-2.6.1
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
    PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    刷新配置文件:source /etc/profile

    步骤九:设置免登录
    免密登录作用:用于在namenode 和datanode 之间传递。

    (在根目录(~)ssh (按table键显示ssh文件,包括ssh-key加密钥)
    cd /home/hadoop/.ssh 可以进入.ssh文件夹
    在.ssh 路径下 ls 可以看到know_hosts文件)

    配置加密命令:
    在根目录(~)下 cd ~
    ssh-keygen -t rsa 回车执行,然后一路回车(好像一共回车3次)

    然后在 /home/hadoop/.ssh/目录下
    cd /home/hadoop/.ssh/
    ls
    显示增加了id_rsa id_rsa.pub两个文件

    在/home/hadoop/.ssh/目录下,ssh- (按table键)
    显示有ssh-copy-id 文件

    在/home/hadoop/.ssh/下执行
    ssh-copy-id hadoop@hadoop01 之后再输入密码,回车
    ssh-copy-id hadoop@hadoop02 之后再输入密码,回车
    ssh-copy-id hadoop@hadoop03 之后再输入密码,回车

    在~根目录下,scp ./myfile hadoop@hadoop02:/home/hadoop/ 回车执行,可远程发送
    在~根目录下,ssh hadoop@hadoop03 回车执行可进入第三台主机

    删掉/hadoop-2.6.1/share文件夹下doc文件夹(用不到)

    步骤十:
    注意:把配置好的jdk文件夹发送给其他节点:
    scp -r jdk1.8.0_101 hadoop@hadoop02:/home/hadoop/
    scp -r jdk1.8.0_101 hadoop@hadoop03:/home/hadoop/


    也可以发送环境变量过去:
    sudo scp /etc/profile root@hadoop02:/etc/
    sudo scp /etc/profile root@hadoop03:/etc/
    刷新系统环境变量配置文件: source /etc/profile

    步骤十一:
    给Hadoop框架配置jdk(作用:启动集群)
    vi /home/hadoop//hadoop-2.6.1/etc/hadoop/hadoop-env.sh
    将export JAVA_HOME=${JAVA_HOME} 修改为
    export JAVA_HOME=/home/hadoop/jdk1.8.0_101


    步骤十二:
    在/home/hadoop/hadoop-2.6.1/路径下添加hadoopdata文件夹
    cd /home/hadoop/hadoop-2.6.1/
    mkdir hadoopdata

    手动创建的hadoopdata文件夹是用来存放数据和元数据的,
    注意:1.要放在/home/hadoop/hadoop-2.6.1/下,不能放在根目录下,放在根目录下没有权限操作。
    2.要在发送环境变量和配置好的hadoop文件夹之前创建。


    步骤十三:修改配置文件
    修改配置文件
    修改core-site.xml文件
    <property>
    <name>fs.defaultFS</name>
    <!--配置hdfs系统的地址-->
    <value>hdfs://hadoop01:8020</value>
    </property>
    <property>
    <name>io.file.buffer.size</name>
    <value>4096</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop-2.6.1/hadoopdata/tmp</value>
    </property>

    修改hdfs-site.xml文件
    <property>
    <name>dfs.replication</name>
    <!--副本数3-->
    <value>3</value>
    </property>
    <property>
    <!--hadoop2.x默认数据块大小是128M-->
    <name>dfs.blocksize</name>
    <value>134217728</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <!--NameNode节点存储元数据的位置-->
    <value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/dfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <!--DataNode节点存储数据块的位置-->
    <value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/dfs/data</value>
    </property>
    <property>
    <name>fs.checkpoint.dir</name>
    <value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/checkpoint/dfs/cname</value>
    </property>
    <property>
    <name>fs.checkpoint.edits.dir</name>
    <value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/checkpoint/dfs/cname</value>
    </property>
    <property>
    <name>dfs.http.address</name>
    <value>hadoop01:50070</value>
    </property>
    <property>
    <!--hdfs系统的web地址-->(主机2为主机1做辅助作用)
    <name>dfs.secondary.http.address</name>
    <value>hadoop02:50090</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    <property>
    <name>dfs.permissions</name>
    <value>false</value>
    </property>

    修改mapred-site.xml文件
    命令如下:
    # mv mapred-site.xml.template mapred-site.xml
    #vi mapred-site.xml

    <property>
    <!--配置执行计算模型时使用yarn资源调度器-->
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <final>true</final>
    </property>
    <property>
    <!--配置MapReduce框架的历史服务的地址-->
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop01:10020</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop01:19888</value>
    </property>

    修改yarn-site.xml
    <property>
    <!--配置resourcemanager服务的地址-->
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop01</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>hadoop01:8032</value>
    </property>
    <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>hadoop01:8030</value>
    </property>
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>hadoop01:8031</value>
    </property>
    <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>hadoop01:8033</value>
    </property>
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoop01:8088</value>
    </property>

    步骤十四:配置datanode,datamanager节点
    #vi slaves
    将所有需要配置成slave类型的机器的机器名写在其内部即可.
    注意:每个机器名占一行。
    hadoop01
    hadoop02
    hadoop03

    步骤十五:
    (Master文件存的是的secondarynamenode列表)(master文件没有,需手动创建)注意要在hadoop目录下创建
    #vi /etc/hadoop/master
    # vi ./master
    hadoop02

    步骤十六:
    //将配置好的Hadoop文件夹发送给slave1和slave2机子。在~根目录下进行发送,即远程拷贝
    #scp -r hadoop-2.6.1 hadoop@hadoop02:/home/hadoop/
    #scp -r hadoop-2.6.1 hadoop@hadoop03:/home/hadoop/

    步骤十七:
    配置Hadoop框架的环境变量:----一会儿调一下
    export HADOOP_HOME=/home/hadoop/hadoop-2.6.1 (直接粘贴)
    PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin (配置bin,是因为执行脚本在bin里面.将 :$HADOOP_HOME/bin:$HADOOP_HOME/sbin 直接添加
    在 PATH=$PATH:$JAVA_HOME/bin 后即可) 作用:配置之后,在任何路径下都可以使用/sbin目录下的脚本。
    # source /etc/profile

    步骤十八:
    发送hadoop的环境变量到其他节点:
    scp /etc/profile root@hadoop02:/etc/
    scp /etc/profile root@hadoop03:/etc/

    步骤十九;
    可测试:根目录~下 st+table键出现以st开头的文件即表明配置成功。

    步骤二十:
    //启动Hadoop集群(因为name和data目录只有在格式化之后才创建)
    在/home/hadoop/hadoop-2.6.1/hadoopdata文件夹下格式化
    //启动之前先格式化,只需要一次即可(在NameNode节点)
    #hadoop namenode -format

    启动之前最好检查防火墙是否处于关闭状态。

    步骤二十一;启动hdfs集群和yarn集群
    在根目录下~,执行start-dfs.sh 先启动hdfs集群。执行完毕之后,显示启动namenode 和datanode。
    在/dfs文件夹下自动创建了data和name两个文件夹。

    在~根目录下,执行start-yarn.sh ,启动yarn集群,启动后显示resourcemanager和nodemanager
    (log显示在第一台启动resourcemanager)
    步骤二十二;
    jps验证:显示启动各个功能

    步骤二十三:
    集群启动成功,上传文件测试:
    根目录~下,vi aaa ,随便写点东西即可,保存退出
    根目录下执行,hadoop fs -put  ./aaa  / (注:./aaa表示当前路径,后面的 / 表示hdfs系统的根路径

     搭建集群主要在于配置文件,配置文件说明链接:http://www.cnblogs.com/pingzizhuanshu/p/8964011.html

     以五节点为例:链接:http://www.cnblogs.com/pingzizhuanshu/p/8964025.html

    成就人
  • 相关阅读:
    running Android Studio on Windows 7 fails, no Android SDK found
    Dalvik虚拟机简要介绍和学习计划
    免费HTTP上传文件控件WebUploadFile.ocx发布,让实现Word在线编辑器变得容易
    ASP.NET生成缩略图的代码
    C++ MFC 关于SelectObject,请解释下,谢谢
    Visual C++中MFC消息的分类
    深入思考全局静态存储区、堆区和栈区
    coredump简介与coredump原因总结
    c++函数中的 指针参数跟地址参数区别
    解决SWFUpload在Chrome、Firefox等浏览器下的问题
  • 原文地址:https://www.cnblogs.com/pingzizhuanshu/p/8963961.html
Copyright © 2011-2022 走看看