您的位置:首页 > 运维架构

Hadoop1.0的安装总结

2014-03-18 21:12 106 查看
Hadoop1.0的安装
    本文以Hadoop-1.0.1版本为例记录Hadoop的安装过程,作为巩固基础的目的,主要分成基础知识以及软件准备、Java安装、ssh无密码登录配置、hadoop配置、eclipse的配置四个部分,假设安装中共有四台虚拟机,一台作为master,两台作为slaves,一台作为client,这台机子可以通过eclipse编写Hadoop程序。

    1 基础知识以及软件

           1.1 ssh工作原理

s1:客户端向服务器端发出连接请求

s2:服务器端向客户端发出自己的公钥

s3:客户端使用服务器端的公钥加密通讯密钥然后发给服务器端

s4:如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私钥依然无法解密(RSA算法和DSA算法)

s5:服务器端接收到密文后,用私钥解密,获知通讯密钥

s6:ssh-keygen命令给服务器端产生公私钥密钥对,cp命令将服务器端公钥复制到客户端(注意在伪分布模式下服务器端和客户端是同一台机器),因此客户端本身就拥有了服
务器端公钥,可以 直接进行免密码接入 

最后ssh-keygen会生成私钥id_dsa(采用DSA算法)和公钥id_dsa.pub,它的私钥可以发布出去,比如它想要无密码连接主机B,那么只需要将id_dsa.pub拷贝到~/.ssh文件夹目录下,然后追加
到authorized_keys里面,则第一次连接成功后,以后连接就不需要密码了.具体操作见第3部分ssh无密码登陆配置

           1.2 hadoop下载

hadoop的下载可以去apache官网下载:http://archive.apache.org/dist/hadoop/core/  这里下载的是1.0.1版本

           1.3 java下载

jdk1.6对于hadoop的支持比较好,目前hbase只能用jdk1.6,所以最好用1.6版本的jdk,使用版本是jdk-6u41,下载jdk-6u41-linux-x64.bin

           1.4 eclipse配置

用最新版本的eclipse就可以了.

   1.5 linux权限基础知识

首先创建用户组hadoop,向用户组hadoop中添加用户hadoop,具体参见上一篇博客.

   1.6 linux机器名的设置

s1:设置hostname

sudo vi /etc/hostname 这里将三台机器分别设置为master ,slaves9,slaves8

s2:设置hosts

sudo vi /etc/hosts

输入以下内容:

127.0.0.1localhost

172.16.95.60 master
172.16.95.59 slaves9
172.16.95.58 slaves8
hosts三台机器设置一样
     2 Java安装

选择的安装目录是:/usr/lib/jvm

s1:首先拷贝jdk-6u41-linux-x64.bin到该目录

s2:切换到root用户,进行安装 ./jdk-6u41-linux-x64.bin

s3:上一步会产生安装目录jdk1.6.0_41,然后进行配置,主要是配置/etc/profile

s4:
sudo vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_41

export JRE_HOME=/usr/lib/jvm/jdl1.6.0_41/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH #这里的PATH是追加的意思,$PATH一定不能少
s5:检查是否正确安装
java -version 出现如下信息则表示安装成功
java version "1.6.0_41"
Java(TM) SE Runtime Environment (build 1.6.0_41-b02)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)
s6:手动设置系统默认的JDK
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_41/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_41/bin/javac 300
sudo update-alternatives --config java
到这里,java安装成功!其余的
     3 ssh无密码登录配置

s1:三台机器都安装ssh  ssh apt-get install ssh

s2:以hadoop身份进入主目录  cd ~  ,如果没有.ssh目录,则创建该目录

s3:在master机器上生成ssh公钥和私钥  ssh-keygen -t dsa  然后一直按回车键,会在.ssh目录下生成id_dsa和id_dsa.pub

s4:将id_dsa.pub拷贝到两台slaves机器  scp ~/.ssh/id_dsa.pub hadoop@slaves9:~/.ssh/id_dsa.pub

s5:slaves机器得到id_dsa.pub后,将其追加到authorized_keys文件里面 cat id_dsa.pub >> authorized_keys

s6:然后再master机器  ssh slaves9,第一次需要密码,并将slaves9的主机名加入到.ssh/known_hosts里面,第二次再连接就不需要密码了.

     4 hadoop环境配置

hadoop的实验安装目录是/usr/hadoop

s1:将hadoop-1.0.1.tar.gz复制到/usr/hadoop目录下

s2:解压  tar -zxvf hadoop-1.0.1.tar.gz,产生hadoop-1.0.1目录

s3:将产生的hadoop-1.0.1目录的用户组设置为hadoop   

 chown hadoop:hadoop hadoop-1.0.1

权限最好是755,因为hadoop运行过程中会向里面写入日志,如果权限不够,将会报异常

s4:修改配置文件,conf目录下
1)修改hadoop-env.sh

在后面添加JAVA_HOME目录:export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_41

2)修改masters

这里只需要加上 master 就好了

3)修改slaves文件

这里为

slaves9

slaves8

4)修改core-site.xml

添加:

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/var</value>
</property>
</configuration>
5)修改hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop/data</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop/name</value>
</property>
</configuration>
6)修改mapred-site.xml

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/hadoop/hadoop/map</value>
</property>
</configuration>
7)注意到上面的很多文件夹都不能是空的,且hadoop用户必须有写入权限(Hadoop规定的权限是 drwxr-xr-x)
cd ~
mkir hadoop && chmod 755 hadoop
cd hadoop
mkdir data name var && chmod 755 data name var
     5 eclipse配置

     6 常见问题以及解决方法

     未完 待续...(吐槽一下好了,为什么每次保存后格式就完全变了呢?)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop