这个寒假我们根据自己的摸索,我们克服了很多困难,最后终于搭建起了属于我们自己的云,虽然我们的“小云”经常出一些莫名其妙的问题,但是我觉得对我们来说她很有意义,写这篇博客分享一下那些天我们一起搭建的云,希望对那些想要搭建hadoop集群的朋友有帮助!
hadoop集群配置的步骤:
(1)修改机器的IP地址等信息
首先要分配集群机器的IP,给每台机器绑定IP,至于怎么绑定IP大家可以自己查资料,以我们的集群为例,我们总共准备了十台机器,依次将机器的IP地址改为192.168.1.2-192.168.1.11,
然后是确定namenode,secondarynamenode和datanode(namenode机器的性能要好一点,因为它是这个集群的大脑),我们是选定11号机器为namenode,10号机器作为secondarynamenode,其他的为datanaode
(2)配置namenode的hosts文件
命令:sudo gedit /etc/hosts
修改文件如下:
127.0.0.1 localhost
127.0.1.1 ubuntu.ubuntu-domain ubuntu
192.168.1.11 master
192.168.1.7 s7
192.168.1.4 s4
192.168.1.2 s2
192.168.1.3 s3
192.168.1.5 s5
192.168.1.6 s6
192.168.1.8 s8
192.168.1.9 s9
192.168.1.10 s10
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
(3)配置namenode的masters和slaves文件
cd /usr/local/hadoop
命令:sudo gedit conf/masters
修改如下:
master
命令:sudo gedit conf/slaves
s2
s3
S4
s5
S6
S7
S8
S9
(4)配置namenode的core-site、mapred-site、hdfs-site文件;
命令:sudo gedit conf/core-site.xml
<configuration>
<property>
<name>fs. default .name</name>
<value>hdfs:// master :9000</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
hdfs:// master :9000表示namenode的主机和端口
dfs.replication表示hdfs中文件备份个数。
命令:sudo gedit conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value> master :9001</value>
</property>
</configuration>
mapred.job.tracker表示JobTracker的主机和端口;
命令:sudo geidt conf/hdfs-site.xml
property>
<name> dfs.name.dir </name>
<value> /home/hadoop/hdfs/name </value>
</property>
<property>
<name> dfs.data.dir </name>
<value> /home/hadoop/hdfs/data </value>
</property>
dfs.name.dir 表示 NameNode 持久存储名字空间及事务日志的本地文件系统路径。
dfs.data.dir表示 DataNode 存放块数据的本地文件系统路径
(5)从namenode远程拷贝上述文件给所有的datanode
拷贝hosts给datanode
命令:scp /etc/hosts hadoop@datanode名:/etc/hosts
拷贝core-site.xml给datanode
命令:scp conf/core-site.xml hadoop@datanode名:/usr/local/hadoop/conf/core-site.xml
拷贝mapred-site.xml给datanode
命令: scp conf/mapred-site.xml hadoop@datanode名:/usr/local/hadoop/conf/mapred-site.xml
拷贝hdfs-site.xml给datanode
命令:scp conf/hdfs-site.xml hadoop@datanode名:/usr/local/hadoop/conf/hdfs-site.xml
(6)在namenode上生成公钥,远程拷贝到datanode上,实现无验证登陆
1. 生成公钥
命令: ssh-keygen -t dsa -P "" -f ~/.ssh/id_ r sa
2. 远程拷贝
命令: scp ~/.ssh/id_rsa.pub hadoop@s2 ~/.ssh/
3. data结点上添加到收信任列表
命令: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorizedkeys
(7)集群内节点的连接测试
命令:ssh datanode名
如果能从namenode无验证登录到所有的datanode上,那么说明集群实现了无验证登陆
(8)配置SecondaryNamenode
修改masters 文件,改为 s10
修改hdfs-site.xml 文件
<property>
<name>dfs.http.address</name>
<value> 192.168.1.11 :50070</value> >
</property>
(9)集群启动和停止的测试
1.namenode启动之前做一次 block 负载均衡
命令:sudo gedit conf/hdfs-site.xml
修改如下
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description>
Specifies the maximum bandwidth that each datanode can utilize for the balancing purpose in
term of the number of bytes per second.
</description>
</property>
命令:bin/start-balancer.sh
在新的结点上启动datanode
命令:bin/hadoop-daemon.sh start datanode
启动tasktracker
命令:bin/hadoop-daemon.sh start tasktracker
启动SecondaryNameNode
命令: bin/hadoop-daemon.sh start SecoondaryNameNode
启动namenode
命令:bin/start-dfs.sh
查看namenode的连接情况
命令:bin/hadoop dfsadmin -report
以上就是集群配置的步骤,由于写这篇博客的时候集群正在修复中,所以没有一步步截图,不能让大家看到集群跑起来的情况,之后我会更新这篇博客,敬请期待!