-
(一)配置环境
-
1.1.硬件:
-
三台机器:ubuntu12.04-64 server
-
1.2 软件:
-
jdk 1.6.0_45 64位
-
hadoop-1.0.3
-
1.3 分工如下:
-
node00:NameNode/JobTracker/SecondaryNameNode(这里最好用一台机来单独做SecondaryNameNode)
-
node01:DataNode/TaskTracker
-
node02:DataNode/TaskTracker
-
假定三台虚拟机的Ip地址如下:
-
node00:192.168.0.145
-
node01:192.168.0.146
-
node02:192.168.0.147
-
(二)准备工作
-
2.1 首先在三台机器上创建相同用户(Hadoop集群基本要求)
-
创建用户的方法:
-
(1)sudo addgroup hadoop
-
(2)sudo adduser --ingroup hadoop hadoop
-
编辑/etc/sudoers编辑文件,在root ALL=(ALL)ALL行下添加haduser ALL=(ALL)ALL。如果不添加这行,haduser将不能执行sudo操作。
-
或者:在root ALL=(ALL)ALL行下添加haduser ALL =NOPASSWD :ALL,这样的话,sudo的时候就不用输密码。
-
2.2 安装jdk1.6.0_45
-
$ tar xvf jdk1.6.0_45.tar.gz
-
$ sudo mv jdk1.6.0_45 /usr/lib/java
-
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_45/bin/java 300
-
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 300
-
$ sudo update-alternatives --config java
-
$ sudo update-alternatives --config javac
-
hadoop@node00:~$ java -version
-
java version "1.6.0_45"
-
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
-
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
-
jdk配置成功!
-
ps: jdk卸载非常简单,仅需要删除jdk的安装目录和/etc/profile的环境配置信息即可。
-
2.3 分别给三台机器设置:/etc/hosts 和/etc/hostname (好处是直接可以通过别名进行相互间访问)
-
(1)将三台机分别设置成nod00,node01,node02 。vim /etc/hostname
-
(2)将三台机器的/etc/hosts都设置成主机名和IP地址之间的映射关系
-
127.0.0.1 localhost
-
192.168.0.145 node00
-
192.168.0.146 node01
-
192.168.0.147 node02
-
(3)重启机器让hostname修改生效。
-
(4)验证以上配置是否成功:在node00机器上ping /node00/node01/node02
-
如果都能ping通,则说明这步配置成功。
-
2.4 配置ssh及无密码访问
-
(1)一般来说系统都是会默认安装sshd服务的。如果没有,或者版本比较老,可以重新安装:sudo apt-get install ssh
-
(2)设置node00可以无密码访问node01,node02
-
具体步骤如下:
-
1)ssh-keygen -t rsa 一路回车(产生密钥)
-
2)把id_rsa.pub追加到授权的key里面去(cat id_rsa.pub >> authorized_keys)
-
3)重启SSH服务命令使其生效.(sudo /etc/init.d/ssh )
-
(4)将生成的authorized_keys文件拷贝到node01,node02这两台从节点的相同文件夹下。
-
cd .ssh/
-
scp authorized_keys node01@hadoop:~/.ssh/
-
scp authorized_keys node01@hadoop:~/.ssh/
-
(4)配置到这里应该就可以进行ssh的无密码登录,验证是否无密码登录访问配置成功。
-
$ssh localhost (验证是否可以无密码访问localhost)
-
$ssh node01
-
$ssh node02
-
ps:这步骤有时候配置会出现问题,自己再将报错帖到网上搜索下。
-
以上步骤完成并配置成功后,接下来就正式开始安装Hadoop
-
ps:以上操作都是以hadoop用户登录进行操作
-
(三)Hadoop安装
-
Description: Hadoop集群中每个机器上面的配置基本相同,所以我们只需要在一台机器上配置部署好之后,直接scp将hadoop安装目录下所以文件复制到其他节点即可。
-
3.1下载并解压
-
下载:hadoop-1.0.3.tar.gz
-
ps:最新版本的hadoop-2.2.0.tar.gz不支持64位。要自己下载源码重写编译。
-
解压:
-
$cd /home/hadoop/
-
$tar xvf hadoop-1.0.3.tar.gz
-
3.2配置hadoop
-
配置文件在hadoop-1.0.3/conf文件夹下,需要配置的主要包括:hadoop-env.sh,core-site.xml,mapred-site.xml,masters,slaves.
-
1. vim hdfs-site.xml
-
<configuration>
-
<property>
-
<name>dfs.name.dir</name>
-
<value>/home/hadoop/hadoop-1.0.3/hddata/dfs/name</value>
-
</property>
-
<property>
-
<name>dfs.data.dir</name>
-
<value>/home/hadoop/hadoop-1.0.3/hddata/dfs/data</value>
-
</property>
-
<property>
-
<name>dfs.replication</name>
-
<value>3</value>
-
</property>
-
</configuration>
-
2. vim core-site.xml
-
<configuration>
-
<property>
-
<name>fs.default.name</name>
-
<value>hdfs://node00:9000</value>
-
</property>
-
<property>
-
<name>hadoop.tmp.dir</name>
-
<value>/home/hadoop/hadoop-1.0.3/hddata/tmp</value>
-
</property>
-
</configuration>
-
3 vim mapred-site.xml
-
<configuration>
-
<property>
-
<name>mapred.job.tracker</name>
-
<value>node00:9001</value>
-
</property>
-
<property>
-
<name>mapred.local.dir</name>
-
<value>/home/hadoop/hadoop-1.0.3/hddata/localData</value>
-
</property>
-
</configuration>
-
4. vim master
-
node00
-
5. vim slaves
-
node01
-
node02
-
-
3.3 同步到其他机器
-
1 cd /home/hadoop/
-
2 scp -r hadoop-1.0.3 hadoop@node01:~/
-
3 scp -r hadoop-1.0.3 hadoop@node02:~/
-
-
3.4 启动namenode节点(即node00节点)
-
cd /home/hadoop/hadoop-1.0.3
-
bin/hadoop namenode -format
-
ps:这一步没有格式化hdfs文件系统成功的话,后面的就不用浪费时间了,一定要重写仔细检查下哪里配错了,再进行下去。另外,排除错误之后一定要把本次操作生产的那些临时文件删掉才能再次格式化。我这里配置在/home/hadoop/hadoop-1.0.3/hddata/dfs/data(即删除dfs文件夹)。
-
-
3.5 检查hadoop启动是否成功
-
1.jps
-
8379 JobTracker
-
8290 SecondaryNameNode
-
7943 NameNode
-
14298 Jps
-
2.netstat -nl
-
-
3.HDFS测试
-
Description:
-
hadoop环境启动成功,我们进行一下hdfs的简单测试。
-
通过命令在hdfs上面,创建一个目录bin/hadoop fs -mkdir /test
-
通过命令复制一个本地文件到hdfs文件系统中,bin/hadoop fs -copyFormLocal README.txt /test
-
通过命令查看刚刚上传的文件bin/hadoop fs -ls /test
-
代码部分:
-
node00:
-
cd /home/hadoop/hadoop-1.0.3
-
bin/hadoop fs -mkdir test
-
bin/hadoop fs -copyFormLocal README.txt test
-
bin/hadoop fs -ls test
-
Found 1 items
-
-rw-r--r-- 2 hadoop supergroup 1366 2012-08-30 02:05 /test/README.txt
-
到这里,hadoop完全分布式安装就大功告成了!
(责任编辑:IT) |