大数据原生集群 (Hadoop2.X为核心) 本地测试环境搭建二 上一篇补充小提示根据上一篇安装好虚拟机和系统之后在安装软件之前我有两个对于虚拟机的注意点想送给大家大家可以不看但是后期在虚拟机的使用上或许对你有帮助一、在安装配置集群的时候涉及到不同机器之间有关IP地址的设置时一定要用域名代替ip因为有些组件不走DNS的话会出一些奇奇怪怪的毛病而且直接使用IP在后续虚拟机的移植使用上将非常麻烦无论win还是说linux的网卡对其配置IP时我们都有着自己的需求和所处网络环境决定要使用的ip网段而且在VMware虚拟机中ip网络策略被虚拟机安装时生成的虚拟网卡限制了就是在cmd窗口查看ip时那块VM…8的网卡因此一般情况下不可使用其他的网段除非你用桥接所以在搭建时直接使用ip那么后期搭建好的虚拟机被运行在其他机器上使用的时候改ip都能麻烦死你所以直接用域名后期迁移虚拟机的时候直接改域名对应的ip就可以了一步到位第二个是迁移虚拟服务器时的网卡注意事项本篇安装软件版本配置主机名字配置域名映射虚拟机之间的免密关闭防火墙同步服务器时间JavaJDK1.8scala-jdk 2.11.12 官网下载-》https://scala-lang.org/ 安装和Java一样配置home和path就行mysql5.6hadoop2.7.2 单点安装Hadoop2.x高可用搭建–》https://blog.csdn.net/dudadudadd/article/details/109858613修改主机名编辑/etc/sysconfig/network在该文件中修改HOSTNAME属性值如果你用的是centos7的则编辑/etc/hostname三台虚拟机都要修改我这里分别修改为hdp1、hdp2、hdp3配置域名映射编辑/etc/hosts在这个文件中原有的信息不要动我们在后面追加域名映射就可以了如192.168.83.136 hdp1192.168.83.137 hdp2192.168.83.138 hdp3注意同样的三台虚拟机都要修改而且一个映射占一行不要在一行ip地址和域名之间有一个空格免密免密一定要配置因为涉及到集群之间的相互访问不用输入密码不然就连自己访问自己的服务都要密码而且注意免密操作三台虚拟机都要进行包括自己对自己免密第一步当前所处节点生成密钥ssh-keygen-trsa运行上面这个命令之后会针对当前用户生成密/公钥不要输入任何东西直接回车正常情况下会让你输入三次什么都不输入的情况下输入三次回车直到最后一次回车后出现如下图案:其实它的三次输入第一次是生成密/公钥的位置默认是当前用户主目录下.ssh例如/root/.ssh/id_rsa第二、三次是输入对密/公钥文件的加密这样即使文件被其他人拿到手了没有密码也无法用来做身份认证不过一般都是空有权限的话是可以打开看内容的值得注意的是免密用的都是共钥(id_rsa.pub)如果你图省事儿可以运行ssh-keygen -t rsa -N -f ~/.ssh/id_rsa一步搞的第二步当前节点自身的密钥发到对应的服务器上ssh-copy-idhostname或者 ssh-copy-id usernamehostname 一般用上面的。下面的意思的用username用户免密同时对应用户需要生产过密/公钥拷贝时一定要包括服务器自己就是说有多少台虚拟机那么复制密钥的操作就执行多少次包括当前虚拟机自己也要拷贝拷贝时yes之后的密码是接收密钥服务器的同用户密码一定是和你当前所在节点操作的用户相同也就意味着免密需要双方访问器都有免密用的用户这一步就相当于当前节点把自身某个用户的身份密钥发给b节点并使用b节点上的同用户身份执行操作但是b节点总不能拿来就让a节点随便认证所以说需要a节点输入b节点同用户的密码来保证身份的有效性第三步测试免密是否成功sshhdp1(这里是已近拷贝了密钥的服务器)在其他节点上用上面这个这个命令登录其他服务器如果免密成功会弹出login信息并在当前的窗口中登录到目标服务器想要退出输入exit命令会退出并且弹出logout信息这就表示免密可以了最后在强调一遍上面这三步操作完只能算一台机器完事其他的服务器都要这样操作第四步如果你发现有的节点免密没有成功那么也不用担心你只需要删除所有节点/home/免密用户/.ssh目录下authorized_keys(记录了当前节点持有那些用户免密用的ssh公钥)和known_hosts(记录了当前节点连接其他服务器时获取到的对方的公钥)文件中涉及到的失败节点记录以及失败节点下的密/公钥文件随后重新执行上面的步骤即可失败节点的密/公钥文件保险起见一定要删除重新随着免密步骤生成最后狗头保命一下上面这个免密是想让大家知道免密的原始底层流程是什么正式操作不可能一台一台的搞去使用脚本方式完成免密就OK方法我也发过linux脚本方式批量免密关闭防火墙linux6及以下运行如下命令永久关闭防火墙chkconfigiptables off 即时关闭防火墙serviceiptables stop 查看防火墙状态serviceiptables statuslinux7及以上运行如下命令systemctl stop firewalld.service systemctl disable firewalld.service systemctl status firewalld.service注不关将影响时间同步及集群安装且关闭时永久关闭和及时关闭都要运行这样就不需要重启了还应该注意的是如果在实际的生产环境中我们不是关闭防火墙而是去进行设置防火墙开放端口等操作同步服务器时间https://blog.csdn.net/dudadudadd/article/details/110947177Java JDK安装之前使用java –verson 或者rmp命令测试服务器是否有jdk一般情况下正规的服务器都自带如有自带的一定要删除并且是强制删除否则删不掉不过按照我之前的那套方法走那么就没有第一步上传并解压jdk的安装包到/opt目录下linux的JDK安装包是一个tar.gz的压缩包对于linux来说它的应用安装包如果以压缩文件结尾的一般都是解压及安装删除及卸载第二步修改配置文件/etc/profile在该文件中配置环境变量home与path配置的时候把路径改成你自己的第三步使用source /etc/profile命令重新加载系统配置文件第四步最后测试java –version命令如果正常显示版本信息则安装完毕第五步使用scp -r jdk路径 root目标域名:目标路径命令分发到其他服务器上并修改其他结点的环境变量注意目标路径只需要指定到jdk的上一级就可以jdk的文件夹是自动会创建的比如你jdk安装在/opt/jdk那么你目标路径只写/opt就行Mysqlhttps://blog.csdn.net/dudadudadd/article/details/110874570Hadoop本篇安装的是单点的hadoop所有集群角色均只有一个下面的配置内容中所有涉及的节点都装在一个节点上就是官方说的单例模式如果你需要安装完整的HA模式可以去看我单独出的HA搭建方式当然你要先安装第三篇的zookeeper本文中涉及到HA的会单独说但为防止作者本人遗漏在搭建时要明白访问单例namenode是配置到端口而HA配置到Namenode通道名就例如http://192.168.1.1:9000和http://hdp的区别其中hdp是高可用配置时的通道名本篇撰写时用的hadoop是2.7.2你可以下载较新的版本但不要超过2.X因为3.X的搭建有点不同第一步准备工作上传hadoop安装包并解压在解压目录下准备一个datenode的工作文件存放地tar-zxfhadoop-2.7.2.tarcdhadoop-2.7.2mkdirhadoopData第二步进入hadoop安装目录下的的etc/hadoop目录下这是hadoop的配置文件存放地修改配置文件slaves文件中写入hadoop集群每台服务器的地址node1修改配置文件mapred-env.sh、yarn-env.sh、hadoop-env.sh文件夹中的JAVA_HOME值保证hadoop运行时的java环境修改配置文件hdfs-site.xml这个文件用来指定集群中hdfs副本的数量、namenode辅助服务器辅助服务器缓解namenode的压力可以理解成给namenode加了一块内存条或者一个小秘书configuration!--数据的副本数量--propertynamedfs.replication/namevalue2/value/property!--指定Hadoop辅助名称节点主机配置--propertynamedfs.namenode.secondary.http-address/namevaluenode1:50090/value/property!--namenode的web访问端口--propertynamedfs.namenode.http-address/namevaluenode1:50070/value/property!--数据块大小单位 B--propertynamedfs.blocksize/namevalue31457280/value/property!--namenode与datanode存储多路径配置且更改datanode磁盘写入规则--propertynamedfs.datanode.data.dir/namevaluefile:///${hadoop.tmp.dir}/dfs/data,file:///${hadoop.tmp.dir}/dfs/data1/value/propertypropertynamedfs.datanode.fsdataset.volume.choosing.policy/namevalueorg.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy/value/propertypropertynamedfs.namenode.name.dir/namevaluefile:///${hadoop.tmp.dir}/dfs/name,file:///${hadoop.tmp.dir}/dfs/name1/value/property/configuration修改配置文件core-site.xml这个文件中核心作用是指定集群中namenode的访问地址configuration!-- NameNode的rpc地址 --propertynamefs.defaultFS/namevaluehdfs://node1:9000/value/property!-- 指定Hadoop运行时产生文件的存储目录默认是NameNode、DataNode、JournalNode等存放数据的公共目录配置到现在准备好的路径 --propertynamehadoop.tmp.dir/namevalue/opt/hadoop-2.7.2/hadoopData/value/property/configuration修改配置文件yarn-site.xml指定yarn相关配置也就是资源集群资源管理器在那台服务器上运行configuration!--shuffer服务--propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property!--指定YARN的ResourceManager的地址和端口--propertynameyarn.resourcemanager.hostname/namevaluenode1/value/property!--单例模式YARN的ResourceManager的端口配置时必须带节点不然起不来应该是开源版本下单例不商用就没整理代码--propertynameyarn.resourcemanager.webapp.address/namevaluenode1:8088/value/property!--日志聚集功能--propertynameyarn.log-aggregation-enable/namevaluetrue/value/property!--日志保留时间设置7天--propertynameyarn.log-aggregation.retain-seconds/namevalue604800/value/property/configuration修改配置文件mapred-site.xml指定历史记录存放在那个服务器上configurationpropertynamemapreduce.framework.name/namevalueyarn/value/property!--历史服务器端地址--propertynamemapreduce.jobhistory.address/namevaluenode1:10020/value/property!--历史服务器web端地址--propertynamemapreduce.jobhistory.webapp.address/namevaluenode1:19888/value/property/configuration第三步开始初始化首先格式化并运行namenode它会启动集群中所有的datenode并建立心跳机制格式化方法为在namenode所在节点调用hadoop的bin目录下的hdfs namenode -format命令进行格式化之后调用sbin/start-dfs.sh运行完dfs启动命令后一定要jps检查一下hdfs的进程是否都在有一些极端情况会少一个namenode或者datanode这种情况可以运行 sbin/start-all.sh 试试切换到yarn所在服务起上的hadoop安装目录下运行sbin/start-yarn.sh第四步测试使用浏览器访问namenode所在服务器的50070端口如hdfs界面正常显示并可以看到集群中的每个datanode服务器而且关注点切换到服务器上调用jsp命令三台服务器上namenode、yarn的进程都有了这时就表示hadoop集群搭建成功第五步配置环境变量第一篇https://blog.csdn.net/dudadudadd/article/details/109647930第三篇https://blog.csdn.net/dudadudadd/article/details/109679296第四篇https://blog.csdn.net/dudadudadd/article/details/109719624第五篇https://blog.csdn.net/dudadudadd/article/details/109726023第六篇https://blog.csdn.net/dudadudadd/article/details/109744195