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-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安装调试错误总结(1)
- hadoop集群安装经常遇到的问题总结
- 对hadoop集群安装一些问题总结
- Spark/Shark/Hadoop1安装部署文档总结(Hadoop2同理,只需要换成Spark的Hadoop2版本即可)
- hadoop1.0伪分布安装
- Hadoop CDH四种安装方式总结及实例指导
- Hadoop安装总结
- CentOs7安装Hadoop2.7.0总结
- 初装Hadoop安装总结
- Hadoop安装配置及问题总结
- hadoop2.7.4 安装配置以及java wordcount 运行出错的总结
- Hadoop安装总结
- hadoop安装调试错误总结(2)
- Hadoop1.0的集群安装
- hadoop安装失败情况总结---hadoop环境变量
- hadoop 安装问题总结
- hadoop上安装hive2.3.2学习总结—hive安装+mysql以及碰到坑点
- Hadoop CDH四种安装方式总结及实例指导
- 十七、Hadoop1.0伪集群安装(下)
- rpm傻瓜安装hadoop-1.2.1总结,单机+hdfs+mapreduce