linux安装与配置Hadoop

操作系统:Centos

Hadoop:1.1.2


 

1.安装jdk1.6

输入java -version验证是否安装成功。

vim /etc/profile

#set JAVA Enviroment
export JAVA_HOME=/usr/.../jdk
export CLASSPATH=CLASSPATH$.:JAVA_HOME/lib
export PATH=$PATH:JAVA_HOME/

若新版本java改为系统默认java,做如下更改:

update-alternatives --install /usr/bin/java java /usr.../jdk/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr.../jdk/bin/javac 300
update-alternatives --config java

 


2.安装Python2.7

centos自带python,如果想更新到python2.7,下载Python-2.7.5.tgz(tgz与tar.gz一样,都是gzip压缩方式)

#解压缩
tar -zxv Python-2.7.5.tgz
#进入解压缩后的文件夹
cd Python-2.7.5
#建安装目录
mkdir /usr/local/python27
#编译安装
./configure--prefix=/usr/local/python27  #记不住的话输入./configure-help
make
make install
#此时并没有覆盖老版本,将原来链接改为别的名字,建立新的链接
mv /usr/bin/python /usr/bin/python_old
ln -s /usr/local/python27/bin/python27 /usr/bin/python

 


3.配置ssh免密码登陆

  •   每台机器均配置免密码登陆:

SSH(安全外壳协议),推荐安装OpenSSH。Hadoop需要通过SSH来启动Slave列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分 开集群式和伪分布式)。对于伪分布式,Hadoop会采用与集群相同的处理方式,即按次序启动文件conf/slaves中记载的主机上的进程,只不过在 伪分布式中Salve为localhost(即为自身),所以对于伪分布式Hadoop,SSH一样是必需的。
首先查看在用户(u)下是否存在.ssh文件夹
ls –al /home/u    (若是root账户则在/root下查找)

ssh-keygen –t dsa –P  ‘’ –f  ~/.ssh/id_dsa

ssh-keygen代表生成密钥;-t(注意区分大小写)表示指定生成的密钥类型;dsa是dsa密钥认证的意思,即密钥类型;-P用于提供密语;-f指定生成的密钥文件。这个命令会在.ssh文件夹下创建id_dsa及id_dsa.pub两个文件,这是SSH的一对私钥和公钥,类似于钥匙和锁。
把id_dsa.pub(公钥)追加到授权的key中去:

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 

  这条命令的功能是把公钥加到用于认证的公钥文件中,这里的authorized_keys是用于认证的公钥文件。至此免密码登录本机已配置完毕。输入ssh localhost验证。

  •   将id_dsa.pub文件追加到slave的authorized_keys内:
# 拷贝master的id_dsa.pub文件:
scp id_dsa.pub slave:/home/
# 登陆slave执行:
cat /home/id_dsa.pub>>~/.ssh/authorized_keys
  •    需关闭防火墙!

  否则会出现“No route to host”的错误。


4.安装Hadoop

将hadoop解压到/home/u/hadoop目录下。
为了方便,可以将该目录加到环境变量中:

PATH=$PATH:/home/u/hadoop/bin

(上述更改环境变量的方法在重启后会失效,建议用vi /etc/profile的方法修改)

修改/hadoop/conf/下的hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves文件。(参考/hadoop/src/core、/hdfs、/mapred下的示例文件)。

在每台机器上分别设置:
/etc/hosts:
127.0.0.1 localhost
*.*.*.* master
*.*.*.* slave

/etc/sysconfig/network:
HOSTNAME=主机名

 


5.Hadoop运行

#格式化hadoop的文件系统HDFS:
bin/hadoop namenode -format
#启动所有进程
bin/start-all.sh
#查看集群状态
bin/hadoop dfsadmin -report
#或者在浏览器中输入
#http://localhost:50030 (MapReduce的页面)
#http://localhost:50070 (HDFS的页面)

hadoop fs -mkdir input
hadoop fs -copyFromLocal /home/* input
hadoop fs -ls input
hadoop jar *.jar wordcount input output

#加入一个节点
hadoop-daemon.sh --config ./conf start datanode
hadoop-daemon.sh --config ./conf start tasktracker
 

 

posted on 2013-10-28 16:24  zach_Emrys  阅读(474)  评论(0编辑  收藏  举报