- 本书赞誉
- 前言
- 第一部分 基础篇
- 第1章 系统基础信息模块详解
- 第2章 业务服务监控详解
- 第3章 定制业务质量报表详解
- 第4章 Python 与系统安全
- 第二部分 高级篇
- 第5章 系统批量运维管理器 pexpect 详解
- 第6章 系统批量运维管理器 paramiko 详解
- 第7章 系统批量运维管理器Fabric详解
- 第8章 从零开发一个轻量级 WebServer
- 第9章 集中化管理平台 Ansible 详解
- 第10章 集中化管理平台 Saltstack 详解
- 第11章 统一网络控制器 Func 详解
- 第12章 Python 大数据应用详解
- 第三部分 案例篇
- 第13章 从零开始打造 B/S 自动化运维平台
- 第14章 打造 Linux 系统安全审计功能
- 第15章 构建分布式质量监控平台
- 第16章 构建桌面版 C/S 自动化运维平台
12.2 Hadoop 部署
由于部署Hadoop需要Master访问所有Salve主机实现无密码登录,即配置账号公钥认证,具体参考9.2.5节关于配置Linux主机SSH无密码访问的介绍,本节将不再陈述。
(1)安装
SSH登录Master主机,这里使用root账号进行相关演示。安装JDK环境:
# mkdir –p /usr/java/ && cd /usr/java # wget http://uni-smr.ac.ru/archive/dev/java/SDKs/sun/j2se/6/jdk-6u45-linux-x64.bin # chmod +x jdk-6u45-linux-x64.bin # ./jdk-6u45-linux-x64.bin # vi /etc/profile (配置Java环境变量,追加以下内容) export JAVA_HOME=/usr/java/jdk1.6.0_45 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar # cd /etc (使环境变量生效) # . profile
安装Hadoop,版本为1.2.1,安装路径为/usr/local。
# cd /usr/local # wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz # tar –zxvf hadoop-1.2.1.tar.gz # cd /usr/local/hadoop-1.2.1/conf
修改目录(/usr/local/hadoop-1.2.1/conf)中的四个Hadoop核心配置文件hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml,具体内容如下:
hadoop-env.sh,Hadoop环境变量配置文件,指定JAVA_HOME。
export JAVA_HOME=/usr/java/jdk1.6.0_45
core-site.xml,Hadoop core的配置项,主要针对Common组件的属性配置。由于默认的hadoop.tmp.dir的路径为/tmp/hadoop-${user.name},笔者的Linux系统的/tmp文件系统的类型是Hadoop不支持的,会报“File/tmp//input/conf/slaves could only be replicated to 0 nodes,instead of 1”异常,因此手工修改hadoop.tmp.dir指向/data/tmp/hadoop-${user.name},作为Hadoop用户的临时存储目录,配置如下:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/data/tmp/hadoop-${user.name}</value> </property> <property> <name>fs.default.name</name> <value>hdfs://192.168.1.20:9000</value> //master主机IP:9000端口 </property> </configuration>
hdfs-site.xml,Hadoop的HDFS组件的配置项,包括Namenode、Secondarynamenode和Datanode等,配置如下:
<configuration> <property> <name>dfs.name.dir</name> <value>/data/hdfs/name</value> //Namenode持久存储名字空间、事务日志路径 </property> <property> <name>dfs.data.dir</name> <value>/data/hdfs/data</value> //Datanode数据存储路径 </property> <property> <name>dfs.datanode.max.xcievers</name> <value>4096</value> //Datanode所允许同时执行的发送和接受任务数量,默认为256 </property> <property> <name>dfs.replication</name> <value>2</value> //数据备份的个数,默认为3 </property> </configuration>
mapred-site.xml,配置map-reduce组件的属性,包括jobtracker和tasktracker,配置如下:
<configuration> <property> <name>mapred.job.tracker</name> <value>192.168.1.20:9001</value> </property> </configuration>
masters,配置Secondarynamenode项,环境使用主设备192.168.1.20同时承担Secondarynamenode的角色,生产环境要求使用独立服务器,起到HDFS文件系统元数据(metadata)信息的备份作用,当NameNode发生故障后可以快速还原数据,配置内容如下:
192.168.1.20
slaves,配置所有Slave主机信息,填写IP地址即可。本示例中Slave的信息如下:
192.168.1.21 192.168.1.22
接下来,从主节点(Master)复制jdk及Hadoop环境到所有Slave,目标路径要与Master保持一致,切记!执行以下命令进行复制:
# ssh root@192.168.1.21 '[ -d /usr/java ] || mkdir -p /usr/java ]' # ssh root@192.168.1.22 '[ -d /usr/java ] || mkdir -p /usr/java ]' # scp -r /usr/java/jdk1.6.0_45 root@192.168.1.21:/usr/java # scp -r /usr/java/jdk1.6.0_45 root@192.168.1.22:/usr/java # scp -r /usr/local/hadoop-1.2.1 root@192.168.1.21:/usr/local # scp -r /usr/local/hadoop-1.2.1 root@192.168.1.22:/usr/local
Hadoop部分功能是通过主机名来寻址的,因此需要配置主机名hosts信息(生产环境建议直接搭建内网DNS服务),保证Hadooop环境所有主机的/etc/hosts文件配置如下:
192.168.1.20 SN2013-08-020 192.168.1.21 SN2013-08-021 192.168.1.22 SN2013-08-022
管理员通过浏览器查看datanode信息,需要配置本地hosts,如Windows 7系统hosts文件路径为C:\Windows\System32\drivers\etc,添加所有datanode主机信息,如下:
192.168.1.21 SN2013-08-021 192.168.1.22 SN2013-08-022
如设备启用了iptables防火墙,需要对主节点(Master)及Slave主机添加以下规则:
Master: iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 50030 -j ACCEPT iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 50070 -j ACCEPT iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 9000 -j ACCEPT iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 9001 -j ACCEPT Slaves: iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 50075 -j ACCEPT iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 50060 -j ACCEPT iptables -I INPUT -s 192.168.1.20 -p tcp --dport 50010 -j ACCEPT
配置完成后在主节点(Master)上格式化文件系统的namenode,执行:
# cd /usr/local/hadoop-1.2.1 # bin/hadoop namenode -format
最后,在主节点(Master)上执行启动命令,如下:
# bin/start-all.sh
(2)检验安装结果
Hadoop官方提供的一个测试MapReduce的示例,执行:
# bin/hadoop jar hadoop-examples-1.2.1.jar pi 10 100
如果返回如图12-1所示结果,则说明配置成功。
图12-1 计算pi的测试结果(部分截图)
访问Hadoop提供的管理页面,Map/Reduce管理地址:http://192.168.1.20:50030/,如图12-2所示。
图12-2 Map/Reduce管理界面(部分截图)
HDFS存储管理地址:http://192.168.1.20:50070/,如图12-3所示。
图12-3 HDFS管理界面(部分截图)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论