最近刚自己又分别搭了一次Hadoop的两个环境,主要是给想学习Hadoop刚开始的环境搭建以及遇到的一些问题。因为刚开始自己Hadoop也是自学的所以遇上了很多问题,这次比较顺利,Hadoop学习的基础肯定是java和Linux,下面我就从伪分布式开始说一下其中的步骤和遇上的问题。其中虚拟机用的是Centos 6的版本,这个用起来比较方便,建议用mini版的可以锻炼自己读写代码的能力。

一、伪分布式环境搭建

①安装前的准备

1 需要JDK环境

2 防火墙关闭

3 修改seLinux

4 创建独立用户 Hadoop

5 设置主机名称 hadoop01

6 hosts 地址映射

 

 

 

 

 

1.准备JDK环境

首先规划一下文件的安装目录:在 /opt下创建app,softs目录

softs为文件上传的目录

app为安装软件的目录

上传文件可以使用rz命令如果没有可以yum -y install lrzsz直接安装。个人感觉这个命令并不是很好用,我自己用的是FlashFXP软件上传的文件操作比较简单而且速度比较快。

1)将准备好的jdk解压,到/opt/app中  tar -zvxf  jdk1.8.0_181 -C /opt/app

2)配置jdk的环境变量  vi /etc/profile

在最后一行开始追加上

export JAVA_HOME=/opt/app/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin

配置完毕后wq保存退出 然后执行source /etc/profile让配置生效

2.关闭防火墙

service iptables stop临时关闭

chkconfig iptables off永久性关闭

个人认为防火墙开着没什么卵用直接永久关闭就ok

3.修改selinux

vi /etc/sysconfig/selinux

设置 SELINUX=disabled

hadoop伪分布式安装 hadoop伪分布式环境搭建_Hadoop

 

4.修改主机名称

hostname 主机名 临时修改

vi /etc/sysconfig/network 永久修改

hadoop伪分布式安装 hadoop伪分布式环境搭建_hadoop伪分布式安装_02

 

5.IP绑定hostname

vi /etc/hosts

hadoop伪分布式安装 hadoop伪分布式环境搭建_hadoop_03

 

 这是我自己搭建的完全分布集群的绑定 伪分布式只需要绑定当前一台机器的IP地址和主机名

安装Hadoop环境

1) 需要创建独立用户  hadoop  使用useradd hadoop

2) 修改独立用户的密码 passwd hadoop  密码 123456

3) 切换到Hadoop 用户下进行解压Hadoop 文件 ,之前必须要为Hadoop用户设置sudo 权限

4) 使用visudo 设置hadoop 权限

Hadoop 默认是在linux 32位系统下编译的,如果自己下载官网上的hadoop 需要重新编译一下源码  不然会出现无法加载本地库的问题  

5) 修改 Hadoop源文件的 用户 和用户组的权限

sudo  Chown  -R  hadoop:hadoop  hadoop文件

6)   解压hadoop 安装目录

sudo tar -zvxf hadoop -C /opt/app

7)  解压之后的Hadoop 的目录

bin  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  README.txt  sbin  share

Bin:  Hadoop的最基本脚本目录, hadoop 命令  hdfs 的命令 都在该目录下执行

Etc:  该目录下存放的位Hadoop 配置文件 Hadoop分为四大核心模块 core  hdfs  mapreduce yarn   该目录下的配置文件也是对应了四个核心模块的配置

Lib : 包含了hadoop中动态编程以及动态编程中引用的库文件  头文件信息

Sbin: hadoop脚本管理目录,主要存放了HDFS  YRAN 服务的启动和关闭

Share: 包含了hadoop各个模块的编译后的jar包 

1 编写etc/hadoop hadoop-env.sh  增加JAVA_HOME 安装路径

export JAVA_HOME=/opt/app/jdk1.8.0_181 

2 尝试使用 bin/hadoop 命令看能否提示出hadoop命令 

 

hadoop伪分布式安装 hadoop伪分布式环境搭建_主机名_04

 

配置HDFS

1)配置

配置HDFS的路径的地址 

<configuration>
  <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:8020</value>
    </property>
</configuration>

修改hadoop临时保存目录

<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/app/hadoop-2.7.2/data/tmp</value>
    </property>

2) 配置etc/hadoop/hdfs-site.xml:HDFS 的复制因子 在伪分布式环境中 必须设置1

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

3)该属性定义了 HDFS WEB访问服务器的主机名和端口号

 

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

4)定义secondarynamenode 外部地址 访问的主机和端口

 

<property>
 
  <name>dfs.namenode.secondary.http-address</name>
 
  <value>主机名:50090</value>
 
</property>

5)配置 namenode  fs  edites  存储目录

<property>  
<name>dfs.namenode.name.dir</name>
  <value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>

6) 配置namednoe  edits 存储模式

<property>
  <name>dfs.namenode.edits.dir</name>
  <value>${dfs.namenode.name.dir}</value>
</property>

7)配置datanode 数据存储目录

<property>
  <name>dfs.datanode.data.dir</name>
  <value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>

8)修改secondaryNameNode fsimage  的存储路径

 

<property>
 
  <name>dfs.namenode.checkpoint.dir</name>
 
  <value>file://${hadoop.tmp.dir}/dfs/namesecondary</value>
 
</property>

 

 

9)修改secondaryNameNode edits 的存储路径

 

<property>
 
  <name>dfs.namenode.checkpoint.edits.dir</name>
 
 
 <value>${dfs.namenode.checkpoint.dir}</value>
</property>

配置YARN环境

1)配置mapred-site.xml文件设置Mapreduce框架运行名称为yarn

<configuration>
  <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

2)设置yarn中的服务类yarn-site.xml

<configuration>
  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

3)配置resourcemanager 的主机位置

 

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>主机名</value>
  </property>

4)在yarn-site.xml文件启用日志聚集的功能 

 

<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>

5)设置HDFS上日志的保存时间

<property>
    <name>yarn.nodemanager.log.retain-seconds</name>
    <value>10800</value>
  </property>

配置完之后首先对namenode进行格式化

hadoop伪分布式安装 hadoop伪分布式环境搭建_Hadoop_05

出现successfully formatted格式化成功

启动hdfs服务

sbin/start-dfs.sh

启动yarn服务

sbin/start-yarn.sh

启动完毕后jps查看服务

hadoop伪分布式安装 hadoop伪分布式环境搭建_Hadoop_06

伪分布式搭建完毕。完全分布式跟伪分布式的区别就在于伪分布式是一台机器而完全分布式是多台机器把任务分配下去每台机器干每台机器的事情。

因为一台机器的运行是有限度的,分配给多台各干各的谁有空谁干。