整理文档下载地址:http://download.csdn.net/detail/ruishenh/6638309
1.虚拟机安装系统(个人安装系统是centos 6.x final版)
1.在虚拟机安装了三个系统(centos 6.x final版的)目前两个都是安装的,一个是在文件复制的。
2. 安装完系统后开始安装rz命令包(由于系统在window系统用crt操作linux系统了,所以依赖上了rz命令)
联网情况下:
yum install lrzsz
接下来输入两个yes
等到出现complete的英文就是ok了。
3.卸载原装openJDK
网上查的资料就是这样执行的,一切都运行完美通过
先查看
rpm -qa | grep java
显示如下信息:
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
卸载:
rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
只要是不报错,再执行
rpm -qa | grep java
显示没有任何东西了就是ok了
4.安装sun官方JDK文件
由于本人这儿已经下载下来了(jdk-6u30-linux-i586.bin);
所以直接在CRT中rz上传就好了命令如下
[root@localhostjava]# rz
rz waiting toreceive.
Starting zmodemtransfer. Press Ctrl+C to cancel.
100% 83283 KB 3331 KB/s 00:00:25 0 Errors
[root@localhostjava]# ll
总用量 83372
-rw-r--r--. 1root root 85282052 1月 11 2012 jdk-6u30-linux-i586.bin
查看已经有了,这时候安装就好了
修改一下权限:
chmod 777 jdk-6u30-linux-i586.bin
接下来执行文件就好了:
./ jdk-6u30-linux-i586.bin
接下来会显示好多安装信息不用管直到出现下方信息就证明已经安装ok了
how it ismanaged and used, see:
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html
Press Enter tocontinue.....
(这儿敲一下键盘)
Done.
[root@localhostjava]# ll
总用量 83376
drwxr-xr-x. 10root root 4096 12月 9 04:10 jdk1.6.0_30
-rwxrwxrwx. 1 root root 85282052 1月 11 2012 jdk-6u30-linux-i586.bin
5.接下来配置环境变量
<1>#
vi/etc/profile
<2>
在最后加入以下几行:
export JAVA_HOME=/usr/java/jdk1.6.0_30
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
<3> 然后生效文件
source /etc/profile
<4>检查
[root@localhost java]# java -version
java version"1.6.0_30"
Java(TM) SERuntime Environment (build 1.6.0_30-b12)
Java HotSpot(TM)Client VM (build 20.5-b03, mixed mode, sharing)
这就ok了
6.接下来修改一下主机名称
命令(hostname master)
192.168.1.12 master
192.168.1.11 slave1
192.168.1.13 slave2
7.关闭防火墙
[root@localhost java]# service iptables stop
iptables:清除防火墙规则:
[确定]
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:正在卸载模块:[确定]
8./etc/hosts 文件内容追加
192.168.1.12 master
192.168.1.11 slave1
192.168.1.13 slave2
9.
vi /etc/ssh/sshd_config
(这一块是无密码验证,重启VM后在连接CRT连不上了所以后来又去掉了,姑且这一块先不管了,)
在PasswordAuthentication yes这一样注掉然后加上下边的
PasswordAuthentication no
AuthorizedKeysFile .ssh/authorized_keys
10.authorized_keys文件拷贝到两台slave主机
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
11.远程scp文件
authorized_keys文件拷贝到两台slave主机
scp authorized_keys slave1:~/.ssh/
scp authorized_keys slave2:~/.ssh/
追加权限
注意如果权限不对就改一下权限
chmod g-w authorized_keys
这时就可以ssh登录直接进入而不用密码拉
12.下载hadoop文件上传到虚拟机中
本人下载的Hadoop 0.20.2,去apache官方网站下载即可。
上传上去后解压文件
/usr/local/hadoop/
接下来进入如下目录
[hcr@master hadoop]$ pwd
/usr/local/hadoop
[hcr@master hadoop]$ ll
总用量 7536
drwxr-xr-x. 2 hcr hcr 4096 12月 10 2012 bin
-rw-rw-r--. 1 hcr hcr 74035 2月 19 2010 build.xml
drwxr-xr-x. 4 hcr hcr 4096 2月 19 2010 c++
-rw-rw-r--. 1 hcr hcr 348624 2月 19 2010 CHANGES.txt
drwxr-xr-x. 2 hcr hcr 4096 10月 19 16:22conf
drwxr-xr-x. 13hcr hcr 4096 2月 19 2010 contrib
drwxr-xr-x. 7 hcr hcr 4096 12月 10 2012 docs
-rw-rw-r--. 1 hcr hcr 6839 2月 19 2010 hadoop-0.20.2-ant.jar
-rw-rw-r--. 2 hcr hcr 2689741 2月 19 2010 hadoop-0.20.2-core.jar
-rw-rw-r--. 1 hcr hcr 142466 2月 19 2010 hadoop-0.20.2-examples.jar
-rw-rw-r--. 1 hcr hcr 1563859 2月 19 2010 hadoop-0.20.2-test.jar
-rw-rw-r--. 1 hcr hcr 69940 2月 19 2010 hadoop-0.20.2-tools.jar
-rw-rw-r--. 2 hcr hcr 2689741 2月 19 2010 hadoop-core-0.20.2.jar
drwxr-xr-x. 2 hcr hcr 4096 12月 10 2012 ivy
-rw-rw-r--. 1 hcr hcr 8852 2月 19 2010 ivy.xml
drwxr-xr-x. 5 hcr hcr 4096 12月 10 2012 lib
drwxr-xr-x. 2 hcr hcr 4096 12月 10 2012librecordio
-rw-rw-r--. 1 hcr hcr 13366 2月 19 2010 LICENSE.txt
drwxrwxr-x. 4 hcr hcr 4096 10月 19 20:13logs
-rw-rw-r--. 1 hcr hcr 101 2月 19 2010 NOTICE.txt
-rw-rw-r--. 1 hcr hcr 1366 2月 19 2010 README.txt
drwxr-xr-x. 15hcr hcr 4096 12月 10 2012 src
drwxr-xr-x. 4 hcr hcr 4096 8月 12 01:12 tmp
drwxr-xr-x. 8 hcr hcr 4096 2月 19 2010 webapps
[hcr@masterhadoop]$
然后把环境变量配置上吧,或者写一个脚本放到/usr/bin/下方指定到hadoop启动文件上。
# set hadooppath
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
进入conf配置目录
然后把文件修改成如下
[hcr@master conf]$ cat masters
master
[hcr@master conf]$ cat slaves
slave1
slave2
[hcr@master conf]$ cat core-site.xml
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!-- Putsite-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>A base for other temporarydirectories.</description>
</property>
<!-- filesystem properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<!-- OOZIE-->
<property>
<name>hadoop.proxyuser.hcr.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hcr.groups</name>
<value>hcr</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
[hcr@masterconf]$ cat hdfs-site.xml
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!-- Putsite-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
<!--(备注:replication 是数据副本数量,默认为3,salve少于3台就会报错)-->
</property>
</configuration>
[hcr@masterconf]$
[hcr@masterconf]$ cat mapred-site.xml
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<!-- Putsite-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://master:9001</value>
</property>
</configuration>
[hcr@masterconf]$
把hadoop-env.sh中配置上jdk的环境变量,当然pids文件,日志目录文件都可以重新指定,但是个人测试搭建集群这个不主要。
export JAVA_HOME=/usr/java/jdk1.6.0_30
[hcr@master conf]$ cat hadoop-env.sh
# SetHadoop-specific environment variables here.
# The onlyrequired environment variable is JAVA_HOME. All others are
# optional. When running a distributed configuration itis best to
# set JAVA_HOMEin this file, so that it is correctly defined on
# remote nodes.
# The javaimplementation to use. Required.
# exportJAVA_HOME=/usr/lib/j2sdk1.5-sun
# Extra JavaCLASSPATH elements. Optional.
# exportHADOOP_CLASSPATH=
# The maximumamount of heap to use, in MB. Default is 1000.
# exportHADOOP_HEAPSIZE=2000
# Extra Javaruntime options. Empty by default.
# exportHADOOP_OPTS=-server
HADOOP_OPTS=-Djava.net.preferIPv4Stack=true
# Commandspecific options appended to HADOOP_OPTS when specified
exportHADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS"
exportHADOOP_SECONDARYNAMENODE_OPTS="-Dcom.sun.management.jmxremote$HADOOP_SECONDARYNAMENODE_OPTS"
exportHADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote$HADOOP_DATANODE_OPTS"
exportHADOOP_BALANCER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_BALANCER_OPTS"
exportHADOOP_JOBTRACKER_OPTS="-Dcom.sun.management.jmxremote$HADOOP_JOBTRACKER_OPTS"
# exportHADOOP_TASKTRACKER_OPTS=
# The followingapplies to multiple commands (fs, dfs, fsck, distcp etc)
# exportHADOOP_CLIENT_OPTS
# Extra ssh options. Empty by default.
# exportHADOOP_SSH_OPTS="-o ConnectTimeout=1 -o SendEnv=HADOOP_CONF_DIR"
# Where logfiles are stored. $HADOOP_HOME/logs bydefault.
# exportHADOOP_LOG_DIR=${HADOOP_HOME}/logs
# File namingremote slave hosts. $HADOOP_HOME/conf/slaves by default.
# exportHADOOP_SLAVES=${HADOOP_HOME}/conf/slaves
# host:pathwhere hadoop code should be rsync'd from. Unset by default.
# exportHADOOP_MASTER=master:/home/$USER/src/hadoop
# Seconds tosleep between slave commands. Unset bydefault. This
# can be usefulin large clusters, where, e.g., slave rsyncs can
# otherwisearrive faster than the master can service them.
# exportHADOOP_SLAVE_SLEEP=0.1
# The directorywhere pid files are stored. /tmp by default.
# exportHADOOP_PID_DIR=/var/hadoop/pids
# A stringrepresenting this instance of hadoop. $USER by default.
# exportHADOOP_IDENT_STRING=$USER
# The schedulingpriority for daemon processes. See 'mannice'.
# exportHADOOP_NICENESS=10
# set javaenvironment
exportJAVA_HOME=/usr/java/jdk1.6.0_30
[hcr@masterconf]$
以上文件配置ok了后基本上主机配置完毕了。然后就是去执行
Scp 把master上的hadoop目录直接远程拷贝到slaves1和2上。
拷贝完后slave1上如下
[hcr@slave1 hadoop]$ pwd
/usr/local/hadoop
[hcr@slave1 hadoop]$ ll
总用量 4904
drwxr-xr-x. 2 hcr hcr 4096 12月 10 2012 bin
-rw-r--r--. 1 hcr hcr 74035 12月 10 2012build.xml
drwxr-xr-x. 4 hcr hcr 4096 12月 10 2012 c++
-rw-r--r--. 1 hcr hcr 348624 12月 10 2012CHANGES.txt
drwxr-xr-x. 2 hcr hcr 4096 10月 19 00:11conf
drwxr-xr-x. 13hcr hcr 4096 12月 10 2012 contrib
drwxr-xr-x. 7 hcr hcr 4096 12月 10 2012 docs
-rw-r--r--. 1 hcr hcr 6839 12月 10 2012hadoop-0.20.2-ant.jar
-rw-r--r--. 1 hcr hcr 2689741 12月 10 2012 hadoop-0.20.2-core.jar
-rw-r--r--. 1 hcr hcr 142466 12月 10 2012hadoop-0.20.2-examples.jar
-rw-r--r--. 1 hcr hcr 1563859 12月 10 2012 hadoop-0.20.2-test.jar
-rw-r--r--. 1 hcr hcr 69940 12月 10 2012hadoop-0.20.2-tools.jar
drwxr-xr-x. 2 hcr hcr 4096 12月 10 2012 ivy
-rw-r--r--. 1 hcr hcr 8852 12月 10 2012ivy.xml
drwxr-xr-x. 5 hcr hcr 4096 12月 10 2012 lib
drwxr-xr-x. 2 hcr hcr 4096 12月 10 2012librecordio
-rw-r--r--. 1 hcr hcr 13366 12月 10 2012LICENSE.txt
drwxrwxr-x. 3 hcr hcr 4096 10月 19 04:00logs
-rw-r--r--. 1 hcr hcr 101 12月 10 2012NOTICE.txt
-rw-r--r--. 1 hcr hcr 1366 12月 10 2012README.txt
drwxr-xr-x. 15hcr hcr 4096 12月 10 2012 src
drwxr-xr-x. 4 hcr hcr 4096 8月 5 02:18 tmp
drwxr-xr-x. 8 hcr hcr 4096 12月 10 2012webapps
[hcr@slave1hadoop]$
接下来所有的copy完毕后开始要进入启动hadoop相关动作上了。
先格式化一下namenode
[hcr@master hadoop]$ bin/hadoop namenode –format
成功后,
接下来启动ok 了。
[hcr@master hadoop]$ bin/start-all.sh
startingnamenode, logging to/usr/local/hadoop/bin/../logs/hadoop-hcr-namenode-master.out
slave1: startingdatanode, logging to/usr/local/hadoop/bin/../logs/hadoop-hcr-datanode-slave1.out
slave2: startingdatanode, logging to/usr/local/hadoop/bin/../logs/hadoop-hcr-datanode-slave2.out
master: startingsecondarynamenode, logging to/usr/local/hadoop/bin/../logs/hadoop-hcr-secondarynamenode-master.out
startingjobtracker, logging to /usr/local/hadoop/bin/../logs/hadoop-hcr-jobtracker-master.out
slave1: startingtasktracker, logging to/usr/local/hadoop/bin/../logs/hadoop-hcr-tasktracker-slave1.out
slave2: startingtasktracker, logging to/usr/local/hadoop/bin/../logs/hadoop-hcr-tasktracker-slave2.out
启动成功后查看一下java 进程jps
[hcr@masterhadoop]$ jps
8349 Jps
8207SecondaryNameNode
8281 JobTracker
8055 NameNode
这时候SNN,NN,jobtracker都有了。
数据节点查看一下
[hcr@slave1hadoop]$ jps
4750 Jps
4705 TaskTracker
4608 DataNode
[hcr@slave1hadoop]$
数据节点datanode 和taskTracker也都有了。
然后就能看到相关目录了
[hcr@master hadoop]$ hadoop fs –ls /
这个时候进入
http://master:50070/dfshealth.jsp
查看页面
Namenode起来了。
然后点击进入Browse the filesystem
Datanode 也起来了。
然后去看看jobtracker
能访问也起来了。
接下来就算安装成功了。