Hadoop学习笔记一(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的地址)

      #在\\中新增


      fs.defaultFS
      hdfs://DEVSRV3-SIT.localdomain:9000



      hadoop.tmp.dir
      /tmp

    • 修改第三个配置文件hdfs-site.xml



      dfs.replication
      1

    • 修改第四个配置文件mapred-site.xml(没有这个文件,可以cp或者mv出来)



      mapreduce.framework.name
      yarn

    • 修改第五个文件:yarn-site.xml



      yarn.resourcemanager.hostname
      DEVSRV3-SIT.localdomain



      yarn.nodemanager.aux-services
      mapreduce_shuffle


      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中主机名后多了一个空格造成的。

你可能感兴趣的:(JAVA)