centos7安装hadoop

本次安装 hadoop版本为2.7.4,单节点安装。注意,在安装hadoop前要先安装jdk并配置好环境变量。单机版hadoop不需要zookeeper。

1. 上传hadoop压缩包文件到服务器上去(主机名centos1,ip 192.168.100.100),或者直接从官网wget方式下载

2. 将压缩文件解压缩到/home/koushengrui/app目录中,重命名为hadoop目录,修改配置文件(配置文件在etc/hadoop目录中)。

第一个:hadoop-env.sh

       vi hadoop-env.sh

  修改

  export JAVA_HOME=${JAVA_HOME}

  为  

       export JAVA_HOME=/home/koushengrui/app/jdk1.8.0_144   

这一步是必须的,实测 如果不在hadoop-env.sh文件中显式指定JAVA_HOME的话,启动hdfs时会报找不到JAVA_HOME错误。  

第二个:core-site.xml

<!-- 指定hadoop所使用的文件系统(URI格式,hdfs的主节点namenode的地址) -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://centos1:9000</value>
</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/koushengrui/app/hadoop/data</value>
</property>

第三个:hdfs-site.xml

<!-- 指定hdfs副本的数量 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

第四个:mapred-site.xml

        mv mapred-site.xml.template mapred-site.xml

        vi mapred-site.xml

<!-- 指定mapreduce运行在yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

第五个:yarn-site.xml

<!-- 指定yarn主节点resourcemanager的地址-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>centos1</value>
</property>

<!-- reducer获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

第六个:salves

当前salves文件内容为localhost,表示会去localhost启动datanode,因为是单节点安装,所以localhost是可以的,也可以改为127.0.0.1或者192.168.100.100或者centos1.

如果为集群部署,则内容应为所有datanode所在的主机ip或者主机名。

3. 将hadoop添加到环境变量

    vi /etc/proflie

        export HADOOP_HOME=/home/koushengrui/app/hadoop

        export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    source /etc/profile

4. 格式化namenode

       用root身份, hdfs namenode -format

格式化之后,上面core-site.xml配置的hadoop.tmp.dir对应的/home/koushengrui/app/hadoop/data目录中会生成生成一些文件夹及文件,其中

/home/koushengrui/app/hadoop/data/dfs/name/current/fsimage.ckpt_0000000000000000000为维护元数据的文件。

注意,如果hadoop.tmp.dir值有二次更改的话,在启动hdfs之前要先格式化namenode,否则namenode起不来。当然,格式化之后之前存的元数据都会消失,所以hadoop.tmp.dir值配置好之后就别再改了

5. 启动hdfs   start-dfs.sh  

使用jps命令验证是否启动成功,如果有NameNode、SecondaryNameNode、datanode进程,则hdfs启动成功。   

http://192.168.100.100:50070 (HDFS管理界面)。如果是hadoop3.x,则管理端口是9870。

6.启动yarn  start-yarn.sh

使用jps命令验证是否启动成功,如果有ResourceManager、NodeManager进程,则yarn启动成功。      

http://192.168.100.100:8088 (yarn管理界面)。hadoop3.x管理端口不变。

跑一个自带的求圆周率的mapreduce小程序:

hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 3 3

7. 启动hdfs和yarn的时候要输入主机密码,集群多的话可能会超时,所以需要配置ssh免密登陆

hdfs的实现思想:

hdfs是通过分布式集群来存储文件,并对外提供一个虚拟的目录结构以供客户端访问

文件存储到hdfs集群中去的时候是被切分成block的(默认128M),文件的block存放在若干台datanode节点上

hdfs文件系统中的文件与真实的block之间有映射关系,由namenode管理

每一个block在集群中会存储多个副本(dfs.replication配置项),好处是可以提高数据的可靠性,还可以提高访问的并发能力

原文地址:https://www.cnblogs.com/koushr/p/5873392.html