上一篇补充小提示
根据上一篇安装好虚拟机和系统之后,在安装软件之前我有两个对于虚拟机的注意点想送给大家,大家可以不看,但是后期在虚拟机的使用上或许对你有帮助
一、在安装配置集群的时候,涉及到不同机器之间有关IP地址的设置时,一定要用域名代替ip,因为有些组件不走DNS的话会出一些奇奇怪怪的毛病,而且直接使用IP,在后续虚拟机的移植使用上,将非常麻烦,无论win还是说linux的网卡,对其配置IP时,我们都有着自己的需求和所处网络环境决定要使用的ip网段,而且在VMware虚拟机中ip网络策略,被虚拟机安装时生成的虚拟网卡限制了,就是在cmd窗口查看ip时那块VM…8的网卡,因此一般情况下不可使用其他的网段,除非你用桥接,所以在搭建时直接使用ip,那么后期搭建好的虚拟机被运行在其他机器上使用的时候,改ip都能麻烦死你,所以直接用域名后期迁移虚拟机的时候直接改域名对应的ip就可以了,一步到位
第二个,是迁移虚拟服务器时的网卡注意事项
本篇安装软件版本
配置主机名字
配置域名映射
虚拟机之间的免密
关闭防火墙
同步服务器时间
JavaJDK1.8
scala-jdk 2.11.12 官网下载-》https://scala-lang.org/ 安装和Java一样配置home和path就行
mysql5.6
hadoop2.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 hdp1
192.168.83.137 hdp2
192.168.83.138 hdp3
注意同样的三台虚拟机都要修改,而且一个映射占一行,不要在一行,ip地址和域名之间有一个空格
免密
免密一定要配置,因为涉及到集群之间的相互访问,不用输入密码,不然就连自己访问自己的服务都要密码,而且注意免密操作三台虚拟机都要进行,包括自己对自己免密
第一步:当前所处节点生成密钥
ssh-keygen -t rsa
运行上面这个命令之后,会针对当前用户生成密/公钥,不要输入任何东西,直接回车,正常情况下会让你输入三次,什么都不输入的情况下输入三次回车,直到最后一次回车后出现如下图案:

其实它的三次输入,第一次是生成密/公钥的位置,默认是当前用户主目录下.ssh,例如/root/.ssh/id_rsa,第二、三次是输入对密/公钥文件的加密,这样即使文件被其他人拿到手了,没有密码也无法用来做身份认证,不过一般都是空,有权限的话是可以打开看内容的,值得注意的是免密用的都是共钥(id_rsa.pub)
如果你图省事儿,可以运行ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa一步搞的
第二步:当前节点自身的密钥发到对应的服务器上
ssh-copy-id hostname
或者
ssh-copy-id username@hostname
一般用上面的。下面的意思的用username用户免密,同时对应用户需要生产过密/公钥
拷贝时一定要包括服务器自己,就是说有多少台虚拟机,那么复制密钥的操作就执行多少次,包括当前虚拟机自己也要拷贝,拷贝时yes之后的密码是接收密钥服务器的同用户密码,一定是和你当前所在节点操作的用户相同,也就意味着免密需要双方访问器都有免密用的用户,这一步就相当于当前节点把自身某个用户的身份密钥发给b节点,并使用b节点上的同用户身份执行操作,但是b节点总不能拿来就让a节点随便认证,所以说需要a节点输入b节点同用户的密码来保证身份的有效性

第三步:测试免密是否成功
ssh hdp1(这里是已近拷贝了密钥的服务器)
在其他节点上,用上面这个这个命令登录其他服务器,如果免密成功,会弹出login信息,并在当前的窗口中登录到目标服务器,想要退出输入exit命令,会退出并且弹出logout信息,这就表示免密可以了
最后在强调一遍上面这三步操作完只能算一台机器完事,其他的服务器都要这样操作
第四步:如果你发现有的节点免密没有成功,那么也不用担心,你只需要删除所有节点/home/免密用户/.ssh目录下authorized_keys(记录了当前节点持有那些用户免密用的ssh公钥)和known_hosts(记录了当前节点连接其他服务器时获取到的对方的公钥)文件中涉及到的失败节点记录,以及失败节点下的密/公钥文件,随后重新执行上面的步骤即可,失败节点的密/公钥文件保险起见一定要删除重新随着免密步骤生成
最后狗头保命一下,上面这个免密,是想让大家知道免密的原始底层流程是什么,正式操作不可能一台一台的搞去,使用脚本方式完成免密就OK,方法我也发过:linux脚本方式批量免密
关闭防火墙
linux6及以下运行如下命令
永久关闭防火墙
chkconfig iptables off
即时关闭防火墙
service iptables stop
查看防火墙状态
service iptables status
linux7及以上运行如下命令
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就行
Mysql
https://blog.csdn.net/dudadudadd/article/details/110874570
Hadoop
本篇安装的是单点的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 -zxf hadoop-2.7.2.tar
cd hadoop-2.7.2
mkdir hadoopData
第二步:进入hadoop安装目录下的的etc/hadoop目录下这是hadoop的配置文件存放地
修改配置文件slaves,文件中写入hadoop集群每台服务器的地址
localhost
修改配置文件mapred-env.sh、yarn-env.sh、hadoop-env.sh文件夹中的JAVA_HOME值,保证hadoop运行时的java环境
修改配置文件hdfs-site.xml,这个文件用来指定集群中hdfs副本的数量、namenode辅助服务器,辅助服务器缓解namenode的压力,可以理解成给namenode加了一块内存条或者一个小秘书
<configuration>
<!-- 数据的副本数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>localhost:50090</value>
</property>
<!-- namenode的web访问端口 -->
<property>
<name>dfs.namenode.http-address</name>
<value>localhost:50070</value>
</property>
<!-- 数据块大小,单位 B -->
<property>
<name>dfs.blocksize</name>
<value>31457280</value>
</property>
<!-- namenode与datanode存储多路径配置,且更改datanode磁盘写入规则 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/data,file:///${hadoop.tmp.dir}/dfs/data1</value>
</property>
<property>
<name>dfs.datanode.fsdataset.volume.choosing.policy</name>
<value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/name,file:///${hadoop.tmp.dir}/dfs/name1</value>
</property>
</configuration>
修改配置文件core-site.xml,这个文件中核心作用是指定集群中namenode的访问地址
<configuration>
<!-- NameNode的rpc地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录,默认是NameNode、DataNode、JournalNode等存放数据的公共目录,配置到现在准备好的路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.2/hadoopData</value>
</property>
</configuration>
修改配置文件yarn-site.xml,指定yarn相关配置,也就是资源集群资源管理器在那台服务器上运行
<configuration>
<!-- shuffer服务 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址和端口 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<!-- 单例模式YARN的ResourceManager的端口,配置时必须带节点,不然起不来,应该是开源版本下单例不商用就没整理代码 -->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>localhost:8088</value>
</property>
<!-- 日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
修改配置文件mapred-site.xml,指定历史记录存放在那个服务器上
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost: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所在服务器上运行yarn,我的配置中yarn在hdp3上,切换到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

791

被折叠的 条评论
为什么被折叠?



