`
Mr_mai
  • 浏览: 7549 次
  • 性别: Icon_minigender_2
  • 来自: 温州
最近访客 更多访客>>
社区版块
存档分类
最新评论

hadoop集群搭建

 
阅读更多

 

    寒假搭了个hadoop的集群,回来基本上每个人的ubuntu都重装了,秉承胡的思想不能让学长们博客的点击率再直线上升于是乎还是从最基本的搭环境开始。

    技术我虽然不会但是搭环境这种比较没有技术含量的事情我还是会点的。慢慢完善中。。。。

 

一、ubuntu的安装

U盘安装

在window底下分配一个磁盘,然后做一个u盘启动项,至于怎么做U盘启动项,请参考谷歌或者度娘。笔记本安装U盘启动项在开机的时候按F2然后修改启动项将其变成u盘启动,F10将其保存然后就可以进入安装的界面了。

   

wubi安装,用wubi安装可以和用U盘安装一样在window下面先格出一个磁盘,然后将下载了的ios放另一个目录下,然后将ios安装文件中的wubi安装项解压到和ios安装文件同一文件夹下,点击wubi即可以安装了。安装的时候就会安装在那个被格出来的盘里面。

 

二、固定ip

    由于搭建集群的时候在hosts配置文件中会设置ip地址,为了不用一遍遍修改,因此我们将ip固定。固定ip的方法如下:

     先点击连接信息查看一下目前的ip信息。
                                                                    

     再点击编辑连接,出来界面以后如果是有线的话点击有线,无线的话点击无线,选择自己现在的网络点击编辑,然后选择IPv4,将方法设置成手动,点击添加,将原先查看的连接信息填入里面,然后再断开网络打开网以后就成功固定了ip地址。
                                          
 
     上面的ip设置中,地址可以填写自己想要的固定的ip地址,但是有个范围即不能超过255, 网关填写默认路由的地址。

 

三、添加用户组和用户

      在终端输入以下指令

      sudo addgroup hadoop                      #给添加一个hadoop的用户组

      sudo adduser -ingroup hadoop hadoop                    #在该用户组中添加一个hadoop的用户,名字也是hadoop

      回车就成功添加用户组和用户了。

      给添加的用户增加权限

      sudo gedit /etc/sudoers

      在root的权限下面添加hadoop的权限
     

 

      注意的是。由于以后要连接成集群,要ssh成功的话集群中的机子的用户名必须是一样的否则的话就不能成功连接。因此我们最好用户组和用户都使用hadoop
 


 

  四、修改机器名

为了防止大家的机器以后不好识别,我们把名字叫成ubuntu_名字首字母
  然后重启一下。 可以用: sudo reboot 或者 sudo shutdown -r now

 

 

五、配置文件hosts

   不管我们ping 上一个主机名或者ssh一个主机名,系统先会查看该文件,找到相应的主机名然后对应的ip,再ping或者ssh。

    执行以下命令:


   

 

   前面两句话再添加所有slave和master的ip

  
        
       (注意:之前有试过去掉前面两行,但是曾经报过错后来就一直这样写,第二行最后的是自己的机器名)


 

六、jdk的安装

 

       1、首先先下载jdk 。 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

       我们安装的压缩包是jdk-7u10-linux-i586.tar.gz

 

       2、移动。假设这个压缩包在桌面上,我们把他移动到我们要安装的目录下,如果要搭集群的话所有的机器配置都最好一样,安装的文件夹最好也一样。我们安装再 /usr/local  下


       3、解压安装。先进入到压缩包所在的目录下, cd /usr/local 再执行解压语句:

      

             解压完以后在 /usr/local 的目录下就会有一个文件夹 jdk1.7.0_10 。 原来的压缩文件就可以删除了。删除文件的命令是 sudo rm -f 文件名    删除文件夹的指令是 sudo rm -r 文件夹名

 

      4、接着就是修改环境变量了

 

          在文件的最底部添加一些句子:

#set java environment

export JAVA_HOME=/usr/local/jdk1.7.0_10
export JRE_HOME=/usr/local/jdk1.7.0_10/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH 

           JAVA_HOME 后面的是自己放jdk的文件地址

           JRE_HOME 后面放的是jre的文件地址,在jdk文件夹里面

                     这样的话环境变量也就配好了。

    

           最后检验一下是不是成功安装jdk。改变环境变量以后为了不重启我们用source的指令

           如果显示上图所示,那么就表示安装成功了。

 

 

七、安装eclipse


          安装完以后需要重启一下,否则eclipse打开不了,大熊的机子就是这样然后折腾了很久以为是环境变量配错了。

 

 

  八、安装hadoop

      安装hadoop和上面的安装过程类似,我们同样把压缩包放在桌面上,再将其移动到要安装的目录下,将其解压即可。在这里多一个步骤,就是将其改名并修改权限。


     
 

 

九、ssh的安装配置

   我们使用的是openssh这款软件因此首先要下载安装,在联网的情况下,执行指令:

 

 sudo apt-get install openssh-server
 
  
 

 

   然后进行更新:

 

   sudo apt-get update
 

 



 

   然后电脑里就安装了ssh

   要登陆无密码登陆其他机子,因此要先生成密钥和公钥,到时候将公钥拷给你需要登录的电脑即可

 

   ssh-keygen -t rsa -P ""
 

 

   这条命令是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下



 


 

 cd /home/hadoop/.ssh 

 

   把公钥拷贝到authorized_key里面

 

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

 

  

  修改权限

 

chmod 600 ~/.ssh/authorized_keys
 

 

(注:上述cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys以及修改权限的步骤其实可以省略,因为当你把公钥拷给其他远程机器的时候会自动生成authorized_keys这个文件)

 

 

ssh无密钥登陆其他机器

        指令:

 

ssh-copy-id user@host
 

 

        由于已经配置好了hosts文件,然后可以直接 ssh-copy-id master 就会将authorized_keys拷贝到master的authorized_keys里面,这样你就可以实现无公钥登陆master的机器了。



 (上面显示的结果就是省略了cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys以及修改权限的步骤)

 

十、配置hadoop里面的配置文件

    cd /usr/lcoal/hadoop/conf

    

    配置有六个文件

     1、首先先修改hadoop-env.sh文件:

 

    去掉环境中的#,然后把路径修改成自己安装jdk的文件路径

 

# Set Hadoop-specific environment variables here.

# The only required environment variable is JAVA_HOME.  All others are
# optional.  When running a distributed configuration it is best to
# set JAVA_HOME in this file, so that it is correctly defined on
# remote nodes.

# The java implementation to use.  Required.
 export JAVA_HOME=/usr/local/jdk1.7.0_10

 

 

  2、修改core-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>fs.default.name</name>
	<value>hdfs://master:9000</value>
</property>

</configuration>

 

 3、修改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.name.dir</name>  
<value>/usr/local/hadoop/datalogs</value>  
</property>  
<property>  
<name>dfs.data.dir</name>  
<value>/usr/local/hadoop/data</value>  
</property>  
<property>  
<name>dfs.replication</name>  
<value>2</value>  
</property>  
</configuration>

 

   上面三个第一个路径是表示集群启动的时候在master上面创建的文件夹的目录,DFS中存储文件命名空间信息的目录

   第二个路径是表示集群启动的时候在slave里面存放数据的文件夹。在data的目录下面可以看到有一个current的文件夹,里面放的就是hdfs存放的数据。其他文件和文件夹的作用可以看hadoop开发指南。

   第三个的value值就是一份数据备份的份数。

 

 4、修改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>master:9001</value>     
     </property>  
</configuration>

 

 

5、修改masters文件

    打开以后在里面写master即可

 

6、修改slaves文件

    打开以后在写入所有的slave,即在hosts文件里面和ip对应的名称,比如我的slaves文件夹里面就是



 

十一:集群的启动

      到现在为止,hadoop集群的配置已经完成了,现在就要启动集群。

      master进入到hadoop目录下,cd /usr/local/hadoop

      首先namenode格式化一下,

      bin/hadoop namenode -format

      启动集群

      bin/start-all.sh

 

     启动完毕以后再执行jps就可以查看到是否成功启动集群

 

 

 

  • 大小: 13.5 KB
  • 大小: 7.1 KB
  • 大小: 4.1 KB
  • 大小: 4.1 KB
  • 大小: 14.1 KB
  • 大小: 4.4 KB
  • 大小: 25.6 KB
  • 大小: 28.2 KB
  • 大小: 27.8 KB
  • 大小: 20.4 KB
  • 大小: 43.4 KB
  • 大小: 5.1 KB
  • 大小: 5.7 KB
  • 大小: 40.6 KB
  • 大小: 12.7 KB
  • 大小: 94.9 KB
  • 大小: 153 KB
  • 大小: 13.9 KB
  • 大小: 79.9 KB
  • 大小: 8.4 KB
  • 大小: 20.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics