zoukankan      html  css  js  c++  java
  • Hadoop 在Ubuntu配置

    Ubuntu hadoop 集群搭建

    分类: Hadoop Java 420人阅读 评论(0) 收藏 举报

    一. 搭建环境前的准备:

    我的本机Ubuntu 12.04 32bit作为maser,就是上篇hadoop单机版环境搭建时用的那台机子,

    还在KVM中虚拟了4台机子,分别起名为:

    son-1         (ubuntu 12.04 32bit),

    son-2         (ubuntu 12.04 32bit),

    son-3         (centOS 6.2 32bit),

    son-4         (redhat 6.0 32bit).

    kvm的搭建详见:http://www.db89.org/post/2012-05-25/kvmxuniji

    kvm的桥接设置详见:http://www.db89.org/post/2012-05-27/kvmnetset

    Ubuntu12.04搭建hadoop单机版环境详见:http://www.db89.org/post/2012-06-03/hadoopdanjihuanjing

    下来修改本机的host文件,

     sudo gedit /etc/hosts

    在后面添加内容为:

    192.168.200.150 master
    192.168.200.151 son-1
    192.168.200.152 son-2
    192.168.200.153 son-3
    192.168.200.154 son-4

    现在开始我们的打建之旅吧。

    二 . 为本机(master)和子节点(son..)分别创建hadoop用户和用户组,其实ubuntu和centos下创建用户还多少还是有点区别的。

    ubuntu下创建:

    先创建hadoop用户组:

     sudo addgroup hadoop

    然后创建hadoop用户:

     sudo adduser -ingroup hadoop hadoop

    centos 和 redhat 下创建:

     sudo adduser hadoop

    注:在centos 和 redhat下直接创建用户就行,会自动生成相关的用户组和相关文件,而ubuntu下直接创建用户,创建的用户没有家目录。

    给hadoop用户添加权限,打开/etc/sudoers文件;

     sudo gedit /etc/sudoers

    按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。

    在root   ALL=(ALL:ALL)   ALL下添加hadoop   ALL=(ALL:ALL)  ALL,

     hadoop  ALL=(ALL:ALL) ALL

    三. 为本机(master)和子节点(son..)安装JDK环境。

    ubuntu下一条命令即可:

     sudo apt-get install openjdk-6-jre

    centos和redhat建议下载源码安装。

    详见:http://www.db89.org/post/2012-07-02/centosjava

    四. 修改 本机(master)和子节点(son..)机器名

    打开/etc/hostname文件;

     sudo gedit /etc/hostname

    分别修改为:master   son-1   son-2   son-3  son-4。这样有利于管理和记忆!

    五. 本机(master)和子节点(son..)安装ssh服务

    主要为ubuntu安装,cents和redhat系统自带。

    ubuntu下:

     sudo apt-get install ssh openssh-server

    这时假设您已经安装好了ssh,您就可以进行第六步了哦~

    六. 先为建立ssh无密码登录环境

    做这一步之前首先建议所有的机子全部转换为hadoop用户,以防出现权限问题的干扰。

    切换的命令为:

     su - hadoop

    ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

    1. 创建ssh-key,,这里我们采用rsa方式;

    ssh-keygen -t rsa -P ""

    (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

    2. 进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的;

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

    七. 为本机mater安装hadoop

    我们采用的hadoop版本是:hadoop-0.20.203(http://www.apache.org/dyn/closer.cgi/hadoop/common/  ),因为该版本比较稳定。

    1. 假设hadoop-0.20.203.tar.gz在桌面,将它复制到安装目录 /usr/local/下;

     sudo cp hadoop-0.20.203.0rc1.tar.gz /usr/local/

    2. 解压hadoop-0.20.203.tar.gz;

     cd /usr/local
    sudo tar -zxf hadoop-0.20.203.0rc1.tar.gz

    3. 将解压出的文件夹改名为hadoop;

     sudo mv hadoop-0.20.203.0 hadoop

    4. 将该hadoop文件夹的属主用户设为hadoop,

     sudo chown -R hadoop:hadoop hadoop

    5. 打开hadoop/conf/hadoop-env.sh文件;

     sudo gedit hadoop/conf/hadoop-env.sh

    6. 配置conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然后加上本机jdk的路径);

     export JAVA_HOME=/usr/lib/jvm/java-6-openjdk

    7. 打开conf/core-site.xml文件;

     sudo gedit hadoop/conf/core-site.xml

    编辑如下:

    1. <?xml version="1.0"?> 
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>                                                         
    3. <!-- Put site-specific property overrides in this file. -->                                                     
    4. <configuration> 
    5. <property>    
    6.   <name>fs.default.name</name>    
    7.   <value>hdfs://master:9000</value>     
    8.  </property>    
    9. </configuration> 

    8. 打开conf/mapred-site.xml文件;

     sudo gedit hadoop/conf/mapred-site.xml

    编辑如下:

    1. <?xml version="1.0"?> 
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>                                                   
    3. <!-- Put site-specific property overrides in this file. -->                                                   
    4.     <configuration>    
    5.      <property>     
    6.       <name>mapred.job.tracker</name>    
    7.       <value>master:9001</value>     
    8.      </property>    
    9.     </configuration> 

    9. 打开conf/hdfs-site.xml文件;

     sudo gedit hadoop/conf/hdfs-site.xml

    编辑如下:

    1. <configuration> 
    2. <property> 
    3. <name>dfs.name.dir</name> 
    4. <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value> 
    5. </property> 
    6. <property> 
    7. <name>dfs.data.dir</name> 
    8. <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value> 
    9. </property> 
    10. <property> 
    11. <name>dfs.replication</name> 
    12. <value>2</value> 
    13. </property> 
    14. </configuration> 

    10. 打开conf/masters文件,添加作为secondarynamenode的主机名,这里需填写 master 就Ok了。

     sudo gedit hadoop/conf/masters

    11. 打开conf/slaves文件,添加作为slave的主机名,一行一个。

     sudo gedit hadoop/conf/slaves

    这里填成下列的内容 :

    1. son-1  
    2. son-2  
    3. son-3  
    4. son-4 

    八. 要将master机器上的文件一一复制到datanode机器上(son-1,son-2,son-3,son-4都要复制):(这里以son-1为例子)

    1. 公钥的复制

     scp ~/.ssh/id_rsa.pub hadoop@son-1:~/.ssh/

    2. hosts文件的复制

     scp /etc/hosts hadoop@son-1:/etc/hosts

    注:这里如果不能复制,就先将文件复制到/home/hadoop下面,即为:

    /home/hadoophadoop@son-1: scp /etc/hosts

    再在datanode机器上将其移到相同的路径下面/etc/hosts .

    3. hadoop文件夹的复制,其中的配置也就一起复制过来了!

     scp -r /usr/local/hadoop hadoop@son-1:/usr/local

    如果不能移动的话和上面的方法一样!

    并且要将所有节点的hadoop的目录的权限进行如下的修改:

     sudo chown -R hadoop:hadoop hadoop

    这些东西都复制完了之后,datanode机器还要将复制过来的公钥追加到收信任列表:

    在每个子节点的自己种都要操作。

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

    还有很重要的一点,子节点datanode机器要把复制过来的hadoop里面的data1,data2和logs删除掉!

    还有要修改centos节点(son-3)和redhat节点(son-4)的java的环境变量地址,

    配置centos节点(son-3)和redhat节点(son-4)的/usr/local/hadoop/conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然后加上本机jdk的路径);这个环境不一,自己配置一下。

    这样环境已经基本搭建好了,现在开始测试一下。

    九. 这样之后基本上就差不多了,首先进入master的hadoop目录。

     cd /usr/local/hadoop

    首先可以做一下负载平衡,我担心这个加上会有点乱,但是没有这部分不影响运行,想了解的给我留言!

    启动datanode和tasktracker:

    1. bin/start-dfs.sh 
    2. bin/hadoop-daemon.sh start datanode 
    3. bin/hadoop-daemon.sh start tasktracker 

    启动全部服务直接一条命令:

     bin/start-all.sh

    查看自己的datanode是否启动.

     jps

    当jps不能正常使用的时候:

     resource /etc/profile

    连接时可以在namenode上查看连接情况:

     bin/hadoop dfsadmin -report


  • 相关阅读:
    常用C# 6.0 常用 新特性
    VS 编译总是出现错误: "LC.EXE 已退出,代码为1"
    C# XML封装
    VS 2015秘钥
    写入Txt文本信息
    C# 7.0 新特性
    Winform 弹框增加确定按钮并点击确定后进行下一步操作
    VS 代码过长自动换行
    C# 6.0 新特性
    string::npos 是什么 c++ /STL
  • 原文地址:https://www.cnblogs.com/energy1010/p/3029077.html
Copyright © 2011-2022 走看看