首页 > linux下安装hadoop

linux下安装hadoop

关键词:Ubuntu;hadoop;

注意:开始这一步之前,需安装Oracle的jdk,参见:

http://www.cnblogs.com/fengfengqingqingyangyang/archive/2012/11/06/2756981.html

1、下载hadoop的合适版本:http://labs.mop.com/apache-mirror/hadoop/common/

我下载的是hadoop-1.1.0.tar.gz

2、在/usr下创建hadoop目录,并将gz文件复制到hadoop目录下;

  命令行下解压gz文件:tar -xzf hadoop-1.1.0.tar.gz

  为方便管理,修改目录名:mv hadoop-1.1.0 hadoop

3、创建名为hadoop的用户组和用户

  addgroup hadoop  #用户组

  adduser --ingroup hadoop hadoop

ps:创建用户时只需输入密码即可,其他回车选择默认

4、gedit打开sudoers文件,修改hadoop的权限:

  gedit /etc/sudoers    

ps:无法打开sudoers时,请切换至root再执行本条及以下语句。

    在root ALL=(ALL)ALL语句之下添加如下一行后保存sudoers:

hadoop ALL=(ALL)ALL

PS:特别注意大小写!!!血和泪的教训告诉你linux中大小写的重要性!!!

5、创建ssh-key:

5.1、确保网络通畅,然后装载ssh服务 

   apt-get install openssh-server 

  注:如果此语句执行失败且结果为“....包被占用”的话,那么应该是ubuntu的“更新管理器”正在后台更新,关闭更新。

5.2、生成密钥

 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  #其中‘’为两个而分号!

5.3、设置免密钥登陆

 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

5.3、进入.ssh目录,执行$ssh localhost

 cd /home

 ssh localhost 

注1: ssh密钥默认保存在/home/hadoop/.ssh里面,.ssh文件是隐藏文件,需要Ctrl+h才能见到。

注2:如果执行ssh localhost后,遇到这样的错误:

hadoop@ubuntu:~$ ssh localhost

ssh: connect to host localhost port 22: Connection refused

方法是:再安装一遍SSH

 apt-get install openssh-server 

6、配置hadoop

6.1、进入到hadoop目录下,配置conf目录下的hadoop-env.sh中的JAVA_HOME 

   $ cd /usr/hadoop/hadoop  #根据你解压hadoop的位置而定

   $ sudo gedit conf/hadoop-env.sh 

(打开后在文档的上部某行有“#export JAVA_HOME=......”字样的地方,去掉“#”,然后在等号后面填写你的jdk路径,完全按此文档来的话应改为 " export JAVA_HOME=/usr/java/jdk1.6.0_34" ) 

6.2、配置conf目录下的core-site.xml 

  $ sudo gedit conf/core-site.xml 

打开后标签 中是空的,所以在空的地方加入如下配置:

Xml代码

       fs.default.name

       hdfs://localhost:9000 

 

 

       dfs.replication

       1 

 

 

       hadoop.tmp.dir

       /usr/hadoop/hadoop/tmp   

  

6.3、配置conf目录下的mapred-site.xml 

    $ sudo gedit conf/mapred-site.xml 

打开后标签 中也是空的,添加如下配置: 

Xml代码

    

      mapred.job.tracker    

      localhost:9001  

   

7、首次进入需格式化namenode:

7.1、先进入hadoop目录 

   $ cd /usr/hadoop/hadoop #与解压的hadoop包路径有关

7.2、格式化namenode 

   $ hadoop namenode -format  

PS:如果hadoop没响应,切换到root模式查看/etc/profile文件中在配置jdk路径时的"export PATH=......."中是否有hadoop的路径,如果没有加上则添加,并重新启动即可:

hadoop如果仍旧不能用的话,不妨用带路径的命令方式:~/usr/hadoop/hadoop/bin/hadoop

PS:记得用echo $?查看是否执行成功:返回0说明成功;返回其他说明仍有错误!

8、启动hadoop进程:

bin/start-all.sh 

PS:如果NameNode没有成功启动的话就要先执行"bin/stop-all.sh"停掉所有东西,然后重新格式化namenode

9、用jps查看打开的进程:

至此,单机的hadoop安装完毕!

转载于:https://www.cnblogs.com/fengfengqingqingyangyang/archive/2012/11/06/2757309.html

更多相关:

  • 我们很荣幸能够见证Hadoop十年从无到有,再到称王。感动于技术的日新月异时,希望通过这篇内容深入解读Hadoop的昨天、今天和明天,憧憬下一个十年。 本文分为技术篇、产业篇、应用篇、展望篇四部分   技术篇      2006年项目成立的一开始,“Hadoop”这个单词只代表了两个组件——HDFS和MapReduce。到现在...

  •   很多人只会,但没深入体会和想为什么要这样?   拿Hadoop来说,当然,spark也一样的道理。   输出路径由Hadoop自己创建,实际的结果文件遵守part-nnnn的约定。   如何指定一个已有目录作为Hadoop作业的输出路径,作业将无法进行,并会抛出异常抗议一个已经存在的目录。如果想让Hadoop将输出存储到一个目录,...

  • http://blog.itpub.net/26978437/viewspace-730136/ 按照上几篇的内容,安装好两台ubuntu虚拟机之后,首先确定好哪台机子做namenode,哪台做datanode,打开终端,输入:$sudo vi /etc/hosts 在打开的文件中输入主机名和IP地址,比如我的是: 127.0.0....

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...

  • [{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...

  • 体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...

  • 前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...

  •  翻页器

  •     在src/main/resources/springmvc-servlet.xml中加入

  • 本篇仅仅是一个记录 MergeOperator 的使用方式。 Rocksdb 使用MergeOperator 来代替Update 场景中的读改写操作,即用户的一个Update 操作需要调用rocksdb的 Get + Put 接口才能完成。 而这种情况下会引入一些额外的读写放大,对于支持SQL这种update 频繁的场景来说实在是不划...

  • 看了很多人写的好几个去重方法,我在这里精简组合下,适用于已排序与未排序的数组。 废话不多说,上代码。 数组去重