您的位置首页百科知识

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

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

的有关信息介绍如下:

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

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

安装ubuntu

Ubuntu12.10交换空间4G(内存2G)。具体安装过程不赘述。

用户名统一为:hadoop;

组群:hadoop;

机器名:namenode(主节点),datanode1(从节点1),datanode2(从节点2)。

在Ubuntu下创建hadoop用户组和用户(也可在安装系统时通过界面配置)

1.创建hadoop用户组;

$sudoaddgrouphadoop

记下这里为 hadoop 用户设置的密码,后面使用 hadoop 用户登录时需要用到。

2.创建hadoop用户;

$sudoadduser-ingrouphadoophadoop

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

$sudogedit/etc/sudoers

4. 给hadoop用户赋予root用户同样的权限。

在rootALL=(ALL:ALL) ALL下添加如下内容:

hadoopALL=(ALL:ALL) ALL

在Ubuntu下安装JDK

配置环境变量:

$ sudo gedit /etc/profile

在文件的末尾加上如下内容,保存并关闭文件

# for java

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export 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

修改机器名(这步骤可以省略)

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

1.打开/etc/hostname文件;

$sudogedit/etc/hostname

2.将/etc/hostname文件中的ubuntu改为对应机器,如主节点中,修改为"namenode"。重启生效。

3.修改/etc/hosts文件

$sudogedit/etc/hosts

改为如下所示,并且将每台机器的IP设置为固定IP:

安装ssh服务

这里的ssh不是指三大框架:spring,struts,hibernate,而是一种远程登录协议。

ubuntu一般只是默认安装了 ssh-agent, 可以用如下命令查看:

$sudops-ef|grepssh

如果只有 ssh-agent就需要安装openssh-server了。

$sudoapt-getinstallsshopenssh-server

建立ssh无密码登录本机

首先要转换成hadoop用户,执行以下命令:

$sudosu-hadoop

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

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

$ssh-keygen-trsa-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

$catid_rsa.pub>>authorized_keys

(2) 复制 id_rsa.pub 为 authorized_keys

$cp~/.ssh/id_rsa.pub~/.ssh/authorized_keys

3.登录localhost;

$sshlocalhost

4. 执行退出命令(exit或CTRL+D);

安装hadoop

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

$sudocphadoop-0.20.2.tar.gz/usr/local/

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

$cd/usr/local

$sudotar-zxvfhadoop-0.20.2.tar.gz

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

$sudomvhadoop-0.20.2hadoop

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

$sudochown-Rhadoop:hadoophadoop

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

$sudogedithadoop/conf/hadoop-env.sh

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

exportJAVA_HOME=/usr/lib/jvm/jdk1.8.0

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

$sudogedithadoop/conf/core-site.xml

fs.default.name

hdfs://namenode:9000

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

$sudogedithadoop/conf/mapred-site.xml

mapred.job.tracker

namenode:9001

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

$sudogedithadoop/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的主机名,一行一个。

作者设置如下:

运行hadoop

1.进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作,

$cd/usr/local/hadoop/

$bin/hadoopnamenode-format

2.启动bin/start-all.sh

进入bin目录下, $ ./start-all.sh 关闭:同目录下./stop-all.sh

3.检测hadoop是否启动成功

$ jps

4.Web查看

http://localhost:50030/ - 一个jobtracker的web访问接口,为的是方便用户查看相关信息。

类似的还有:

http://localhost:50070/ – web UI of theNameNode daemon

http://localhost:50030/ – web UI of theJobTracker daemon

http://localhost:50060/ – web UI of theTaskTracker daemon