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
<!--指定hadoop运行路径-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://jason:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
</property>
<property>
    <name>io.file.buffer.size</name>
    <value>131702</value>
</property>
    • hdfs-site.xml
<!-- 文件副本数  -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/hdfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop/hdfs/data</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>jason:9001</value>
</property>
<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>
<!-- 其他用户操作时会提醒没有权限的问题  -->
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>
    • mapred-site.xml
      mv mapred-site.xml.template mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>jason:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>jason:19888</value>
</property>
    • yarn-site.xml
<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>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>jason:8032</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>jason:8030</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>jason:8035</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>jason:8033</value>
</property>

<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>localhost:8088</value>
</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

猜你喜欢

转载自blog.csdn.net/jason_m_ho/article/details/80144019