热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ubuntu18.04首次配置hadoop伪分布式以及出现的问题

1、搞明白单机、伪分布式和集群的区别单机:也称非分布式,是直接读写本地操作系统的文件系统,一般仅用于本地MR程序的调试。直接解压hado

1、搞明白单机、伪分布式和集群的区别

单机:也称非分布式,是直接读写本地操作系统的文件系统,一般仅用于本地MR程序的调试。直接解压hadoop包就行,无需配置。

伪分布式:在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点: (NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode)。在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。能够访问本地操作系统文件hdfs文件

集群:真正的分布式,由3个及以上的实体机或者虚拟机组件的机群。

 


2、Hadoop配置教程

hadoop配置教程可以参考:

      单机配置教程:http://dblab.xmu.edu.cn/blog/install-hadoop/

      伪分布式配置教程:http://dblab.xmu.edu.cn/blog/install-hadoop/

      集群配置教程:http://dblab.xmu.edu.cn/blog/install-hadoop-cluster/

 


3、配置伪分布式需要修改的文件

  单机配置的话,其实不需要修改hadoop里的配置文件;

  伪分布式配置的话,需要在core-site.xml和hdfs-site.xml中进行配置,即向文件中添加如下图的内容:

core-site.xml:添加tmp文件夹

hdfs-site.xml:在tmp文件夹中添加namenode和datanode的文件,这里/tmp/dfs/name/放置了FSimage等信息。/tmp/dfs/data文件夹只有在启动hdfs后才有。

其实,按照上述教程配置就可以了,有详细的讲解,本人在这里写是为了下面描述bug使用。

 


4、出现的问题

如果按照上述教程的流程进行配置,肯定是没问题。本人按照这个教程进行配置为什么出现问题以及如何解决请看下面分析:

(1)出现的问题:在运行./bin/hdfs namenode -format,报错:Error: JAVA_HOME is not set and could not be found.

      解决方法:

本人检查了一下.bashrc中JAVA_HOME变量设置没问题,出现问题是在hadoop-env.sh中,按照上图说的把${JAVA_HOME}改成jdk的安装位置就行。

(2)运行./sbin/start-dfs.sh报错,如下图,具体的报错信息可以查看hadoop里logs中的对应文件,错误原因描述的很详细

namenode错误:

datanode错误:

进入hadoop里的tmp文件夹查看里面有/dfs/name,所以namenode的错误应该是is not accessible。datanode为什么会出现问题,本人推测可能是因为之前执行./bin/hdfs namenode -format时,已经创建了/tmp/dfs/name文件夹,而当时报了JAVA_HOME的问题,所以如果在解决JAVA_HOME问题后不把/tmp文件夹删掉重新执行./bin/hdfs namenode -format,而是执行./sbin/start-dfs.sh就会出现上述问题(分析方法:成功启动dfs后逆向实践推理得到的)。

解决方法:删掉/tmp文件夹,重新执行./bin/hdfs namenode -format,成功后,再执行./sbin/start-dfs.sh。

 


5、yarn配置

参考:http://dblab.xmu.edu.cn/blog/install-hadoop/

首先,伪分布式不启动YARN也可以,一般不影响程序执行。因为hadoop使用了新的MapReduce框架(MapReduce V2,也称为 YARN,Yet Another Resource Negotiator),所以启动hadoop后看不到JobTracker和TaskTracker。

YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性。

上述通过start-dfs.sh启动hadoop,仅仅启动了MapReduce环境,这里启动YARN,让YARN来负责资源管理和任务调度。

步骤如下:

(1)修改配置文件mapred-site.xml:

          a)重命名:mv    mapred-site.xml.template    mapred-site.xml

          b)gedit mapred-site.xml

mapreduce.framework.nameyarn

          c)gedit  yarn-site.xml

yarn.nodemanager.aux-servicesmapreduce_shuffle

(2)启动YARN——需要先执行 ./start-dfs.sh

./sbin/start-yarn.sh # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver # 开启历史服务器,才能在Web中查看任务运行情况

(3)运行后,通过jps可以看到多了NodeManager 和 ResourceManager 后台进程。

(4)web查看:https://localhost:8088/cluster

(5)关闭YARN。 

./sbin/stop-yarn.sh
./sbin/mr-jobhistory-daemon.sh stop historyserver

注意:YARN主要为集群提供更好的资源管理与任务调度,这在单机上体现不出价值,

所以不启动YARN,需要重命名 mapred-site.xml如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。

 


6、HBASE配置

参考:http://dblab.xmu.edu.cn/blog/install-hbase/


7、Hive安装

参考:http://dblab.xmu.edu.cn/blog/install-hive/

 

 

 

 


推荐阅读
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 深入解析C#中app.config文件的配置与修改方法
    在C#开发过程中,经常需要对系统的配置文件进行读写操作,如系统初始化参数的修改或运行时参数的更新。本文将详细介绍如何在C#中正确配置和修改app.config文件,包括其结构、常见用法以及最佳实践。此外,还将探讨exe.config文件的生成机制及其在不同环境下的应用,帮助开发者更好地管理和维护应用程序的配置信息。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • MongoDB核心概念与基础知识解析
    MongoDB 是一种基于分布式文件存储的非关系型数据库系统,主要采用 C++ 语言开发。本文将详细介绍 MongoDB 的核心概念和基础知识,包括其与传统 SQL 数据库的区别,数据库及集合的基本操作,如数据的插入、更新、删除和查询等。通过本文,读者可以全面了解 MongoDB 的基本功能及其应用场景。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
author-avatar
美娟婉燕6386
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有