本文尝试在CentOS上搭建10台HDFS集群,不会搭建YARN和Hive, 因为之后会采用Spark。先安装jdk 1.8, 此处不细说。
服务器有12块磁盘,因此这是一个真实场景下的集群搭建,只是规模较小。
下载
首先下载hadoop binary包
-
wget http://apache.mesi.com.ar/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz
解压后放在/data/slot0/目录下,并建立软链接/data/slot0/hadoop
创建帐号
创建管理hadoop集群的帐号
会出现/home/lisa目录,lisa帐号无需密码,因为不能直接登录。
可以用批处理的方式对10台服务器都创建lisa帐号,主要通过ssh -t 这里不再细说
修改目录拥有者
-
chown -R lisa:lisa hadoop-2.7.1/
-
chown -R lisa:lisa hadoop
-
ll
-
total 8
-
drwxr-xr-x 3 root root 4096 Sep 25 18:02 download
-
lrwxrwxrwx 1 lisa lisa 13 Sep 25 17:42 hadoop -> hadoop-2.7.1/
-
drwxr-xr-x 9 lisa lisa 139 Jun 29 14:15 hadoop-2.7.1
-
lrwxrwxrwx 1 root root 24 Sep 25 16:50 java -> /data/slot0/jdk1.8.0_45/
-
drwxr-xr-x 8 root root 4096 Sep 25 14:01 jdk1.8.0_45
打通帐号间SSH认证
切换到hadoop系统使用的帐号,然后生成ssh key
-
su - lisa
-
ssh-keygen -t rsa -P ''
-
Generating public/private rsa key pair.
-
Enter file in which to save the key (/home/lisa/.ssh/id_rsa):
-
Created directory '/home/lisa/.ssh'.
-
Your identification has been saved in /home/lisa/.ssh/id_rsa.
-
Your public key has been saved in /home/lisa/.ssh/id_rsa.pub.
-
The key fingerprint is:
-
15:44:c6:4e:bb:cd:b9:09:e7:50:c7:ae:dd:92:56:57 lisa@10-149-11-152
-
The key's randomart image is:
-
+--[ RSA 2048]----+
-
| += |
-
| .o. |
-
| o.. . |
-
| .o . o E|
-
| S = + .|
-
| + = . o|
-
| = = +.|
-
| = = .|
-
| . . |
-
+-----------------+
配置/etc/hosts
10台服务器的/etc/hosts要一样,便于互相通过hostname通信。
-
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
-
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
-
10.149.11.152 10-149-11-152
-
10.149.11.153 10-149-11-153
-
10.149.11.154 10-149-11-154
-
10.149.11.155 10-149-11-155
-
10.149.11.156 10-149-11-156
-
10.149.11.157 10-149-11-157
-
10.149.11.158 10-149-11-158
-
10.149.11.159 10-149-11-159
-
10.149.11.160 10-149-11-160
-
10.149.11.161 10-149-11-161
配置core-site.xml
切换到lisa帐号,编辑core-site.xml文件
-
<configuration>
-
<property>
-
<name>fs.default.name</name>
-
<value>hdfs://10-149-11-152:9000</value>
-
</property>
-
<property>
-
<name>io.file.buffer.size</name>
-
<value>131072</value>
-
</property>
-
<property>
-
<name>ha.zookeeper.quorum</name>
-
<value>10.149.11.146:2181,10.149.11.147:2181,10.149.11.148:2181</value>
-
</property>
-
</configuration>
这里配置了三台zookeeper的IP和端口号。
配置hdfs-site.xml
先创建一系列目录用于存放namenode、journalnode和datanode数据, 这些目录不需要在每台服务器上都创建,为了图省事,我都建了,只是有些不用而已。
-
mkdir -p /data/slot0/lisa/hdfs/namenode
-
chown -R lisa:lisa /data/slot0/lisa
-
mkdir -p /data/slot0/lisa/hdfs/journalnode
-
mkdir -p /data/slot0/lisa/hdfs/datanode
-
mkdir -p /data/slot1/lisa/hdfs/datanode
-
mkdir -p /data/slot2/lisa/hdfs/datanode
-
mkdir -p /data/slot3/lisa/hdfs/datanode
-
mkdir -p /data/slot4/lisa/hdfs/datanode
-
mkdir -p /data/slot5/lisa/hdfs/datanode
-
mkdir -p /data/slot6/lisa/hdfs/datanode
-
mkdir -p /data/slot7/lisa/hdfs/datanode
-
mkdir -p /data/slot8/lisa/hdfs/datanode
-
mkdir -p /data/slot9/lisa/hdfs/datanode
-
mkdir -p /data/slot11/lisa/hdfs/datanode
-
mkdir -p /data/slot10/lisa/hdfs/datanode
-
chown -R lisa:lisa /data/slot1/lisa
-
chown -R lisa:lisa /data/slot2/lisa
-
chown -R lisa:lisa /data/slot3/lisa
-
chown -R lisa:lisa /data/slot4/lisa
-
chown -R lisa:lisa /data/slot5/lisa
-
chown -R lisa:lisa /data/slot6/lisa
-
chown -R lisa:lisa /data/slot7/lisa
-
chown -R lisa:lisa /data/slot8/lisa
-
chown -R lisa:lisa /data/slot9/lisa
-
chown -R lisa:lisa /data/slot10/lisa
-
chown -R lisa:lisa /data/slot11/lisa
-
(责任编辑:IT) |