大数据求索(1):HDFS安装指南

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wen_fei/article/details/82888073

大数据求索(1):HDFS安装指南

背景

HDFS是分布式文件系统,是Hadoop的基础,本章主要介绍如何安装HDFS。

环境参数

  • centos 6.5
  • hadoop2.6.0-cdh5.7.0
  • jdk8

伪分布式安装

一、JDK安装

二、安装SSH并配置免密登录

因为实在centos下,所以安装命令如下:

sudo yum install ssh
sudo yum install rsync
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

然后使用ssh localhost检查能否免密登录。如果成功会连接到自己,使用exit退出即可。

三、下载Hadoop

这里推荐使用cdh版本,具体这个版本和官方版本的区别,可以自己查阅资料,一般推荐使用cdh版本。

下载地址为:https://archive.cloudera.com/cdh5/cdh/5/,然后搜索hadoop2.6.0-cdh5.7.0,如下图所示

hdfs-1

注意这里应该下载hadoop-2.6.0-cdh5.7.0.tar.gz,而不是带src的。

下载完成后解压 tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C ~/app

四、hadoop配置文件的修改

因为是单机版,即伪分布式,所以这里只需要配置三个文件

etc/hadoop/hadoop-env.sh(大概25行)

注释掉原来的JAVA_HOME,改为自己系统下的目录,如下图所示:

hdfs-2

etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://主机名:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/stu/app/tmp</value>
    </property>
</configuration>

说明:

fs.defaultFS : 默认文件系统的名称 ,uri用来确定主机、端口等

dfs.name.dir : 用于确定HDFS文件系统的元信息保存在说明目录下,默认的是保存在linux系统的/tmp目录下,但是每次重启系统后数据会被清除,所以这里自己配置一个新的目录

etc/hadoop/hdfs-site.xml:

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

说明:

dfs.replication : 用于指定备份的数量,默认是3份,因为这里是伪分布式,所以改为1

为了方便命令行操作,配置hadoop环境变量

vim ~/.bash_profile
export Hadoop_HOME=/home/wds/app/hadoop
export PATH=$Hadoop_HOME:$PATH

这样在linux shell里直接输入hadoop可以看到有命令提示,如下图所示

hdfs-3

到这里,配置基本完成。

五、启动HDFS

1) 第一次启动的时候,需要先进行格式化操作

​ bin/hdfs namenode -format

2)启动

​ sbin/start-dfs.sh

启动日志如下

hdfs-4

  1. 验证启动是否成功
  • JPS命令

    hdfs-5

  • 浏览器访问,在浏览器里输入https://ip:50070

    hdfs-6

    浏览器里有很多方便的可视化操作,非常方便

六、遇到的问题解决

1) 浏览器访问打不开

可能的原因:

  • 没有格式化文件系统

  • 没有配置JAVA_HOME

  • 防火墙没有关闭(或者配置规则)

  • 查看本地端口,netstat -ant,查看端口50070是否已经开放

  • 查看本地端口,如果50070前面ip是127.0.0.1(默认绑定),会造成回环,改成0.0.0.0或者本机ip,具体做法是修改/etc/hosts文件,删除多余文件并添加一行 ip 主机名

    或者在hdfs-site.xml文件修改

    <property>
      <name>dfs.http.address</name>
      <value>0.0.0.0:50070</value>
    </property>
    

2) datanode结点无法启动

如果在第一次格式化文件系统以后又格式化了一次,会造成这种情况,主要原因是datanode的clusterID 和 namenode的clusterID 不匹配。当我们执行文件系统格式化时,会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)中保存一个current/VERSION文件,记录namespaceID,标志了所有格式化的namenode版本。如果我们频繁的格式化namenode,那么datanode中保存(即dfs.data.dir在本地系统的路径)的current/VERSION文件只是你地第一次格式化时保存的namenode的ID,因此就会造成namenode和datanode之间的ID不一致。

解决方法一:(推荐)

删除DataNode的所有资料及将集群中每个datanode节点的/dfs/data/current中的VERSION删除,然后重新执行hadoop namenode -format进行格式化,重启集群,错误消失。

解决方法二:

将name/current下的VERSION中的clusterID复制到data/current下的VERSION中,覆盖掉原来的clusterID

然后重启即可。

七、参考

  1. https://blog.csdn.net/baidu_16757561/article/details/53698746
  2. http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

猜你喜欢

转载自blog.csdn.net/wen_fei/article/details/82888073
今日推荐