VM 15 Pro
Centos 7
Hadoop 2.6.5
FinalShell 3.9.2.2
- 创建虚拟机;配置网络;配置 *** 作系统;进入GUI界面配置;配置静态网络并验证网络连通性;使用FinalShell连接Centos
详细步骤:
VMWare上搭建Centos7并配置网络用FinalShell连接(详细图文教程)
先关闭虚拟机
鼠标右键单击Master虚拟机,点击管理里的克隆
点击下一步
创建完整克隆
完成克隆
再根据自己需求去调整Slave1的内存和磁盘大小
以此方式,再克隆出Slave2
参考文章:
虚拟机的克隆(带图详解)
sudo vi /etc/hostname
Slave1和Slave2,分别修改为slave1和slave2
reboot重启,使主机名生效
2)根据设置的IP地址范围,规划网络
再进入centos中,修改配置主机配置文件
三个节点中都需要更改,以Master为例
[admin@master ~]$ sudo vi /etc/hosts
规划master、slave1和slave2的IP地址如上
再更改网络接口配置信息,三个节点中都需要更改,以master为例:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
在Slave1和Slave2中的IPADDR分别改为192.168.44.102和192.168.44.103
再输入命令行重启网络服务:
sudo service network restart | systemctl restart network.service
验证宿主机和虚拟机之间的连通性,虚拟机上的DNS服务
正常连通,salve1和slave2的方式同上
再在FinalShell上设置三个主机的连接信息
由于hadoop中的程序都是网络服务,需要监听端口,这些端口默认会被linux防火墙挡住。因此要把hadoop中的端口一个个打开,或者把防火墙关掉。由于都是内网,所以将三台虚拟机的防火墙直接全部关闭就行
永久关闭内核防火墙
输入命令行sudo vi /etc/selinux/config
先临时关闭防火墙
sudo systemctl stop firewalld
再禁止开机启动防火墙(永久关闭)
sudo systemctl disable firewalld
验证三台主机的连通性
三台主机网络连接正常
输入su再输入密码,切换到管理员身份,进入到根目录cd ~
在三台虚拟机上生成密钥,输入ssh-keygen -t rsa,三次回车,生成密钥
注: FinalShell可在下方的命令窗口里直接发送同一条命令,给三台虚拟机,进行相同指令 *** 作。
在/root/.ssh文件下生成id_dsa id_dsa.pub,在该文件下建立一个authorized_keys文件,将id_dsa.pub文件内容拷贝authorized_keys文件中,同时赋予该文件600权限“只有拥有者有读写权限”
[root@master .ssh]# cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys [root@master .ssh]# ls authorized_keys id_rsa id_rsa.pub [root@master .ssh]# chmod 600 /root/.ssh/authorized_keys
资料拓展:
Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)
再复制Slave1和Slave2中的公钥(仅Maser执行):
ssh slave1 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
ssh slave2 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
执行命令后,输入yes,再输入slave1的登录密码,执行Slave2时,同方式。
再将Master上的公钥复制到Slave1和Slave2上
scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/authorized_keys scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/authorized_keys
注: scp(secure copy)基于 SSH 协议在网络之间进行安全传输的命令,其格式为“scp [参数] 本地文件 远程帐户@远程 IP 地址:远程目录”
ssh slave1 ip addr ssh slave2 ip addr
拓展资料:
如何在CentOS 7上设置SSH密钥
注: 若不是minimal(最小化)安装的,有可能出现openjdk已安装的情况,会导致到软件冲突,我们在这里先将openjdk进 行卸载。
(1)查询是否已有jdk文件rpm -qa|grep java
最小化安装:仅安装系统关键部件,安装最基本的程序。使之可以运行,确保开机后可以进入系统而不崩溃,不安装其他任何可扩展软件。
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
再次检查时,已被删除
将JDK文件jdk-8u172-linux-x64.tar.gz上传到虚拟机中,因/usr/local/src仅root用户可读写,为方便后续将上传的安装都放置在此,改为777权限(三台虚拟机共同执行):
[root@master admin]# chmod 777 -R /usr/local/src
然后上传jdk-8u172-linux-x64.tar.gz
解压文件至/usr/local/src
tar -zxvf /usr/local/src/jdk-8u172-linux-x64.tar.gz -C /usr/local/src
将JDK包复制给Slave1和Slave2
scp -r /usr/local/src/jdk1.8.0_172 root@slave1:/usr/local/src/ scp -r /usr/local/src/jdk1.8.0_172 root@slave2:/usr/local/src/(4)配置环境变量
[root@master hadoop-2.6.5]# vim ~/.bashrc
注: 此时修改的为root下的.bashrc进行全局变量修改
在文件后加入
export JAVA_HOME=/usr/local/src/jdk1.8.0_172 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
再将环境变量赋值给Slave1和Slave2
[root@master admin]# scp ~/.bashrc root@slave1:~/ [root@master admin]# scp ~/.bashrc root@slave2:~/
重新载入环境
source ~/.bashrc
测试环境是否配置成功
java -version
JDK环境配置成功
Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
默认配置文件
要获取的默认文件 文件存放在Hadoop的jar包中的位置
自定义配置文件
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。
(3)上传hadoop文件
将hadoop-2.6.5.tar.gz上传到/usr/local/src,打开目录,解压hadoop安装包
[root@master ~]$ cd /usr/local/src [root@master src]$ tar zxvf hadoop-2.6.5.tar.gz(4)修改hadoop-env.sh
[root@master hadoop]$ vim hadoop-env.sh
修改为export JAVA_HOME=/usr/local/src/jdk1.8.0_172
[root@master hadoop]$ vim yarn-env.sh
修改为export JAVA_HOME=/usr/local/src/jdk1.8.0_172
[root@master hadoop]# vim slaves
修改为slave1和slave2
[root@master hadoop]# vim core-site.xml
修改为
(8)修改hdfs-site.xml(HDFS配置文件)fs.defaultFS hdfs://master:9000 指定HDFS中NameNode地址(用来指定默认的文件系统) hadoop.tmp.dir file:/usr/local/src/hadoop-2.6.5/tmp hadoop运行时产生临时文件的存放目录
[root@master hadoop]# vim hdfs-site.xml
修改为
(9)配置mapred-site.xml(MapReduce配置文件)dfs.namenode.secondary.http-address master:9001 secondaryNamenode地址和端口 dfs.namenode.name.dir file:/usr/local/src/hadoop-2.6.5/dfs/name 保存FsImage镜像的目录,作用是存放hadoop的名称节点namenode里的metadata dfs.datanode.data.dir file:/usr/local/src/hadoop-2.6.5/dfs/data 存放HDFS文件系统数据文件的目录,作用是存放hadoop的数据节点datanode里的多个数据块 dfs.replication 2 block块副本数,默认值3
[root@master hadoop]# cp mapred-site.xml.template mapred-site.xml [root@master hadoop]# vim mapred-site.xml
修改为
(10)配置yarn-site.xml(YARN配置文件)mapreduce.framework.name yarn 指定运行mapreduce的环境是yarn mapreduce.jobhistory.address master:10020 MR JobHistory服务器进程间通信地址 mapreduce.jobhistory.webapp.address master:19888 MR JobHistory服务器的用户界面地址 mapreduce.jobhistory.done-dir /mr-history/done 已执行完毕作业信息存储位置 mapreduce.jobhistory.intermediate-done-dir /mr-history/tmp 正在运行的作业信息存储位置 yarn.app.mapreduce.am.staging-dir /mr-history/hadoop-yarn/ MR作业在提交时所使用的临时目录, 是一个本地路径 mapreduce.map.memory.mb 2048 调度器为每个map task申请的内存数,各Job也可以单独指定,如果实际使用的资源量超过该值,则会被强制杀死 mapreduce.reduce.memory.mb 2048 调度器为每个reduce task申请的内存数,同map task,超出强制杀死 mapreduce.job.reduce.slowstart.completedmaps 0.8 当map task完成80%时,为reduce申请资源,reduce开始进行拷贝map结果数据和做reduce shuffle *** 作,默认0.05
[root@master hadoop]# vim yarn-site.xml
打开文件后用gg跳转至文件首行,
再用dG指令清屏(dG为删除光标所在行以及其下所有行的内容;d为删除,G为跳转到文件末尾行;)
修改为
(11)创建临时文件和文件目录yarn.log-aggregation-enable true 开启日志聚合功能,开启后日志保存在hdfs上 yarn.log-aggregation.retain-seconds 86400 聚合后的日志在hdfs上的保存时间,单位为秒 yarn.log.server.url http://master:19888/jobhistory/logs 日志聚合服务器URL yarn.nodemanager.aux-services mapreduce_shuffle NodeManager上运行的附属服务,需配置成mapreduce_shuffle,才可运行MapReduce程序 yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.address master:8032 RM 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序 yarn.resourcemanager.scheduler.address master:8030 RM 对ApplicationMaster暴露的访问地址。AM通过该地址向RM申请资源、释放资源 yarn.resourcemanager.resource-tracker.address master:8035 RM 对NodeManager暴露的地址,NM通过该地址向RM汇报心跳,领取任务 yarn.resourcemanager.admin.address master:8033 RM 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等 yarn.resourcemanager.webapp.address master:8088 RM对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息 yarn.nodemanager.pmem-check-enabled false 是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认为true yarn.nodemanager.vmem-check-enabled false 是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true
[root@master hadoop]# mkdir /usr/local/src/hadoop-2.6.5/tmp [root@master hadoop]# mkdir -p /usr/local/src/hadoop-2.6.5/dfs/name [root@master hadoop]# mkdir -p /usr/local/src/hadoop-2.6.5/dfs/data
根据之前配置中规划的路径,创建临时文件和目录
(12)配置hadoop环境变量在.bashrc中添加hadoop环境变量
[root@master hadoop-2.6.5]# vim ~/.bashrc
添加内容
export HADOOP_HOME=/usr/local/src/hadoop-2.6.5 export PATH=$PATH:$HADOOP_HOME/bin(13)将文件赋值给其他节点
将.bashrc文件复制到Slave1和Slave2上
[root@master hadoop-2.6.5]# scp -r ~/.bashrc root@slave1:~/ [root@master hadoop-2.6.5]# scp -r ~/.bashrc root@slave2:~/
刷新环境变量
source ~/.bashrc
将hadoop包复制到Slave1和Slave2上
scp -r /usr/local/src/hadoop-2.6.5 root@slave1:/usr/local/src/ scp -r /usr/local/src/hadoop-2.6.5 root@slave2:/usr/local/src/5. 启动hadoop集群 (1)初始化Namenode
[root@master hadoop-2.6.5]# ./bin/hadoop namenode -format
第一次启动集群需要初始化(仅Master执行)
要保证过程不报错
在Master上启动集群
[root@master hadoop-2.6.5]# sbin/start-all.sh
正常启动:
出现上图为启动成功
排查错误: 发现找不到slave2,但master和slave1启动正常,推测整体文件修改时应该没有大的共性错误,否则maser和slave1也无法正常启动,那么问题可能仅是在有修改有slave2内容时,填写的错误。而在整个修改过程中,仅有slaves文件涉及salve2,故问题可能在slaves中
原因:进入/usr/local/src/hadoop-2.6.5/etc/hadoop/下的slaves文件中,发现把slaves写错成salve1,更改为slave1后,启动成功
2)查看服务进程[root@master hadoop-2.6.5]# jps
排查错误: 进入到java/bin输入jps,发现可正常显示进程服务,说明没有文件损失,可能为修改环境配置文件时错误。
原因: 查看环境配置文件,发现JAVA_HOME路径有内容敲错,修改后,可直接启动jps
注: sbin/start-dfs.sh为开启hdfs,sbin/start-yarn.sh为开启yarn
3)查看集群信息状态Master执行
[root@master hadoop-2.6.5]# hadoop dfsadmin -report
上述两个命令可正常执行显示,则说明hadoop集群正常启动
进入C:WindowsSystem32driversetc,修改hosts
修改完后,可在浏览器上输入master:8088直接访问
[root@master hadoop-2.6.5]# ./sbin/stop-all.sh
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)