这两天一直在安装hadoop 道路比较曲折,记录一下
在redhat下安装完成以后一直无法启动datanode,原因是jdk 的版本一直有问题,换了一个jdk后问题依旧,自己推测是redhat版本太低的原因,于是只好舍弃,换ubuntu
ubantu版本是13.04.比较稳定。
安装前首先准备好材料。
vmare 虚拟机 ,准备好jdk 和hadoop
因为是虚拟机安装所以放到vmvare 共享文件夹下面。
=====================================================================================================
在安装这些之前要先安装ssh 我在开始装的时候没有发现ubantu没有装ssh 的服务器端只有客户端。然后直接apt-get 发现又不能直接下,所以每次启动hadoop后只有namenode的进程,datanode进程报错链接被拒绝,后来换了很多个数据源包括国内国外都有,都是在更新数据源(sudo apt-get update),失败。不知什么原因找了好久也没有解决方案(有知道的大牛可以告诉我),最后没有办法只能自己手动安装ssh了。
安装ssh 准备好材料:
1 安装zlib
解压zlib 进入目录
编译安装(1 ./configure 2 make 3 make install)
2 安装openssl
步骤同上(./configure 改为./config)
3 安装openssh
同1
4 getdit /etc/passwd
加入下面一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
5 启动ssh。ssh默认安装在/usr/local/sbin/目录下,使用 /usr/local/sbin/sshd 启动ssh服务,该服务默认侦听22端口。
6 检查ssh服务是否启动监听端口是否为22:netstat -tnlp|grep :22
==============================================================================
以上为安装ssh
下面进入安装HADOOP正题:
1 安装java
jdk 解压到/usr/java/jdk
cd 到指定目录
/mnt/hgfs/Ubantu/jdk-6u24-linux-i586.bin
2 解压Hadoop安装包
hadoop 解压到/usr
cd 到指定目录
tar -zxvf /mnt/hgfs/Ubantu/hadoop-1.2.1.tar
3 配置环境变量
vi /etc/profile
加入以下
export JAVA_HOME=/usr/java/jdk1.6.0_24
export HADOOP_HOME=/usr/hadoop-1.2.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$HADOOP_HOME/bin:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
4编辑conf/hadoop-env.sh
加入 export JAVA_HOME=/usr/java/jdk1.6.0_24
5伪分布式模式下Hadoop的配置如下(共有三个文件要配置 位置在/conf下 )
(1)core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop-1.2.1/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
(2)hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(3)mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
6 免密码SSH设置
生成密钥对 ssh-keygen -t rsa
进入.ssh目录 执行 sp id_ras.pub authorized_keys
执行ssh localhost 发现可以实现SSH链接不需要密码
7 创建tmp文件每次进行第八步都会生成一个tmp文件(注意每次重新格式化的时候要删除tmp 因为其中tmp存有上次的namenode的namespaceID,但每次重新format 会生成新的namenode namespaceID造成版本不一致,从而下次执行9时,会造成namenode进程起不来)
8 格式化分布式文件系统
bin/hadoop namenode -format
9 启动Hadoop守护进程
bin/start-all.sh
jps命令可以发现有除了jps以外五个线程
10 停止Hadoop守护进程
bin/stop-all.sh