Hadoop学习笔记一(hadoop伪分布式搭建)

本文详细介绍Hadoop伪分布式环境的搭建步骤,包括JDK安装、环境变量配置、Hadoop配置文件修改等内容,并解决了常见错误。

hadoop伪分布式搭建

  1. 安装JDK
    1) 创建文件夹
    mkdir ~/jdk1.8
    2) 解压文件到这个目录下
    mv jdk-8u60-linux-x64.tar.gz jdk1.8
    tar -xzvf jdkxxx.tar.gz
    3) 将新安装的的java添加到环境变量中
    vi ~/.bash_profile

    JAVA_HOME=/home/hadoop/jdk1.8/jdk1.8.0_60;export JAVA_HOME
    PATH=$JAVA_HOME/bin:/usr/bin:/usr/sbin/:/sbin:/bin:$PATH;export PATH

    4) 重新执行.bash_profile,使得新的环境变量生效。并查看java版本
    #. ~/.bash_profile
    #java -version

    java version "1.8.0_60"
    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
  2. 安装hadoop。hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop,伪分布式需要修改5个配置文件.
    1) 配置hadoop

    • 修改第一个配置文件hadoop-env.sh(主要是制定java_home)

      #第27行
      export JAVA_HOME=/home/hadoop/jdk1.8/jdk1.8.0_60
    • 修改第二个配置文件core-site.xml(指定NameNode的地址)

      #在\<Configuration>\</configuration>中新增
      <!-- 制定HDFS的老大(NameNode)的地址 -->
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://DEVSRV3-SIT.localdomain:9000</value>
      </property>
      <!-- 指定hadoop运行时产生文件的存储目录 -->
      <property>
      <name>hadoop.tmp.dir</name>
      <value>/tmp</value>
      </property>
    • 修改第三个配置文件hdfs-site.xml

      <!-- 制定hdfs副本的数量 -->
      <property>
      <name>dfs.replication</name>
      <value>1</value>
      </property>
    • 修改第四个配置文件mapred-site.xml(没有这个文件,可以cp或者mv出来)

      <!--执行mapreduce运行在yarn上 -->
      <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
      </property>
    • 修改第五个文件:yarn-site.xml

      <!-- 制定YARN的老大(ResourceManager)的地址 -->
      <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>DEVSRV3-SIT.localdomain </value>
      </property>
      <!-- reducer获取数据的方式 -->
      <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      </property>

      2) 将hadoop添加到环境变量中.bash_profile中,之后source ~/.bash_profile。如果终端上有hadoop命令提示,则代表路径配置成功.

      HADOOP_HOME=/home/hadoop/hadoop-2.7.1;export HADOOP_HOME
      PATH=$JAVA_HOME/bin:/usr/bin:/usr/sbin/:/sbin:/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH;export PATH

      3) 格式化namenode(也叫初始化namenode)

      hdfs namenode -format

      4) 启动hadoop
      • 先启动hdfs,需要多次输入yes,会使用ssh免密码登录。
        start-dfs.sh
      • 再启动YARN
        start-yarn.sh
        5) 验证是否启动成功
        使用jps验证,应该包括下面内容:

        28352 NameNode
        23986 Jps
        31474 DataNode
        21923 NodeManager
        21075 ResourceManager
        3167 SecondaryNameNode

        HDFS管理页面:
        http://20.4.16.19:50070
        MR管理页面
        http://20.4.16.19:8088
  3. 配置SSH免密码登录
    #生成ssh密钥
    ssh-keygen -t rsa
    #将id_rsa.pub拷贝到需要免登陆的机器上~/.ssh/authorized_keys中即可
    #试验一下效果
    ssh hadoop@localhost date


报错总结

  1. hadoop namenode -format报错:

    Invalid byte 2 of 2-byte UTF-8 sequence

    这个错误是XML的编码是UTF8的,但是我们编辑的时候使用的xshell字符集是GBK,所以导致中文乱码。造成XML解析问题。
  2. WARN: Unable to load native-hadoop library for your platform

    I assume you’re running Hadoop on 64bit CentOS. The reason you saw that warning is the native Hadoop library $HADOOP_HOME/lib/native/libhadoop.so.1.0.0 was actually compiled on 32 bit.

    Anyway, it’s just a warning, and won’t impact Hadoop’s functionalities.

  3. start-yarn.sh启动后jps中没有nodeManager和ResourceManager,这里要看对应.out文件的log。本次是在配置yarn-site.xml中主机名后多了一个空格造成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值