1.如何在Mac使用Intellij idea搭建远程Hadoop开发环境
2.hadoop和hadoop有什么区别?
如何在Mac使用Intellij idea搭建远程Hadoop开发环境
(1)准备工作
1)
安装JDK
6或者JDK
7
2)
安装scala
2..x
(注意版本)
2)下载Intellij
IDEA最新版(本文以IntelliJ
IDEA
Community
Edition
.1.1为例说明,源码阅读不同版本,环境界面布局可能不同)
3)将下载的源码阅读Intellij
IDEA解压后,安装scala插件,环境流程如下:
依次选择“Configure”–>
“Plugins”–>
“Browse
repositories”,源码阅读输入scala,环境话费系统源码搭建然后安装即可
(2)搭建Spark源码阅读环境(需要联网)
一种方法是源码阅读直接依次选择“import
project”–>
选择spark所在目录
–>
“SBT”,之后intellij会自动识别SBT文件,环境并下载依赖的源码阅读外部jar包,整个流程用时非常长,环境取决于机器的源码阅读网络环境(不建议在windows
下操作,可能遇到各种问题),环境一般需花费几十分钟到几个小时。源码阅读注意,环境下载过程会用到git,源码阅读因此应该事先安装了git。
第二种方法是首先在linux操作系统上生成intellij项目文件,然后在intellij
IDEA中直接通过“Open
Project”打开项目即可。在linux上生成intellij项目文件的方法(需要安装git,不需要安装scala,sbt会自动下载)是c strstr源码:在
spark源代码根目录下,输入sbt/sbt
gen-idea
注:如果你在windows下阅读源代码,建议先在linux下生成项目文件,然后导入到windows中的intellij
IDEA中。
(3)搭建Spark开发环境
在intellij
IDEA中创建scala
project,并依次选择“File”–>
“project
structure”
–>
“Libraries”,选择“+”,将spark-hadoop
对应的包导入,比如导入spark-assembly_2.-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar
包,其他不需要),如果IDE没有识别scala
库,png算法源码则需要以同样方式将scala库导入。之后开发scala程序即可:
编写完scala程序后,可以直接在intellij中,以local模式运行,方法如下:
点击“Run”–>
“Run
Configurations”,在弹出的框中对应栏中填写“local”,表示将该参数传递给main函数,如下图所示,之后点击“Run”–>
“Run”运行程序即可。
如果想把程序打成jar包,公安晃晃源码通过命令行的形式运行在spark
集群中,可以按照以下步骤操作:
依次选择“File”–>
“Project
Structure”
–>
“Artifact”,选择“+”–>
“Jar”
–>
“From
Modules
with
dependencies”,选择main函数,并在弹出框中选择输出jar位置,并选择“OK”。
最后依次选择“Build”–>
“Build
Artifact”编译生成jar包。
hadoop和hadoop有什么区别?
1、运行模式不同:单机模式是Hadoop的默认模式。这种模式在一台单机上运行,亲子游 源码没有分布式文件系统,而是直接读写本地操作系统的文件系统。
伪分布模式这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点。
2、配置不同:
单机模式(standalone)首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。
伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。
3、节点交互不同:
单机模式因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。
伪分布模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。
扩展资料:
核心架构:
1、HDFS:
HDFS对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小和复制的块数量在创建文件时由客户机决定。
2、NameNode
NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。
3、DataNode
DataNode 也是在 HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。
百度百科-Hadoop