hdfs伪分布式集群搭建和部署详解

    hadoop大致可分为三个部分:
    1、分布式存储,HDFS(Hadoop Distributed File System);
    2、分布式计算,MapReduce;
    3、资源管理系统,Yarn。
    下面直接进入正题:伪分布式集群的搭建。
    环境:
        ① Vmvare workStation、
        ② Linux(CentOS,Ubuntu等,我用的是CentOS_6.5版本下载)
        ③ Jdk(7或7以上均可)
        ④ Hdaoop2.6.5安装包
    以上文件下载地址:https://pan.baidu.com/s/1ek7QjQSaWBJD2uikY3DTng
    安装步骤:
    ① 安装jdk,解压即可,安装之后配置环境变量,修改/etc/profile文件,为什么要修改这个文件?是因为hadoop可以通过配置找到jdk,根本因为hadoop是java语言编写,也需要在jvm中运行。完成以后,配置ip/主机名映射,修改/etc/hosts文件。
        [root@xiaoku ~]# rpm -i jdk-8u151-linux-x64.rpm
        [root@xiaoku ~]# vi /etc/profile
        在profile文件底部添加:
        export JAVA_HOME=/usr/java/jdk1.8.0_151
        export PATH=$PATH:$JAVA_HOME/bin
        [root@xiaoku ~]# vi /etc/hosts
        在hosts文件底部添加(主机名安装操作系统时可自定义,但不能出现像"."、“_”、“/”这样的字符,后面格式化的时候会出错)
        192.168.201.77 xiaoku
    ② 设置免密码登录
        设置免密码登录的目的是为了实现hadoop的自动化操作,搭建好集群后,各个节点之间通过ssh的方式进行通信,只需要各节点持有的公钥相同即可完成认证,也保障了通信的安全性。
        [root@xiaoku ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
        [root@xiaoku ~]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    ③ 安装hadoop2.6.5
        [root@xiaoku ~]# tar xf hadoop-2.6.5.tar.gz
        解压成功后会出现hadoop-2.6.5文件,将其复制到新的文件夹下
        创建新目录/opt/source(可自定义),用来存放安装包
        [root@xiaoku ~]# mkdir /opt/source
        [root@xiaoku ~]# mv hadoop-2.6.5 /opt/source
        添加环境变量:修改/etc/profile文件底部添加:
        export HADOOP_PREFIX=/opt/source/hadoop-2.6.5
        同时PATH后添加:
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
        此时环境变量配置完了,加载到内存
        [root@xiaoku ~]# . /etc/profile
        加载完成后,hadoop的命令就会生效了。
    ④ 修改脚本文件和配置文件
        [root@xiaoku source]# cd hadoop-2.6.5/etc/hadoop/
        [root@xiaoku source]# cat $JAVA_HOME
        会得到一个目录/usr/java/jdk1.8.0_151,即当前jdk所在目录,复制
        修改hadoop目录下的hadoop-env.sh、mapred-env.sh、yarn-env.sh
        [root@xiaoku source]# vi hadoop-env.sh
        [root@xiaoku source]# vi mapred-env.sh
        [root@xiaoku source]# vi yarn-env.sh
        打开文件找到export JAVA_HOME=${JAVA_HOME},如果前面有#的说明被注释了,将其打开即可,
        然后将${JAVA_HOME}替换为复制的jdk目录。
        为什么要这么做呢?是为搭建真分布式集群做准备,如果通过本地节点,可以获取到${JAVA_HOME}的值为当前jdk所在目录,如果通过ssh远程调用的时候,就获取不到值,程序就会报错。
        下面修改配置文件core-site.xml、hdfs-site.xml和slaves
        [root@xiaoku source]# vi core-site.xml
        添加如下配置,是为了启动namenode的时候,能够找到默认的namenode主机节点
            <configuration>
                <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://xiaoku:9000</value>
                </property>
            </configuration>
        同时必须添加一个如下配置:
            <property>
                <name>hadoop.tmp.dir</name>
                <value>/var/xiaoku/hadoop/local</value>(可自定义,在/var目录下建立均可)
            </property>
        在hadoop默认配置中,hadoop.tmp.dir指向的是linux的/tmp/hadoop-${user.name},此目录在节点宕机等情况发生时会被清空,此时hadoop的数据将被清空。

        默认配置参考官方文档:http://hadoop.apache.org/docs/r2.6.5/做菜单栏下的Configuration

https://img-blog.csdn.net/20180122155011228?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM2MjAwMzYz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

        [root@xiaoku source]# vi hdfs-site.xml
        <configuration>
            <property>
                <name>dfs.replication</name>
                <value>1</value>//添加块的副本数,伪分布式集群只有一个节点,为1;分布式节点为多个
            </property>
            <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>xiaoku:50090</value>//配置secondaryNamenode的ip和端口(默认50090),参考官档
            </property>
        </configuration>
        [root@xiaoku source]# vi slaves
        将localhost修改成当前节点主机名即可。slaves存放的是datanode各个节点的主机名或ip,目前主机名为当前节点,真分布式则有多个
    ⑤ 格式化文件系统,进行hdfs集群的部署,启动集群
        [root@xiaoku source]# hdfs namenode -format
        格式化成功的标志是没有报错,并在日志中出现successfully formatted字样,格式化之后会在/var生成/xiaoku/hadoop/local...的目录。
        格式化之后会在/var/xiaoku/hadoop/local/dfs/name/current/下的VERSION中存放一个clusterId,集群启动后也会在/var/xiaoku/hadoop/local/dfs/data/current/下的VERSION中存放一个clusterId
        只有当两个clusterId相同时,节点才会正常,否则datanode在启动一段时间之后会自动消失,原因就是datanode会通过clusterId来寻找对应的主机。
        [root@xiaoku source]# start-dfs.sh
        此时会逐渐启动namenode、datanode和secondaryNamenode
        [root@xiaoku source]# jps

        打印java进程,查看个节点是否启动成功

https://img-blog.csdn.net/20180122155251926?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM2MjAwMzYz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

 如果进程中有上面四个,就说明启动成功

    ⑥ hdfs webUI界面
        在浏览器输入ip:50070或namenode主机名:50070
        如果出现下面的界面就说明成功了:
        https://img-blog.csdn.net/20180122155449879?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM2MjAwMzYz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

        下拉可以查看Live nodes,即slaves的有效节点数。
        到此,为分布式集群搭建结束。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
在进行Hadoop开发前,需要先配置好Hadoop的开发环境,包括安装Hadoop和分布式集群。以下是Hadoop安装和分布式集群的步骤: 1. 下载Hadoop 在Hadoop官网下载最新版本的Hadoop压缩包。当前最新版本是3.3.1。 2. 解压缩Hadoop 将下载的Hadoop压缩包解压缩到本地目录,比如/opt/hadoop。解压缩后,会得到一个hadoop-3.3.1目录。 3. 配置Hadoop环境变量 在~/.bashrc文件中添加以下内容: export HADOOP_HOME=/opt/hadoop/hadoop-3.3.1 export PATH=$PATH:$HADOOP_HOME/bin 然后执行source ~/.bashrc,使配置生效。 4. 配置Hadoop 进入Hadoop的安装目录,修改配置文件。以下是必须修改的配置文件: - core-site.xml 在Hadoop安装目录的/etc/hadoop/目录下,创core-site.xml文件,并添加以下内容: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> 这个配置指定了Hadoop的默认文件系统为HDFS,并且HDFS的访问地址为localhost:9000。 - hdfs-site.xml 在Hadoop安装目录的/etc/hadoop/目录下,创hdfs-site.xml文件,并添加以下内容: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> 这个配置指定了HDFS的副本数为1。 - mapred-site.xml 在Hadoop安装目录的/etc/hadoop/目录下,创mapred-site.xml文件,并添加以下内容: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 这个配置指定了MapReduce的框架为YARN。 - yarn-site.xml 在Hadoop安装目录的/etc/hadoop/目录下,创yarn-site.xml文件,并添加以下内容: <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> 这个配置指定了NodeManager的辅助服务为mapreduce_shuffle,并且指定了ShuffleHandler类。 5. 格式化HDFS 在Hadoop安装目录下,执行以下命令: $ hdfs namenode -format 这个命令会格式化HDFS,清空HDFS中的所有文件。 6. 启动Hadoop 在Hadoop安装目录下,执行以下命令: $ start-all.sh 这个命令会启动Hadoop的所有组件,包括NameNode、DataNode、ResourceManager、NodeManager等。 7. 验证Hadoop是否正常工作 在浏览器中访问http://localhost:8088/,可以看到YARN的Web界面。在浏览器中访问http://localhost:50070/,可以看到HDFS的Web界面。 至此,Hadoop的安装和分布式集群完成。可以开始进行Hadoop的开发了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值