Hadoop平台搭建方案
一、Hadoop简介
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop 分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。
对于Hadoop的集来讲,可以分成两大类角:Master和Salve。一个HDFS 集是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集上实现分布式文件系统,MapReduce在集上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执
行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集的主要任务。
二、系统安装及日常维护须知
服务器型号:IBM X3850 X5
1.平时操作注意事项:
机器上安装的有CentOS_6.4_64位操作系统和Windows server 2000操作系统。
当重新启动时,想进入CentOS系统,需要先插上CentOS的U盘启动盘,然后F12选择从USB设备启动,系统就会自动进入CentOS系统。
若不插U盘启动盘,系统将会自动进入机器上原来的windows server 2000系统。不会像普通个人计算机那样出现操作系统选择的界面。
2.U盘启动盘制作方式:
由于此服务器不支持CentOS的系统引导,安装的时候不识别CentOS6.4_64位系统光盘。于是采用将系统镜像写入U盘,做成U盘启动盘,制作U盘时选择写入新的主硬盘引导记录(MBR)。这样,安装的时候
插入U盘,选择从U盘启动,便可通过U盘引导进入CentOS系统的安装界面,之后也可以选择从U盘安装也可选择从光驱安装系统。
制作步骤:
用软碟通,先选定CentOS系统镜像,然后点菜单栏启动选项,点写入硬盘
映像,写入方式USB-HDD+,便捷启动选择写入新的主硬盘引导记录(MBR),USB-HDD+。写盘结束后进入U盘启动盘,进入EFI文件夹,删除 BOOTX64.efi 文件(重要,见注.)。至此,U盘启动盘制作OK。
注:之所以要删除 BOOTX64.efi文件,是因为CentOS_6.4操作系统对磁盘的管理采用GPT(GUID Partition Table,全局唯一标识分区表,缩写:GPT),它是一个实体硬盘的分区结构。它是EFI(可扩展固件接口标准)的一部分,用来替代BIOS中的主引导记录分区表。因为MBR分区表不支持容量大于2.2TB的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。(MBR和GPT的详细区分参看链接dngood.blog.51cto/446195/647702/ )
此系统便采用了GPT分区表,但我们服务器的磁盘还没有超过2.2TB,并且考虑到这台服务器上原先安装windows系统时已经采用MBR,并且不想删除该系统,所以仍要使用MBR,所以在制作U盘启动盘的时候把BOOTX64.efi文件删除,来拒绝使用GPT分区表。若不删除,安装过程中分区的时候会提示你采用GPT分区,这将会丢失磁盘上的原有内容。所以采取此措施。
三、平台支持及环境说明
1.平台环境
CentOS 6.4 Linux操作系统;
(平台硬件详细要求待考究...)
JAVA环境:JDK1.7.0_25;
SSH;
Hadoop-1.2.1;
2.集说明
示例集中包括3个节点:1个Master,3个Salve(默认是3个),节点之间局域网连接,可以相互ping通。
机器名称和对应的IP地址:
Master 192.168.1.212
Slave1 192.168.1.230
Slave2 192.168.1.233
Slave3 192.168.1.250
两个节点上均是CentOS系统,并且有一个相同的用户hadoop。Master机器主要配置NameNode和JobTracker的角,负责总管分布式数据和分解任务的执行;3个Salve机器配置DataNode和TaskTracker的角,负责分布式数据存储以及任务的执行。
四、配置过程
下面的例子我们将以Master机器为例,即主机名为"Master",IP为
"192.168.1.212"进行一些主机名配置的相关操作。其他的Slave机器以此为依据进行修改。
1.机器上都要装好CentOS系统。
没有特别说明都是在根用户权限下
2.修改主机名称:
vi /etc/sysconfig/network
更改HOSTNAME如下:HOSTNAME=Master
3.更改机器的IP:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
将IP_ADDR改为192.168.1.212
改完后用ifconfig查看(最好采用静态IP)
4.配置hosts文件:
"/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN 内接续的各主机的对应[HostName和IP]用的。当用户在进行网络连接时,首先查该文件,寻对应主机名(或域名)对应的IP地址。
vi /etc/hosts
填上机器的IP和对应的主机名称,填好后结果如下:
192.168.1.230 Slave1
192.168.1.233 Slave2
192.168.1.250 Slave3
5.添加用户和组,并修改权限:
addgroup hadoop
adduser -ingroup hadoop hadoop
打开权限配置文件,修改hadoop用户权限
vi /etc/sudoers
# User privilege specification
hadoop分布式集搭建root ALL=(ALL:ALL) ALL
Hadoop ALL=(ALL:ALL) ALL
6.SSH无密码验证配置:
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。
用刚建立的Hadoop用户操作
1)Master机器上生成密码对
ssh-keygen -t rsa -P “”
生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。
2)在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3)修改authorized_keys的权限
chmod 600 ~/.ssh/authorized_keys
4)设置SSH配置文件
用root用户
vi /etc/ssh/sshd_config
作如下修改:
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
5)重启SSH服务
service sshd restart
6)退出root登录,使用hadoop普通用户验证是否成功
ssh localhost
7)将Master的公钥拷贝到从节点
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.230:~/
8)从节点Slave1按照前面步骤生产密钥对,并将公钥加到授权Key里面
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys的权限
chmod 600 ~/.ssh/authorized_keys
再把Master的公钥追加到授权Key里面
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
9)将Slave1的公钥复制到Master并将公钥加到授权Key里
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.212:~/
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
10)用root权限修改从节点SSH配置文件/etc/ssh/sshd_config
删除id_rsa.pub。至此服务器和从节点间可以互相无密码访问了。
7.安装JDK:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论