Linux下安装Hadoop教程(转)
Linux下安装Hadoop教程
作者:阿King
E-mail:[email protected]
Blog:http://hi.baidu.com/cumthacker
目的:此教程旨在引导未接触Hadoop的新手入门只用,高手请飘过。
环境: Fedora12
Kernel2.6.31.5-127.fc12.i686.PAE
Hadoop-0.20.2
jdk-6u18-linux-i586
初学者可以选择三台实体机子做实验,一台做NameNode,JobTracker,另外两台做DataNode,TaskTracker。
本教程里就用的三台机子做演示。
station1 192.168.128.11 NameNode
station2 192.168.128.22 DataNode
station3 192.168.128.33 DataNode
1、Fedora的安装就不用演示了,装好后默认是启动sshd服务的。
不确定的话可以手工查一下
[[email protected] ~]# service sshd status
如果没有启动,可以手工启动
[[email protected] ~]# service sshd start
2、建立ssh无密码登录
在NameNode上
[[email protected] ~]$ ssh-****** -t dsa -P '' -f ~/.ssh/id_dsa
会在~/.ssh/生成两个文件:id_dsa和id_dsa.pub。这两个是成对出现的。
把id_dsa.pub文件追加到DataNode上的authorized_keys(默认是没有这个文件的)内。
[[email protected] ~]$ scp id_dsa.pub [email protected]:/home/cuijj/
登录到192.168.128.22上(另一台DataNode一样)
[[email protected] ~]$ cat id_dsa.pub >> ~/.ssh/authorized_keys
3、关闭防火墙
[[email protected] ~]# service iptables stop
4、安装jdk1.6(确保几台机子的java环境一样)
到官网http://java.sun.com下载jdk-6u18-linux-i586.bin,下载后,直接安装。本教程的安装路径为/home/cuijj/jdk1.6.0_18。安装后添加如下语句到/ect/profile中:
export JAVA_HOME=/home/cuijj/jdk1.6.0_18
export JRE_HOME=/home/cuijj/jdk1.6.0_18/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
5、安装hadoop
到官网下载hadoop-0.20.2.tar.gz
[[email protected] ~]$ tar xzvf hadoop-0.20.2.tar.gz
把Hadoop的安装路径添加到/etc/profile中
export HADOOP_HOME=/home/cuijj/hadoop-0.20.2
export PATH=$HADOOP_HOME/bin:$PATH
为了让/etc/profile生效,source一下
[[email protected] ~]$ source /etc/profile
6、配置hadoop
hadoop的配置文件在/conf目录下
1)配置Java环境
[[email protected] ~]$ vim hadoop-0.20.2/conf/hadoop-env.sh
export JAVA_HOME=/home/cuijj/jdk1.6.0_18
2)配置conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml文件
[[email protected] ~]$ vim hadoop-0.20.2/conf/core-site.xml
[[email protected] ~]$ vim hadoop-0.20.2/conf/mapred-site.xml
[[email protected] ~]$ vim hadoop-0.20.2/conf/hdfs-site.xml
3)将NameNode上拷贝完整的hadoop到DataNode上
4)配置NameNode上的conf/masters和conf/slaves
masters:
192.168.128.11
slaves:
192.168.128.22
192.168.128.33
7、运行hadoop
1)格式化文件系统
[[email protected] hadoop-0.20.2]$ hadoop namenode -format
2)启动Hadoop
[[email protected] hadoop-0.20.2]$ bin/start-all.sh
3)用jps命令查看进程,NameNode上的结果如下:
4)查看集群状态
[[email protected] hadoop-0.20.2]$ hadoop dfsadmin -report
5)用hadoop的web方式查看
[[email protected] hadoop-0.20.2]$ links http://192.168.128.11:50070
8、运行wordcount.java程序
1)先在本地磁盘建立两个文件file01和file02
[[email protected] ~]$ echo "Hello cuijj bye cuijj" > file01
[[email protected] ~]$ echo "Hello Hadoop Goodbye Hadoop" > file02
2)在hdfs中建立一个input目录
[[email protected] ~]$ hadoop dfs -mkdir input
3)将file01和file02拷贝到hdfs的input目录下
[[email protected] ~]$ hadoop dfs -copyFromLocal /home/cuijj/file0* input
4)查看hdfs中有没有input目录
[[email protected] ~]$ hadoop dfs -ls
5)查看input目录下有没有复制成功file01和file02
6)执行wordcount(确保hdfs上没有output目录)
[[email protected] hadoop-0.20.2]$ hadoop jar hadoop-0.20.2-examples.jar wordcount input output
7)运行完成,查看结果