1、环境准备
需要环境:
PC-1 Suse Linux 9 10.192.1.1
PC-2 Suse Linux 9 10.192.1.2
PC-3 Suse Linux 9 10.192.1.3
PC-4 Suse Linux 9 10.192.1.4
其中,PC-1做namenode节点,PC-2、PC-3和PC-4做datanode节点。
2、安装包准备
需要安装包:
jdk-6u16-linux-i586-rpm.bin
hadoop-0.20.1.tar.gz(stable版本)
3、安装步骤
3.1 操作系统配置
(1)新建用户。在HDFS文件系统中的每个节点(包括namenode节点和datanode节点)上,新建hdfs用户,并保证hdfs用户的当前目录一致。
(2)HDFS中的节点配置
在root用户中输入命令yast,使用yast工具。Network Devices—>Network Card
—>Already configured devices—>Change—>Edit—>Host name and name server。
1,namenode节点。hostname修改为“namenode”,domian name修改为“hdfs”;
2,datanode节点。hostname修改为“datanodeXXX”,domian name修改为“hdfs”,其中“XXX”最好为该节点IP地址中的第四个数字。
(3)HDFS中的节点添加通讯对方主机名
1,namenode节点。在/etc/hosts/文件中添加所有datanode节点的IP/Hostname对,如
10.129.126.205 datanode205.hdfs datanode205
2,datanode节点。在所有datanode节点中的/etc/hosts/文件中添加所有namenode节点的IP/Hostname对,如10.129.126.203 namenode.hdfs namenode
(4)Windows访问端配置
a)参照namenode节点中的hosts文件的配置,在windows的hosts文件中添加namenode节点和datanoe节点的IP/Hostname对。
b)在IE浏览器不使用代理列表中,添加“*.hdfs”。
3.2 安装JDK
Hadoop是基于JDK1.6编写的,为了运行HDFS文件系统,同时也为了后续的开发,需要安装JDK1.6。
(1)切换到root用户,并将安装包拷贝至/usr/local/目录,chmod 755使root用户获得执行安装包的权限。
(2)执行sh jdk-6u16-linux-i586-rpm.bin开始安装,接下来出现安装协议阅读界面。按“q”退出阅读,接着输入“y”表示统一安装协议,开始安装直到结束。
(3)配置JAVA环境在/etc/profile文件尾添加三项:
export JAVA_HOME=/usr/java/jdk1.6.0_16
export CLASSPATH=/usr/java/jdk1.6.0_16/lib:/usr/java/jdk1.6.0_16/jre/lib:$CLASSPATH
export PATH=/usr/java/jdk1.6.0_16/bin:/usr/java/jdk1.6.0_16/jre/bin:$PATH
在root用户中,chmod 755 /etc/profile,使普通用户获得对该文件的执行权限。在hdfs的登录会话中,执行“. /etc/profile”( “.”与“/”之间有空格)使修改生效,使用echo命令确认这三项设置是否成功。
3.3 配置SSH服务
在namenode节点,使用ssh工具生成公钥/私钥对,并把公钥分发给datanode节点,可以实现datanode对来自namenode节点网络通讯请求的认证。
首先,在namenode节点生成公钥/私钥对:
(1)在/home/hdfs/目录下新建“.ssh”目录。
(2)使用DSA算法生成公钥/私钥对。
$ssh-keygen -t dsa –P ’’
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hdfs/.ssh/id_rsa): 按回车
Enter passphrase (empty for no passphrase): 输入hdfs登录密码
Enter same passphrase again: 再次输入hdfs登录密码
Your identification has been saved in /home/hdfs/.ssh/id_rsa.
Your public key has been saved in /home/hdfs/.ssh/id_rsa.pub.
The key fingerprint is:
9a:4f:a0:82:1d:f9:e3:31:17:46:b2:25:15:1a:52:56 hdfs@namenode
注:其中id_dsa存放了产生的私钥,id_dsa.pub存放了公钥。
接着,分发namenode节点的公钥
将namenode节点id_rsa.pub文件中的内容复制到所有节点的/home/h/.ssh/authorized_keys文件中。
(1)namenode节点。
1,authorized_keys不存在。执行命令cp id_rsa.pub authorized_keys。
1,authorized_keys存在。执行命令cat id_rsa.pub >> authorized_keys。
(2)datanode节点。
在namenode节点中,对每一台datanode节点,执行命令scp id_dsa.pub datanode205:/home/hdfs/.ssh/。在datanode节点,仿照namenode节点的处理方法,将namenode节点的公钥拷贝到authorized_keys文件中。
(3)ssh验证。
在namenode节点执行ssh datanode205.,如果能不输入密码能登录到datanode205,则说明安装成功。
3.4安装Hadoop
在namenode节点中,将hadoop-0.20.1.tar.gz,解压到/home/hdfs/目录下即可。
4、配置说明
4.1 namenode节点配置
在namenode节点的conf目录下。
(1)core-site.xml文件配置。
配置临时文件夹目录。
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hdfs/hadoop-datastore/hadoop-${user.name}</value>
<description>A base for other temporary directories.</description>
</property>
配置HDFS文件系统外部访问地址,即namenode节点IP以及访问端口号。
<property>
<name>fs.default.name</name>
<value>hdfs://10.129.126.203:54310</value>
</property>
(2)hdfs-site.xml文件配置。
配置上传文件备份的份数,不能超过datanode节点个数,默认为3个。
<name>dfs.replication</name>
<value>3</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
(3)masters文件配置。
添加namenode节点在主机名“namenode”。
(4)slaves文件配置。
添加所有datanode节点的主机名,每行配置一个。
datanode203
datanode204
datanode205
4.2 datanode节点配置
在namenode节点,执行命令scp -r hadoop-0.20.1/ datanode205:/home/hdfs/,将namenode节点的安装文件复制到每一个datanode节点。
补充:注意env中的环境变量$HADOOP_HOME和$HADOOP_CONF_DIR,$HADOOP_CONF_DIR的默认值是/etc/hadoop,如果环境变量中没有这个值,修改conf的配置文件是没用的。其他环境变量测默认值可从src/core/core-site.xml, src/hdfs/hdfs/hdfs-site.xml, src/mapred/mapred-site.xml中获取。