多语言展示
当前在线:164今日阅读:55今日分享:34

Linux下安装Hadoop完全分布式(Ubuntu12.10)

Hadoop的安装非常简单,可以在官网上下载到最近的几个版本,最好使用稳定版。本例在3台机器集群安装。hadoop版本如下:
工具/原料
1

hadoop-0.20.2.tar.gz

2

Ubuntu12.10

安装步骤:
1

安装ubuntuUbuntu12.10交换空间4G(内存2G)。具体安装过程不赘述。用户名统一为:hadoop;组群:hadoop;机器名:namenode(主节点),datanode1(从节点1),datanode2(从节点2)。

2

在Ubuntu下创建hadoop用户组和用户(也可在安装系统时通过界面配置)1. 创建hadoop用户组;     $ sudo addgroup hadoop       记下这里为 hadoop 用户设置的密码,后面使用 hadoop 用户登录时需要用到。2. 创建hadoop用户;     $ sudo adduser -ingroup hadoop hadoop  3. 给hadoop用户添加权限,打开/etc/sudoers文件;     $ sudo gedit /etc/sudoers 4. 给hadoop用户赋予root用户同样的权限。在root  ALL=(ALL:ALL)   ALL下添加如下内容: hadoop ALL=(ALL:ALL)   ALL

3

在Ubuntu下安装JDK配置环境变量:$ sudo gedit /etc/profile在文件的末尾加上如下内容,保存并关闭文件# for javaexport JAVA_HOME=/usr/lib/jvm/jdk1.8.0export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH使设置生效:到此部JDK的配置就都完成了$ source /etc/profile为保证正确性,进行简单的测试$ java -version输出:java version '1.8.0'Java(TM) SE Runtime Environment (build 1.8.0)Java HotSpot(TM) Server VM 修改默认JDK:    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 300    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0/bin/javac 300     sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0/bin/jar 300 以下两句可选(最好执行):sudo update-alternatives --config java sudo update-alternatives --config javac

4

修改机器名(这步骤可以省略)每当ubuntu安装成功时机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。1. 打开/etc/hostname文件;      $  sudo gedit /etc/hostname  2. 将/etc/hostname文件中的ubuntu改为对应机器,如主节点中,修改为'namenode'。 重启生效。3.修改/etc/hosts文件     $  sudo gedit /etc/hosts改为如下所示,并且将每台机器的IP设置为固定IP:

5

安装ssh服务     这里的ssh不是指三大框架:spring,struts,hibernate,而是一种远程登录协议。ubuntu一般只是默认安装了 ssh-agent, 可以用如下命令查看:$ sudo ps -ef | grep ssh  如果只有 ssh-agent 就需要安装openssh-server了。$ sudo apt-get install ssh openssh-server

6

建立ssh无密码登录本机首先要转换成hadoop用户,执行以下命令:    $ sudo su - hadoop   ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。1. 创建ssh-key,,这里我们采用rsa方式;    $ ssh-keygen -t rsa -P ''  请注意, ssh-kengen 是用连字符连着的,千万不要分开。问题如下:按照您的步驟執行的過程中我在ssh -keygen -t rsa -P ''這邊發生的點小狀況輸入之後終端機顯示Bad escape character 'ygen'(红字部分就是问题所在,他将 ssh-keygen 分开了。)(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)2.  创建授权文件authorized_keys     进入~/.ssh/目录下,发现开始是没有authorized_keys文件的,可以使用以下两种方法:  (1) 将id_rsa.pub追加到authorized_keys授权文件中;      $ cd ~/.ssh       $ cat id_rsa.pub >> authorized_keys   (2) 复制 id_rsa.pub 为 authorized_keys      $ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys  3. 登录localhost;      $ ssh localhost  4. 执行退出命令(exit或CTRL+D);

7

安装hadoop1. 假设hadoop-0.20.2.tar.gz在桌面,将它复制到安装目录/usr/local/下;    $ sudo cp hadoop-0.20.2.tar.gz /usr/local/  2. 解压hadoop-0.20.2.tar.gz;    $ cd /usr/local      $ sudo tar -zxvf hadoop-0.20.2.tar.gz  3. 将解压出的文件夹改名为hadoop;    $ sudo mv hadoop-0.20.2 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(找到#exportJAVA_HOME=...,去掉#,然后加上本机jdk的路径);    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0  7. 打开conf/core-site.xml文件;   $ sudo gedit hadoop/conf/core-site.xml               fs.default.name        hdfs://namenode:9000     8. 打开conf/mapred-site.xml文件;    $ sudo gedit hadoop/conf/mapred-site.xml                mapred.job.tracker        namenode:9001     9. 打开conf/hdfs-site.xml文件;    $ sudo gedit hadoop/conf/hdfs-site.xml                dfs.name.dir         /usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2                   dfs.data.dir         /usr/local/hadoop/data1,/usr/local/hadoop/data2                   dfs.replication         3     注意:datalog1,datalog2,data1,data2文件夹最好事先建好。10. 打开conf/masters文件,添加作为secondarynamenode的主机名.11. 打开conf/slaves文件,添加作为slave的主机名,一行一个。作者设置如下:

注意事项
1

集群中所有机器的登录用户名和所属组都要相同,本文用户名为hadoop,组群也为Hadoop。

2

每台机器的IP设置为固定IP,主机名-ip需要在每一台机器里修改对应的hosts文件。

3

注意代码中的粗斜体为具体安装目录,要和实际目录相同。

推荐信息