1、Hadoop版本选择
* apache hadoop: 2008年,初学者入门,简单易入手
* cloudera hadoop: 2009年,企业中使用 CDH,性能强
* hortonworks hadoop: 2011年,文档全面
* hortonworks 和 cloudera 2018年国庆合并
这里我们就先选用apache 官方版本2.X
- 1、apache 官方版本: http://hadoop.apache.org/
-
大版本:0.20.2
-
1.X
-
2.X 2.5.2 2.6.5 2.7.3
-
3.X
- 2、商业发型版本:
-
提供完善的管理系统,修复 bug 可能会领先于官方版本
-
Cloudera 公司的 CDH:5.7.X
2、hadoop集群搭建准备
2.1.了解hdfs组成(分布式的文件系统)
- 1.NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),
- 以及每个文件的块列表和块所在的DataNode等。
- 2.DataNode(dn):在本地文件系统存储文件块数据,即是存放具体的block的,校验文件。
- 3.Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
2.2.了解yarn组成(运算资源调度系统)
- 1.ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;----整个集群的资源调度
- 2.NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;-----单个节点的资源调度
- 3.ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错;
- 4.Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
2.3.了解mapreduce组成(Map 和 Reduce 分布式运算编程框架)
- MapReduce将计算过程分为两个阶段:Map和Reduce
-
1.Map阶段并行处理输入数据
-
2.Reduce阶段对Map结果进行汇总
2.4.hadoop集群搭建准备
在此之前需要对linux系统有一定的了解:https://blog.csdn.net/weixin_41685388/article/category/9409639
主从架构的集群,一主多从。
准备至少3个节点(也就是3台虚拟机):hadoop01,hadoop02,hadoop03,......
- 1、修改ip地址,静态ip地址
1)查看ip地址:ifconfig
2)vi /etc/udev/rules.d/70-persistent-net.rules #修改网卡 , 三台机一样的NAME="eth0"
3)vi /etc/sysconfig/network-scripts/ifcfg-eth0 ##修改网卡配置文件
修改ip地址如:IPADDR=192.168.2.101(102)(103) 保存并退出
详细参考链接:https://blog.csdn.net/weixin_41685388/article/details/102492319
如图:注意:接下来的操作基本上都是三台机一起操作
- 2、修改主机名
vim /etc/sysconfig/network #如修改为HOSTNAME=hadoop01(hadoop02)(hadoop03)
- 3、配置主机映射
Linux:vim /etc/hosts 3台机都在末尾添加
192.168.2.101 hadoop01
192.168.2.102 hadoop02
192.168.2.103 hadoop03
windows:在C:\Windows\System32\drivers\etc\hosts文件末尾添加
192.168.2.101 hadoop01
192.168.2.102 hadoop02
192.168.2.103 hadoop03
- 4、检查关闭防火墙
chkconfig --list iptables #检查防火墙(关闭开机自启状态:chkconfig iptables off)
- 5、检查关闭selinux(linux的安全管理策略)
vim /etc/selinux/config
修改:
#SELINUX=enforcing
SELINUX=disabled
- 6、修改系统启动级别
vi /etc/inittab ##修改系统启动级别,将id:5:initdefault改为id:3:initdefault,保持并退出
- 7、同步时间(必须)
方法一:直接修改时间:date -s "2019-10-19 20:18:58"
方法二:同步网络时间:ntpdate 时间服务器的地址 如:ntpdate ntp1.aliyun.com
查看时间:date "+%Y-%m-%d %H:%M:%S"
- 8、jdk的安装
java -varsion #查看是否安装
echo $PATH #查看环境变量是否为全局变量(全局变量前面有export)
-
vim /etc/profile #全局配置(所有用户都可以使用),在末尾添加或修改环境配置,加入下面两行代码:
-
export JAVA_HOME=/opt/jdk1.8.0_144
-
export PATH=${JAVA_HOME}/bin:${PATH}
安装jdk的教程:https://blog.csdn.net/weixin_41685388/article/details/102522730
- 9、保证3台机有同名的普通用户,并配置相互的ssh免密使用
cat /etc/passwd #查看用户,其中普通用户uid-->500-60000
useradd hadoop #添加名为hadoop的普通用户
passwd hadoop #修改新增加用户的密码
vi /etc/sudoers #先su root下给hadoop用户配置sudoer权限
-
找到root ALL=(ALL) ALL 行,在下面添加一行
-
hadoop ALL=(ALL) ALL
用户管理操作教程:https://blog.csdn.net/weixin_41685388/article/details/102497006
su hadoop #切换到hadoop用户下,然后配置ssh免密登陆
ssh-keygen #生成密钥对,一直回车执行完即可
ssh-copy-id hadoop01 #将公钥发送给hadoop01
ssh-copy-id hadoop02 #将公钥发送给hadoop02
ssh-copy-id hadoop03 #将公钥发送给hadoop03
注意:再次强调是3台机器同时操作
测试:ssh hadoop01 #登陆hadoop01 ssh hadoop02 #登陆hadoop02 ssh hadoop03 #登陆hadoop03
如果登陆成功,配置成功,退出登陆:exit 执行三次,回到自己的机器上面。
- 10、重启 sudo reboot
以上10部就完成了hadoop集群搭建的准备工作
- 11、附加:配置CRT启动时同时连接到多台虚拟机
打开SecureCRT后,清楚原来的所有连接,然后新建New Folder,改名为hdfs
在hdfs文件夹下创建新的需要连接的机器,记得勾选记住密码
这样以后直接点击快捷方式打开,就一次性全部链接啦!