分享

Ubuntu搭建云平台

 株野 2017-03-17

版本v0.1

摘要

系统安装

环境说明

用户管理

ssh服务端与客户端设置

安装jdk

安装hadoop

运行测试

系统安装

使用一台电脑,在该电脑上安装ubuntu虚拟机,使用两台虚拟机连成一个集群(可以根据需要另外扩展)。具体配置如下:

1、宿主机:

硬件:(1cpu44线程 intel i5-2400 3.10Ghz

      2)内存:4G

软件:(132XP系统  最大内存识别为3G

      2vmware-workstation-9.0.1-894247

    2、虚拟机:

      硬件:(1cpu:每个虚拟机分配2个核心1个线程

            2)内存:每个虚拟机 512M

            3)磁盘空间:每个虚拟机分配40G的磁盘空间。

      软件:(1ubuntu-12.04版本

            2jdk版本:jdk-6u31-linux-i586.bin

            3):hadoop版本:hadoop-0.20.203      

分区方案按照默认模式下的分区:

可以使用df –l –h命令来查看当前磁盘。

使用Ubuntu Server安装过程还是比较简单的,就是要注意在进行系统分区的时候选择是否对磁盘进行划分。对于双硬盘的电脑可以尝试使用软件raid

安装过程中注意选中ssh服务,采用NAT来连接宿主机的网络。

环境说明

集群中包括2个节点:1Master1Salve,节点之间局域网连接,可以相互ping通。节点IP地址分布如下:

 

机器名称

IP地址

Master

192.168.235.129

Salve 

192.168.235.131

Salve1

Null

Salve2

Null

 

  以上两个节点上均是ubuntu系统,并且有一个相同的用户hadoopMaster机器主要配置NameNodeJobTracker的角色,负责总管分布式数据和分解任务的执行; Salve机器配置DataNodeTaskTracker的角色,负责分布式数据存储以及任务的执行。其实应该还应该有1Master机器,用来作为备用,以防止Master服务器宕机,还有一个备用马上启用。后续经验积累一定阶段后补上一台备用Master机器,另外准备再加上两台slave机器。

 

 

用户管理

一.如果已有用户xxx,需要新建一个用户hadoop,则可以按照以下操作:

1.   xxx用户下运行命令groups查看当前用户所属组,并记录下来

2.   创建hadoop用户组 sudo addgroup hadoop

3.   创建hadoop用户 sudo adduser -ingroup hadoop hadoop

4.   hadoop用户添加权限,打开/etc/sudoers文件:sudo gedit /etc/sudoers

然后再sudoers中给hadoop用户赋予root用户同样的权限:

root   ALL=(ALL:ALL)   ALL下添加hadoop   ALL=(ALL:ALL)  ALL 保存即可。

二.修改机器名:

    每当ubuntu安装成功时,我们的机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。

1. 打开/etc/hostname文件; sudo gedit /etc/hostname

2. /etc/hostname文件中的ubuntu改为你想取的机器名。这里取masterslave 重启系统后才会生效。

三.修改hosts文件(重要)

"/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostNameIP]用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。

  我们要测试两台机器之间知否连通,一般用"ping 机器的IP",如果想用"ping 机器的主机名"发现找不见该名称的机器,解决的办法就是修改"/etc/hosts"这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。

    masterslave主机中打开/etc/hosts文件,sudo nano /etc/hosts。在文件中加入以下内容:

192.168.235 .129 Master

192.168.235.131 Slave1

Ip地址可用ifconfig指令来查看。

配置SSH

如果之前没有选择安装SSH服务,则可以使用apt-get install openssh-server来安装。

修改ssh的配置文件,vi /etc/ssh/sshd_config,取消AuthorizedKeysFile %h/.ssh/authorized_keys的注释,然后将key文件放在当前用户主目录的.ssh/authorized_keys文件中。

一般是把自己的公钥放到这个文件中。但是如果客户端是windows的话,会遇到一个问题,windows下生成的密钥和linux下生成的不一样,所以,需要在linux下生成公私钥,然后将私钥拷贝到客户机,并删除服务器上的私钥,利用puttyputtygen.exe导入后重新转换才能使用。具体步骤如下:

1.  master机器上生成密钥对:

首先进入到hadoop用户,执行

ssh-keygen –t rsa –P ''

来生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:

id_rsaid_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下

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

    cd ~/.ssh

cat id_rsa.pub >> authorized_keys

3、修改文件"authorized_keys"权限:

    chmod 600 ~/.ssh/authorized_keys

4、设置ssh配置:

    root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对认证方式

AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

  设置完之后重启SSH服务,才能使刚才设置有效。

service sshd restart

  退出root登录,使用hadoop普通用户验证是否成功。

ssh localhost

5、把公钥复制到slave机器上

    1)、把Master上的公钥复制到Slave

        scp ~/.ssh/id_rsa.pub hadoop@192.168.235.131:~/

    2)、在"/home/hadoop/"下创建".ssh"文件夹,并赋予权限

        mkdir ~/.ssh

        chmod 700 ~/.ssh

    3)、追加到授权文件"authorized_keys"

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

chmod 600 ~/.ssh/authorized_keys

    4)、用root用户修改"/etc/ssh/sshd_config"

具体步骤参考前面Master"设置SSH配置",具体分为两步:第1是修改配置文件;第2是重启SSH服务

6、登陆:ssh 远程服务器IP(第一次可能需要输入密码,以后就不需要了)

安装jdk

linux下的java有两种一个是openjdk一个sun的。因为一些原因,Sun Java 无法从 Ubuntu 的软件库里面取得取而代之的是 OpenJDK,不过 OpenJDK 跑某些程式会出现问题所以还是需要 Sun Java 

安装过程:

    1)首先删除掉已经安装的openjdk sudo apt-get purge openjdk*

    2sudo add-apt-repository "deb http://archive./ubuntu maverick partner"

    3sudo apt-get install python-software-properties

    4sudo apt-get update

    5sudo apt-get install sun-java*

    6sudo apt-get install openjdk-6-jdk openjdk-6-jdk gcj-4.6-jdk ecj default-jdk

    7)配置JAVA环境变量: sudo gedit /etc/environment
在其中添加如下两行:

JAVA_HOME=/usr/lib/jvm/java-6-sun
CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib

    8java -version查看不出错说明,成功

   

安装hadoop

所有的机器上都要安装hadoop,现在就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。安装和配置hadoop需要以"root"的身份进行。

我们采用的hadoop版本是:hadoop-0.20.203。因为该版本比较稳定。最新的alpha版本已经很高,但是还是建议采用稳定的版本。我是在apache站点直接下载的

http://www./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

编辑如下:property后面需要手工敲

<?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://localhost:9000</value>   

                        </property>  

</configuration>

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

sudo gedit hadoop/conf/mapred-site.xml

编辑如下property后面需要手工敲:

<?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>localhost:9001</value>   

                     </property>  

             </configuration>

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

sudo gedit hadoop/conf/hdfs-site.xml

编辑如下:

<configuration>

<property>

<name>dfs.name.dir</name>

<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

</configuration>

    10.配置master文件

        sudo gedit hadoop/conf/masters

        修改为masterip地址192.168.235.129

    11.配置slave文件(master特有)

        sudo gedit hadoop/conf/slaves

        去掉"localhost",加入集群中所有Slave机器的IP,每行一个。

至此配置完成。

hadoop的运行调试

1.格式化HDFS文件系统

"Master. "上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化,只需 start-all.sh

hadoop namenode –format

2、启动hadoop

在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭

service iptables stop

使用下面命令启动。

start-all.sh

3、检测hadoop是否启动成功

Jps

hadoop dfsadmin -report用这个命令可以查看Hadoop集群的状态。

4、网页查看集群

    1)访问"http:192.168.235.129:50030"

    2)访问"http:192.168.235.129:50070"

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多