在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程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)