Ubuntu13.1+VMware Tools+hadoop1.2.1+sublime Text2+jdk1.8.0+ssh无密码登录全解

从4月28号搭建hadoop平台,到今天已经足足5天了,不断地改配置,敲命令,可以说真是人生一大快事吗?好了废话不多说,正式进入我的安装过程:

    目录:

        第一篇:Ubuntu13.1安装

        第二篇:Sublime Text2安装

        第三篇:hadoop+jdk1.8.0安装+ssh无密码登录

        第四篇:出现的问题及解决办法(见另一篇博客)

    正文:

        第一篇:

        我用的是Ubuntu13.1,大家可以到我的云盘下载,下面是链接:

        http://yunpan.cn/cjdvW5Abzap3I  访问密码 d13e

        系统的安装我觉的是没什么说的必要的,给大家一个链接好了:

        http://my.oschina.net/liangbo/blog/206553

        这里我主要强调一点就是VMware Tools的安装,VMware Tolls可以全屏我们的虚拟机里的系统,而且可以实现本地电脑和虚拟机系统里的文件的自由拖拽,所以为了使用方便,这个工具还是安上的好,安装时,点击下图所示的选项:

        

技术分享


         我由于已经安装过了,所以显示重新安装,没安装过得童鞋,就是Install VMware Tolls

         不过,如果点击重新安装后,发现1分钟过去了,还没反应,不要再等了,检查你的镜像设置,如下图:

         

技术分享

技术分享


       其中linux.iso是虚拟机自带的工具镜像,就存放在VMware的安装目录下,相应的windows系统还有windows.iso,好了,Ubuntu的安装就说到这里

       第二篇:

       在这之前,我需要提醒大家先做这样一件事,就是创建一个我们专用的用户,这个用户我们在后面会给他赋予一些特定的权限,包括在建立Hadoop集群时我们使用的用户名最好是一致的,这样会省去很多麻烦。

       创建用户的方法有很多,我的过程如下:

       

技术分享

技术分享

       然后,给新创建的用户赋予sudo权限,修改配置文件/etc/sudoers

       #vi /etc/sudoers

       做如下修改

       

技术分享

       保存退出

       若修改时提示readonly,则进行权限修改,执行以下命令

       #chmod 750 /etc/sudoers

       然后我们在新创建的用户名下,执行以下步骤

       Sublime Text2的安装参考以下博客:

       http://www.linuxidc.com/Linux/2013-05/84228.htm

       第三篇:

       Apache官网上下载Hadoop-1.2.1版本,Hadoop的安装模式分为三种,分别是:单机模式、伪分布模式及全分布模式。默认安装模式是单机模式。这里我们JDK和Hadoop一起进行

       jdk下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

       进去之后,选择Accept License Agreement,下载我们需要的版本

       hadoop下载链接:http://apache.fayea.com/hadoop/common/hadoop-1.2.1/

       下载Hadoop-1.2.1.tar.gz这一版本比较稳定


1) 解压TAR文件

          $tar –zxvf hadoop-1.2.1.tar.gz

          $tar  -zxvf jdk-8u45-linux-i586-demos.tar.gz 

       2)将解压后的文件按如下目录存放(也可以自己定义)

          $cp hadoop-1.2.1 /opt/hadoop

          $cp jdk1.8.0_40 /usr/bin/java

       3) 修改配置文件/etc/profile,还有/opt/hadoop/conf/hadoop-env.sh

                        

       在/etc/profile

技术分享

       在/opt/hadoop/conf/hadoop-env.sh

       把# export JAVA_HOME=/usr/lib/j2sdk1.5-sun的#去掉

       并改为 export JAVA_HOME=/usr/bin/java (根据自己的实际java路径来写)


       4) 保存退出后,查看是否安装成功,执行下面的命令

          

技术分享

技术分享

      5)hadoop安装

         上面其实已经实现了单机安装,接下来我们要做的是Hadoop的伪分布式安装

         伪分布式安装涉及如下几个文件,core-site.xml,hdfs-site.xml,mapred-site.xml,slaves,masters,它们都在/opt/hadoop/conf目录下

         下面来看看他们都是怎么配置的?

         core-site.xml

              

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<!--  fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。-->
 <property>
    <name>fs.default.name</name>
    <value>hdfs://Ubuntu1:9000</value>
 </property>

<!--hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中-->
<property>
      <name>hadoop.tmp.dir</name>
      <value>/hadoop/tmp/hadoop_tmp</value>
</property>

</configuration>

          hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>
	<name>dfs.data.dir</name>
	<value>/hadoop/appdata/data</value>
	<description>
		Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories,then data will be stored in all name directories, typically on different devices.Directories that do not exit are ignored.
	</description>
</property>
<property>
      <name>dfs.name.dir</name>
      <value>/hadoop/appdata/name</value>
      <description>
      	Determines where on the local filesystem the DFS name node should store the name table.If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy.
      </description>
</property>

<property>
	<name>dfs.replication</name>
	<value>1</value>
	<description>
		Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time.
	</description>
</property>
</configuration>

          mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
	<name>mapred.job.tracker</name>
	<value>Ubuntu1:9001</value>
	<description>
		The host and port that the MapReduce job tracker runs at.If "local",then jobs are run in-process as a single map and reduce task.
	</description>
</property>
</configuration>

     masters

        Ubuntu1

     slaves

         Ubuntu1

         Ubuntu2

         Ubuntu3

        这就完成了伪分布式安装,这里我们也不需要看到什么结果,所以直接进行分布式安装

        安装前,我们先列一个表格,把我们总体的思路表达一下


主机名

Hadoop角色

IP

Hadoop  jps命令集

Hadoop用户

Hadoop安装目录

Ubuntu1

Masters

Slaves

192.168.1.131

NameNode

DataNode

JobTracker

TaskTracker

SecondaryDameNode

创建相同的用户组名:yzy3安装hadoop-2.1.1时使用yzy3用户,并且yzy3的文件夹归属也是“yzy3:yzy3”

/opt/hadoop

Ubuntu2

Slaves

192.168.1.132

DataNode

TaskTracker

Ubuntu3

slaves

192.168.1.133

DataNode

TaskTracker

Windows

开发测试环境

安装JDK与Eclipse本身不需要安装Hadoop,但需要Hadoop安装包下面的JAR包

        Ubuntu1,Ubuntu2,Ubuntu3分别为安装在虚拟机上的三台设备,这三台设备包括windows主机实现了互通,并建立了一个集群,接下来按照我们上面对Ubuntu1的配置,对Ubuntu2和Ubuntu3做相同的配置。

        配置完成后,修改/etc/hosts文件,修改如下:

        

技术分享

       其他两台机器做同样的修改,改完之后,可以ping一下,看看能否互通,如果实现互通,则进行下面的步骤,那就是配置SSH免密码登录

       配置前先确保我们开启了ssh服务,

       查看是否开启:

       $ps -e|grep ssh 

       如下所示,则已开启

       

技术分享

       否则,开启,开启ssh服务,敲如下命令:

       $/etc/init.d/ssh start

       当然三台机器要都开启ssh服务才可以,所以按上面的步骤将三台机器的ssh服务全部开启,

       SSH免密码登录部分,进行如下配置,切记一定要在之前创建的用户模式下进行

       $cd ~

       $ssh-keygen -t sta

       然后一直按回车

       以上步骤都是在Ubuntu1,Ubuntu2,Ubuntu3下共同做的

       结束后,查看一下,提示:在上面生成密钥后,新建的文件夹.ssh为隐藏文件,需要用ll -a来查看,我们会发现在当前目录下已经包含了.ssh的目录

       接下来主要在Ubuntu1下完成就可以了,Ubuntu1是我们的master节点

       $cd .ssh

       $ls

       我们会看到在这个目录下有两个文件,分别是id_rsa , id_rsa.pub,接下来执行如下命令

       $cp id_rsa.pub authorized_keys

       $scp authorized_keys Ubuntu2:/home/yzy1/.ssh

       $scp authorized-keys Ubuntu3:/home/yzy1/.ssh

       这里由于是第一次登录,输入yes继续后,需要输入对方的密码,但以后就不需要了

       我们可以来测试一下:

       

技术分享

                                     

技术分享

          如上图所示,无密码登录成功

          这里我唯一没有成功就是无法实现本机无密码登陆,后来查了很多资料,也实施了很多方案就是不管用,也不管了,反正就一个节点需要输密码,谁看到这篇博客,如果知道解决办法,就在评论里告诉我一声,先说声谢谢了。

          接下来进行hadoop分布式安装的最后一步,就是启动hadoop,建立集群

          在这之前,我们需要做一件事,回顾刚刚写的配置文件,core-site.xml中我们给了文件系统依赖的基础配置,其路径为/hadoop/tmp/hadoop_tmp所以我们要创建这个目录

          #mkdir /hadoop/tmp/tmp

          这里还需要在hadoop下创建一个文件夹,用于存放datanode和namenode两个节点,这两个节点是自动生成的,不需要创建

          #cd /hadoop

          #mkdir appdata

          接下来格式化namenode

          $hadoop namenode -format

          当出现hadoop command not found 时,从新执行配置文件,我是每次重新开机后就要重新编译,后来,也没找到原因,不过每次不行的话,再执行下

          $source /etc/profile就可以了。

          接下来启动hadoop

          $start-all.sh

          启动后,$jps查看

          

技术分享

              

技术分享

技术分享

          如上图所示,集群建立成功

          停止hadoop

          $stop-all.sh




       


本文出自 “^_^花花” 博客,请务必保留此出处http://lining.blog.51cto.com/7879843/1641410

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。