hadoop 伪分布式环境搭建

所谓伪分布式环境是指在一台电脑上搭建分布式。分布式,见名知义,一定是分布在多台电脑上的,为了学习技术,只在一台电脑上搭建起来的就是伪分布式。

前提:ssh无密码配置、jdk环境已经配置好,参见笔者文章《hadoop 分布式环境搭建》
hadoop安装包官方下载地址

  • 更改主机名,执行命令:vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=jason
  • 修改ip,设置成固定ip :vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"               ###
HWADDR="00:0C:29:3C:BF:E7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
IPADDR="192.168.2.200"           ###
NETMASK="255.255.255.0"          ###
GATEWAY="192.168.2.1"            ###

在宿主机中不能ping通,要考虑是不是在同个网段;还有linux的防火墙有没有关闭;

####这是CentOS7中关闭防火墙的方法#####
systemctl stop firewalld.service  关闭防火墙
systemctl disable firewalld.service  开机禁止启动防火墙
firewall-cmd --state  查看状态
  • 设置hosts中ip与主机名的绑定,执行命令vi /etc/hosts
    在里面添加选项设置你的主机名与ip的对应关系
192.168.2.200 jason
  • 安装hadoop
    执行命令 tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C /usr/local/hadoop,将压缩包解压到/usr/local/hadoop文件夹下

  • 设置 hadoop-env.sh 和 yarn-env.sh 的 JAVA_HOME
    export JAVA_HOME=/root/software/jdk1.8.0_171

  • 进入hadoop安装目录,进入etc/hadoop目录下

  • 修改etc/hadoop目录下的几个文件:
    • core-site.xml

<property>
    <name>fs.defaultFSname>
    <value>hdfs://jason:9000value>
property>
<property>
    <name>hadoop.tmp.dirname>
    <value>/usr/local/hadoop/tmpvalue>
property>
<property>
    <name>io.file.buffer.sizename>
    <value>131702value>
property>
    • hdfs-site.xml

<property>
    <name>dfs.replicationname>
    <value>1value>
property>
<property>
    <name>dfs.namenode.name.dirname>
    <value>/usr/local/hadoop/hdfs/namevalue>
property>
<property>
    <name>dfs.datanode.data.dirname>
    <value>/usr/local/hadoop/hdfs/datavalue>
property>
<property>
    <name>dfs.namenode.secondary.http-addressname>
    <value>jason:9001value>
property>
<property>
    <name>dfs.webhdfs.enabledname>
    <value>truevalue>
property>

<property>
    <name>dfs.permissionsname>
    <value>falsevalue>
property>
    • mapred-site.xml
      mv mapred-site.xml.template mapred-site.xml

<property>
    <name>mapreduce.framework.namename>
    <value>yarnvalue>
property>
<property>
    <name>mapreduce.jobhistory.addressname>
    <value>jason:10020value>
property>
<property>
<name>mapreduce.jobhistory.webapp.addressname>
<value>jason:19888value>
property>
    • yarn-site.xml
<property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shufflevalue>
property>
<property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>
        <value>org.apache.hadoop.mapred.ShuffleHandlervalue>
property>
<property>
    <name>yarn.resourcemanager.addressname>
    <value>jason:8032value>
property>
<property>
    <name>yarn.resourcemanager.scheduler.addressname>
    <value>jason:8030value>
property>
<property>
    <name>yarn.resourcemanager.resource-tracker.addressname>
    <value>jason:8035value>
property>
<property>
    <name>yarn.resourcemanager.admin.addressname>
    <value>jason:8033value>
property>

<property>
    <name>yarn.resourcemanager.webapp.addressname>
    <value>localhost:8088value>
property>
  • 修改slaves文件,将hadoop集群主机名称添加进去
    jason

  • 修改环境变量:vi /etc/profile

HADOOP_HOME=/usr/local/hadoop/hadoop-2.6.0
export PATH=$HADOOP_HOME/bin:$PATH

启动

  • 初始化,输入命令bin/hadoop namenode -format
  • 全部启动 sbin/start-all.sh

报错

  • “unable to load native hadoop library for your platform”
    此问题的根本的解决办法是:下载相关版本的lib类库,解压到hadoop/lib目录下,并写入环境变量
    lib类库下载地址

  • log4j报WARN
    解决办法是直接在log4j日志中去除告警信息:
    /usr/local/hadoop/hadoop-2.6.0/etc/hadoop/log4j.properties文件中添加
    log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

你可能感兴趣的:(hadoop)