跟我一起读《Hadoop权威指南》 第一篇 -- Hadoop2.8.3安装

我的配置环境

  • 我的是mac环境,centos/ubuntu等环境通用
  • 安装首先需要安装jdk1.8、maven3.5.3、protoc(必须是2.5,下载地址:protoc2.5)。
  • 这里的maven和protoc是为以后的重新编译Hadoop-src源码做准备,本文暂且使用不到
  • 下载完成后,解压到本地目录
  • 这里写图片描述
  • vi ~/.bash_profile,忽略这里的HADOOP_HOME,下边才会配置这个
  • 这里写图片描述
  • source ~/.bash_profile,刷新配置,使其立即生效

安装Hadoop

  • 下载hadoop.2.8.3
  • 解压到自定义目录,如第一图所示
  • vi ~/.bash_profile,如第二图所示
  • source ~/.bash_profile,刷新配置,使其立即生效

修改配置项并启动

  • 环境准备好之后,开始修改配置项。需要修改的配置文件都在$HADOOP_HOME/etc/hadoop目录下
  • core-site.xml文件用于配置通用属性,hdfs-size.xml文件用于配置HDFS属性,mapred-site.xml文件用于配置MapReduce属性,yarn-site.xml文件用于配置YARN属性
  • Hadoop有一下三种运行模式
    • 独立(或本地)模式 无需运行任何守护进程,所有程序都在同一个JVM上执行
    • 伪分布式模式 Hadoop守护进程运行在本地机器上,模拟一个小规模的集群
    • 全分布式模式 Hadoop守护进程运行在一个集群上,此模式的设置请参考Hadoop权威指南第四版 第十章
  • 修改配置文件,构建伪分布式集群,切换到$HADOOP_HOME /etc/hadoop目录下

    • 在终端输入hostname,确定本机hostname是否为localhost,若不是,则以下所有localhost可替换为你的hostname
    • 这里写图片描述
    • vi core-site.xml,在configuration标签下

      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
      </property>
      <property>
          <name>hadoop.tmp.dir</name>
          <value>/Users/mright/apps/hadoop-2.8.3/tmp</value>
      </property>
    • vi hadoop-env.sh,修改JAVA_HOME,mac系统用这个路径,Linux系统用你自己配置的jdk根目录

      export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
      
    • vi hdfs-site.xml

      <property>
          <name>dfs.replication</name>
          <value>1</value>
      </property>
    • vi mapred-site.xml,如果没有,则cp mapred-site.xml.template mapred-site.xml,再执行vi mapred-site.xml

      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    • vi yarn-site.xml

      <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>localhost</value>
      </property>
      <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
      </property>
  • hdfs namenode -format

  • start-dfs.sh
  • start-yarn.sh
  • jps (查看已启动进程, DataNode /NameNode /NodeManager/ ResourceManager /SecondartNameNode必须都已启动)
  • 这里写图片描述
  • 上述命令依次执行即可,我在启动namenode的时候确实遇到了小意外,namenod无法启动,经排查是hostname的问题,将localhost修改为我本机hostname即可

wordcount测试

  • 在随便一个目录下,新建一个含有几个字符串的文件

    • touch wd.txt
    • vi wd.txt
    • hello world nihao 陈独秀 嘎嘎 哈哈儿
    • 将第三行的文本写入到wd.txt
    • 在hdfs新建一个文件夹用于存放wd.txt
      • hdfs dfs -mkdir /input
    • 上传文件
      • hdfs dfs -put wd.txt /input
    • 执行测试

      • hadoop jar /Users/mright/apps/hadoop2.8.3/share/hadoop/mapreduce/hadoop-mapreduce- examples-2.8.3.jar wordcount /input /output
      • 这一行命令的含义是:调用hadoop-mapreduce- examples-2.8.3.jar的wordcount这个main函数,处理hdfs的/input目录下的所有文件,将结果输出到/out目录下,注意,这里的/out目录是不能预先创建的,如果存在,程序会出于数据安全、不能覆盖数据的角度出发而报错
      • 这里可能会卡住很久不动,大概有五分钟左右,如果还是不动,你可以ctrl+c终止进程,修改一个配置,增加下内存。这种情况是有一定几率出现的,我的mac是有这个问题,但是公司的windows下centos7的虚拟机就没有出现,做完如下配置即可。

        • vi yarn-site.xml,修改完毕后的
        <configuration>
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>localhost</value>
            </property>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
            <property>
                    <name>yarn.nodemanager.resource.memory-mb</name>
                    <value>20480</value>
            </property>
            <property>
                    <name>yarn.scheduler.minimum-allocation-mb</name>
                    <value>2048</value>
            </property>
            <property>
                    <name>yarn.nodemanager.vmem-pmem-ratio</name>
                    <value>2.1</value>
            </property>
        </configuration>
      • 再次执行hadoop jar /Users/mright/apps/hadoop2.8.3/share/hadoop/mapreduce/hadoop-mapreduce- examples-2.8.3.jar wordcount /input /output,首先确保/outpt目录不存在哈
      • 这里写图片描述
        这里写图片描述

        • 查看/output,hdfs dfs -ls /output
        • 这里写图片描述

        • part-r-00000就是生成的数据文件,同样我们通过hdfs的命令行操作查看内容

        • 这里写图片描述
        • 到此为止,hadoop伪分布式基本已经完成,接下来的博客中,我会更新hdfs的相关内容、yarn的相关内容、hbase等等,让我们一起学习吧~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值