如何在Linux上安装与配置Hadoop-IT168 技术开发专区

如何在Linux上安装与配置Hadoop-IT168 技术开发专区,第1张

在Linux上安装Hadoop之前,需要先安装两个程序:

1 JDK 16或更高版本;

2 SSH(安全外壳协议),推荐安装OpenSSH。

下面简述一下安装这两个程序的原因:

1 Hadoop是用Java开发的,Hadoop的编译及MapReduce的运行都需要使用JDK。

2 Hadoop需要通过SSH来启动salve列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分集群式和伪分布式)。对于伪分布式,Hadoop会采用与集群相同的处理方式,即依次序启动文件conf/slaves中记载的主机上的进程,只不过伪分布式中salve为localhost(即为自身),所以对于伪分布式Hadoop,SSH一样是必须的。

 (2)配置环境变量

输入命令

sudo gedit /etc/profile

输入密码,打开profile文件。

在文件的最下面输入如下内容:

#set Java Environment

export JAVA_HOME= (你的JDK安装位置,一般为/usr/lib/jvm/java-6-sun)

export CLASSPATH=":$JAVA_HOME/lib:$CLASSPATH"

export PATH="$JAVA_HOME/:$PATH"

这一步的意义是配置环境变量,使你的系统可以找到JDK。

(3)验证JDK是否安装成功

输入命令:

java -version

查看信息:

java version "160_14"

Java(TM) SE Runtime Environment (build 160_14-b08)

Java HotSpot(TM) Server VM (build 140-b16, mixed mode)

前期准备

l 两台linux虚拟机(本文使用redhat5,IP分别为 IP1、IP2)

l JDK环境(本文使用jdk16,网上很多配置方法,本文省略)

l Hadoop安装包(本文使用Hadoop104)

搭建目标

210作为主机和节点机,211作为节点机。

搭建步骤

1修改hosts文件

在/etc/hosts中增加:

IP1 hadoop1

IP2 hadoop2

2 实现ssh无密码登陆

21 主机(master)无密码本机登陆

ssh-keygen -t dsa -P '' -f ~/ssh/id_dsa

直接回车,完成后会在 ~/ssh/ 生成两个文件: id_dsa 和 id_dsapub 。

这两个是成对出现,类似钥匙和锁。

再把 id_dsapub 追加到授权 key 里面 ( 当前并没有 authorized_key s文件 ) :

cat ~/ssh/id_dsapub >> ~/ssh/authorized_keys

ssh localhost hostname

还是要输入密码,一般这种情况都是因为目录或文件的权限问题,看看系统日志,确实是权限问题

ssh下的authorized_keys权限为600,其父目录和祖父目录应为755

22 无密码登陆节点机(slave)

slave上执行:

ssh-keygen -t dsa -P '' -f ~/ssh/id_dsa

生成ssh目录。

将master上的authorized_keys复制到slave上:

scp authorized_keys hadoop2:~/ssh/

实验:在master上执行

ssh hadoop2

实现无密码登陆。

3 配置Hadoop

31拷贝hadoop

将hadoop-104targz ,拷贝到usr/local 文件夹下,然后解压。

解压命令:

tar –zxvf hadoop-104targz

32查看 cat /etc/hosts

IP1 hadoop1

IP2 hadoop2

33 配置 conf/masters 和 conf/slaves

conf/masters:

1

IP1

conf/slaves:

1

2

IP2

IP2

34 配置 conf/hadoop-envsh

加入

1

export JAVA_HOME=/home/elvis/soft/jdk170_17

35 配置 conf/core-sitexml

1

2

3

4

<property>

<name>fsdefaultname</name>

<value>hdfs://IP1:9000</value>

</property>

36 配置 conf/hdfs-sitexml

加入

<property>

<name>dfs>

你的输出文件夹没删

Output directory outputy already exists 意思是你的输出路径已经存在了 所以hadoop不能创建输出文件了

把这个文件夹删掉就好了

没有hadoop文件? 你指的是format之后没有生成文件?

format是对你配置的dfsnamedir参数指定的目录进行格式化,清空并创建一些初始文件,想要找格式化之后生成什么就到dfsnamedir配置的目录查看,而非hadoop安装目录下。

具体可参考文章:>

hadoop开发时是在纯linux系统上吗

用hadoop不在与那个linux系统好,而是hadoop最好在linux下,其实linux都差不多,核心都是一样的,用起来也都大同小异,

在linux系统上怎么搭建hadoop开发环境

在Eclipse的Windows->Preferences中,选择Hadoop Map/Reduce,设定好Hadoop的安装目录,这里,我直接从linux的/home/hadoop/hadoop-103拷贝过来的,点选OK按钮!

android开发要用linux系统吗

这个没有系统限制,你可以用任何系统来开发Android

app开发需要linux系统

你是想跑裸机应用么?

还是开发了应用,然后让 Linux 起来之后,

自动就去执行你开发好的 Linux 应用程式

前者你可以使用 bootload 的命令直接从记忆体

中呼叫,或者下到板子FLASH上合适的位置,

中间有可能得调调bootload的程式码;

另外 bootload 本身就是一个裸机程式,所以

你在搞清楚 bootload 为什么能跑起来的情况下,

可以去调整你自己的裸机应用,最后下到FLASH

中替代 bootload 来跑;

至于后者,你需要了解 Linux 的一系列初始化过程,

包括核心及使用者空间的初始化,最后用你自己的应用,

去取代掉原来就预设执行的 init, 或者由原来的 init 搭配

一系列指令码来帮助启动你自己的应用程式。

\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/

杭州巨立安(JulianTec)是杭州市场上

唯一由资深研发工程师所创办的机构。所以:

就专业程度和实在程度而言,她

是您在arm架构下学习嵌入式Linux研发的上佳指导!

java开发是在windows系统下好还是在linux系统下好呢

在java程式中如何呼叫linux的命令?如何呼叫shell指令码呢? 这里不得不提到java的process类了。 process这个类是一个抽象类,封装了一个程序(你在呼叫linux的命令或者shell指令码就是为了执行一个在linux下执行的程式,所以应该使用process类)。 process类提供了执行从程序输入,执行输出到程序,等待程序完成,检查程序的推出状态,以及shut down掉程序。 至于详细的process类的介绍放在以后介绍。 另外还要注意一个类:Runtime类,Runtime类是一个与JVM执行时环境有关的类,这个类是Singleton的。 这里用到的RuntimegetRuntime()方法是取得当前JVM的执行环境,也是java中唯一可以得到执行环境的方法。(另外,Runtime的大部分方法都是例项方法,也就是说每次执行呼叫的时候都需要呼叫到getRuntime方法) 下面说说Runtime的exec()方法,这里要注意的有一点,就是public Process exec(String [] cmdArray, String [] envp);这个方法中cmdArray是一个执行的命令和引数的字串阵列,阵列的第一个元素是要执行的命令往后依次都是命令的引数,envp感觉应该和C中的execve中的环境变数是一样的,envp中使用的是name=value的方式。 下面说一下,如何使用process来呼叫shell指令码 例如,我需要在linux下实行linux命令:sh testsh,下面就是执行testsh命令的方法: 这个var引数就是日期这个201102包的名字。

开发linux 程式需要装linux系统吗

简单的Linux程式不需要安装Linux系统,可以安装交叉编译工具链,用来在其它系统中的可执行程式。但是这样做会对除错工作带来很多困难,一般稍微复杂一些的程式难免会出错,所以还是装一个方便些。

android 开发 用哪个linux系统

只做上层应用,可以不涉及到linux,装个WINDOWS版的JAVA JDK,一个ANDROID的SDK,一个ECLIPSE就可以开发了。 如果需要做底层系统级开发,则需要一个LINUX编译环境,配置一些交叉编译器,还需要一份ANDROID的整个系统原始码。编译系统LINUX一般可以用Ubuntu,也可以用Fedroa,都可以的

redis和nginx必须在Linux系统上吗

redis和nginx都有windows版本,所以不一定安装在linux系统上

redis下载::redisio/download

nginx下载::nginx/en/download

怎么在linux系统里开发android程式码

应用程式的开发?用linux 下的eclipse 就可以了,同Windows下的开发没有区别

linux系统开发者必备吗?

不是必备的,视产品需要而定。

以上就是关于如何在Linux上安装与配置Hadoop-IT168 技术开发专区全部的内容,包括:如何在Linux上安装与配置Hadoop-IT168 技术开发专区、如何在linux下搭建hadoop集群环境小残'sblog、linux下hadoop不能运行统计单词个数的wordcount程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10127057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存