ubuntu Hadoop 填坑记

  • 执行bin/hadoop的时候一直connection failed
    • 需要将/etc/hosts 里面的ubuntu 里面的127.0.1.1 改成127.0.0.1
  • 每次重启之后都会Hadoop的web管理页面都打不开,也就是localhost:8088 和 localhost:9870 进不去,但是bin/start-all.sh 正常

    • 在Hadoop 安装目录下建立tmp目录,我这里是/usr/local/hadoop/tmp
    • 在etc/hadoop/core-site.xml 里面添加如下配置

      <property>
          <name>hadoop.tmp.dir</name>
          <value>/usr/local/hadoop/tmp</value>
           <description>A base for other temporary directories.</description>
      </property>
    • 重新格式化 hdfs 系统

      bin/hdfs dfs -format
    • 重启Hadoop 即可

    • 分析:主要是原来的tmp目录默认放置在/tmp/目录下,但是这个目录每当ubuntu重启的时候就会被删除,所以我们需要重新设置一个tmp目录
  • bin/hadoop jar 执行我们自己的jar总是曝出ClassName not found的错误

    • 是因为我们的class是在一个包中,所以我们在执行的之后也要吧报名加上,比如我有一个类是WordCount,包名是studyHadoopCh3,所以我执行的时候应该如下写:

      bin/hadoop jar /home/hadoop/workspace/studyHadoopCh3/src/studyHadoopCh3/WordCount/wordcount.jar studyHadoopCh3.WordCount studyHadoopCh6/input output
  • Java程序报错:Cannot allocate memory

    • 这是因为没有可分配的内存了,我给ubuntu虚拟机分配了2G的内存,我查了下主机的内存使用情况发现也已经达到100%了,所以就选择重启了ubuntu虚拟机
  • Hadoop combine的概念:

    • 感觉是将相同的key,value对合并,也就是我们所说的去重
    • 添加了他以后整个的数据处理流程就改为:数据->map函数->combine函数->Reduce函数。这也就导致了下面的这个坑。。。
  • setOutputKeyClass、setOutputValueClass、setMapOutputKeyClass、setMapOutputValueClass

    • 上面四个函数分别是指定reduce的输出的key、value类型和map输出的key、value类型

更新ing…

相关文章

文章浏览阅读2.3k次,点赞4次,收藏22次。最近安装了CARLA预...
文章浏览阅读6.3k次,点赞5次,收藏15次。在清华镜像中下载U...
文章浏览阅读5k次。linux环境, python3.7.问题描述: 安装...
文章浏览阅读4.2k次,点赞4次,收藏17次。要安装这个 standa...
文章浏览阅读894次,点赞51次,收藏31次。在安卓使用vscode主...