准备阶段:硬件与网络规划
搞大数据集群,不是装个软件就完事。你得先想清楚要处理多少数据。比如公司每天产生几十GB的日志,想做实时分析,那至少得三台服务器起步。机器配置不用顶配,但内存建议16G以上,硬盘尽量大些,毕竟数据越积越多。
网络这块特别关键。别以为千兆网就行,节点之间频繁传输数据,带宽不够会卡成PPT。最好所有机器接在同一个交换机下,IP地址提前规划好,主节点用固定IP,比如192.168.1.10,子节点依次排开,避免DHCP变动带来麻烦。
选择合适的软件组合
现在主流还是Hadoop生态打底。HDFS负责存,YARN管资源,MapReduce跑任务。当然也可以加Spark提升计算速度。新手推荐用Cloudera Manager或者Ambari这类管理工具,图形界面点点就能部署,省得手动配一堆XML文件。
如果你更喜欢轻量级方案,Apache原生安装也行。先下载Hadoop安装包,解压到指定目录,然后改几个核心配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml 和 mapred-site.xml。
配置示例:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
hdfs-site.xml 设置副本数量
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/nn</value>
</property>
</configuration>
主机名与SSH免密登录
每台机器都得设置好主机名,主节点叫master,子节点叫slave1、slave2。改/etc/hosts文件,把所有节点IP和名字对应上,不然集群内部认不出彼此。
接着在主节点生成SSH密钥,把公钥复制到各个子节点的~/.ssh/authorized_keys里。这样以后启动集群就不用一台台输密码了。命令很简单:
ssh-keygen -t rsa
ssh-copy-id slave1
ssh-copy-id slave2
格式化与启动集群
第一次启动前,要在主节点执行格式化命令:
hdfs namenode -format
看到“Storage directory ... has been successfully formatted”才算成功。然后运行start-dfs.sh和start-yarn.sh,打开浏览器访问 http://master:50070,能看到NameNode状态页面,说明HDFS活了。
子节点上的DataNode日志如果报错连不上,检查防火墙是不是拦了端口。CentOS记得关firewalld,或者放行9000、50010这些常用端口。
测试集群是否正常工作
传点数据试试看。比如上传一个大文本文件:
hdfs dfs -put access.log /input/
再跑个WordCount例子:
yarn jar hadoop-examples.jar wordcount /input /output
等任务完成,查输出结果:
hdfs dfs -cat /output/part-r-00000 | head -5
能出统计结果,说明整个链路通了。这时候你已经搭好一个可扩展的大数据平台,后续可以加节点、集成Hive做SQL查询,或者接Flume收集日志。