步骤1:构建和配置新的虚拟机。
格式化前,删除tmp目录中所有Hadoop相关信息。
rm -rf /tmp/hadoop-centos*
之后,启动jps only Java进程:将bogon添加到sudo vi /etc/hosts。
1.sudo授权
根用户vi /etc/sudoers
/root n(查找下一个结果)
centos ALL=(ALL) NOPASSWD:ALL
2.修改ens33网卡(桥接模式下的静态IP)
创建软链接
ln–s/etc/sys config/network-scripts/if CFG-ens 33 ens 33
修改配置文件
VI/etc/sys config/network-scripts/if CFG-ens 33
类型=以太网
BOOTPROTO=static
DEFROUTE =是
PEERDNS =是
PEERROUTES =是
IPV4 _失败_致命=否
IPV6INIT =是
IPV6 _ AUTOCONF =是
IPV6 _ DEFROUTE =是
IPV6 _ PEERDNS =是
IPV6 _对等路由=是
IPV6 _失败_致命=否
IPV6 _ ADDR _ GEN _ MODE =稳定-隐私
NAME=ens33
UUID = 51248 a5 b-aece-4777-ab51-7b5e 61602180
设备=ens33
ONBOOT =是
IPADDR=192.168.12.206
网络掩码=255.255.255.0
***=192.168.12.1
DNA1=219.141.136.10
DNS2=202.106.196.115
DNS3=8.8.8.8
DNS4=114.114.114.114
更改后重新启动网络服务。
sudo系统重启网络
右键单击虚拟机->:设置->;网络适配器->:桥接模式
检查网络是否连接到ping ***.baidu.com。
3.修改主机名
sudo vi /etc/hostname
在s126中删除并写入所有原始内容。
重新启动虚拟机
4.安装JDK和Hadoop
1.上传包
2.解压缩tar–zxvf * * * *
3.创建软链接ln -s *** hadoop
塔尔-zxvf jdk-8u121-linux-x***.tar.gz
ln -s jdk1.8.0_121 java
RM-RF jdk-8u121-linux-x***.tar.gz
塔尔-zxvf hadoop-2.8.0.tar.gz
ln -s hadoop-2.8.0 hadoop
RM-RF hadoop-2.8.0.tar.gz
4.配置环境变量
sudo vi /etc/profile
#java
J***A_HOME=/home/centos/java
导出路径=$PATH:$J***A_HOME/bin
#hadoop
HADOOP _ HOME =/HOME/centos/HADOOP
导出路径= $ PATH:$ HADOOP _ HOME/bin:$ HADOOP _ HOME/***in
VI ~/Hadoop/etc/Hadoop/Hadoop-env . sh
#java
导出J***A_HOME=/home/centos/java
5.刷新配置文件。
来源/etc/配置文件
5.关闭防火墙
停止防火墙并关闭防火墙
Sudo systemctl启动防火墙并打开防火墙
O sudsystemctl禁用防火墙d禁用防火墙(引导不启动)
Sudsystemctl启用防火墙d使用防火墙(引导)
Sudsystemctl状态防火墙-查看防火墙的状态
第二步:Hadoop集群构建
1.独立模式
1.将hadoop的jar包上传到服务器。
2.解压缩tar包。
tar–zxvf * * * *
3.创建软连接。
ln–s * * * Hadoop
4.配置环境变量。
[vi /etc/profile]
在底部添加
#hadoop
HADOOP _ HOME =/HOME/centos/HADOOP
导出路径= $ PATH:$ HADOOP _ HOME/bin:$ HADOOP _ HOME/***in
最后,保存文件并加载环境变量配置文件。
来源/etc/配置文件
5.修改hadoop环境变量配置文件以配置jdk路径。
[$ HADOOP _ HOME/etc/HADOOP/HADOOP-env . sh]
6.测试
hadoop版本
默认情况下,Hadoop是独立模式。
特点:运行一个任务是一个java进程,相当于运行一个java程序。
2.伪分布式模式配置
修改hdfs配置文件
VI ~/Hadoop/etc/Hadoop/core-site . XML
cd ~/hadoop/etc/hadoop
[core-site.xml]
& lt配置& gt
& lt属性& gt
& lt名称& gtfs.defaultFS & lt/name >
& lt值& gtHDFS://192 . 168 . 12 . 126:9000 </value >
& lt/property >
& lt/configuration >
VI ~/Hadoop/etc/Hadoop/HDFS-site . XML
[hdfs-site.xml]
& lt配置& gt
& lt属性& gt
& lt名称& gtdfs.replication & lt/name >
& lt值& gt1 & lt/value >
& lt/property >
& lt/configuration >
设置ssh免密登录
ssh-keygen -t rsa -P '' -f ~/。ssh/id_rsa
猫~/。ssh/id _ RSA . pub >& gt~/.ssh/授权密钥
chmod 600 ~/。ssh/授权密钥
检测方法:ssh本地主机/主机真实ip
格式化文件系统
hadoop namenode格式
启动文件系统
Jps检测Java打开的进程
Start-dfs.sh启动文件系统(启动了三个java进程)
Jps再次检测Java打开的进程(应该有四个)
配置纱线浏览器
cd ~/hadoop/etc/hadoop
CP ***p red-site . XML . template ***p red-site . XML
vi ***pred-site.xml
& lt配置& gt
& lt属性& gt
& lt名称& gtMapReduce . framework . name </name >
& lt值& gt纱线& lt/value >
& lt/property >
& lt/configuration >
vi yarn-site.xml
& lt配置& gt
& lt属性& gt
& lt名称& gtyarn . node ***nager . aux-services </name >
& lt值& gt***preduce _ shuffle & lt/value >
& lt/property >
& lt/configuration >
启动-DFS . sh && amp开始-纱。& amp& amp日本药理学会
3.完全分布式
配置/etc/hosts文件(本地静态DNS)
添加:第一行的bogon
添加:
192.168.12.201 s201
192.168.12.202 s202
192.168.12.203 s203
1.设置ssh免密登录:
(现在其他主机ssh主机IP然后***主机的权限600)
效果:可以通过ssh从主机登录。
目的:通过ssh在主机上执行命令。
立道:
首先为主机设置ssh免密登录,通过scp命令将主机的公钥(id_rsa.pub)发送给其他主机,并将获得的公钥追加到~/。其他主机上的ssh/authorized_keys。
主持人:
ssh-keygen–t RSA–P ' '–f ~/。ssh/id_rsa
猫~/。ssh/id _ RSA . pub >& gt~/.ssh/授权密钥
chmod 600 ~/。ssh/授权密钥
scp ~/。ssh/id _ RSA . pub centos @ 192 . 168 . 12 . 202:~/。ssh/id_rsa.pub.s201
scp ~/。ssh/id _ RSA . pub centos @ 192 . 168 . 12 . 203:~/。ssh/id_rsa.pub.s201
s202:
s203:
猫~/。ssh/id _ RSA . pub . s201 >& gt~/.ssh/授权密钥
2.2.shell脚本的操作:
编写主机分发脚本cpTo并查看脚本xcall。授予执行权限。移动到/usr/local/bin目录,以便我们可以在任何地方使用该脚本。
[cpTo]
#脚本的目的是:修改主机的文件后,可以分发到其他主机上实现同步。
#脚本的用法:cpTo文件(绝对路径/相对路径)
#!/bin/bash
#获取参数的绝对路径
dirname = ` CD $(dirname $ 1);残疾人
basename=`basename '
echo ${dirname}/${basename}
对于s202中的I,s203
做
echo " = = = = = = = = = = = = = = = = = = $ I $ { dirname }/$ { basename } = = = = = = = = = = = = = = = = "
#如果其他机器没有父目录,则创建一个父目录
ssh $i mkdir -p ${dirname}
#远程***文件
scp $ 1 $ { I }:$ {目录名}/$ {基本名}
完成的
[xcall.sh]
#功能是通过ssh远程运行命令,例如查看jps和删除/tmp。
#用法:xcall命令
#!/bin/bash
对于s201 s202 s203中的主机
做
echo " = = = = = = = = = = = = = = = = = = = = echo $ host $ @ = = = = = = = = = = = = = = = = = = = = = = = = = "
#ssh远程执行命令
# $ @获取所有参数
#source /etc/profile因为ssh远程执行命令不加载/etc/profile,所以很多命令无法使用。
ssh $ host " source/etc/profile && amp$@"
完成的
3.软件安装操作
安装jdk,hadoop,配置环境变量J***A_HOME和HADOOP_HOME,可以通过xcall脚本同步安装。
修改主机上的hosts文件,为主机配置所有机器的dns服务,使用cpTo脚本分发给其他机器,让其他机器也有dns服务。
注意:/etc/hosts是root用户的文件,需要切换到root才能执行。
Dns服务:域名可以解析为ip地址。例如,ping s201被解释为ping 192.168.12.201。
4.轮廓操作
在主机上修改hadoop的配置文件:
[Hadoop-en . sh][core-site . XML][HDFS-site . XML][***pred-site . XML][yarn-site . XML][slaves]
通过cpTo脚本分发(您可以分发上一级的所有目录)
1.[hadoop-env.sh]配置javahome
2.[core-site.xml]配置连接url
[core-site.xml]
& lt配置& gt
& lt属性& gt
& lt名称& gtfs.defaultFS & lt/name >
& lt值& gtHDFS://s201:9000 </value >
& lt/property >
& lt/configuration >
3.[hdfs-site.xml]配置了份数。
& lt配置& gt
& lt属性& gt
& lt名称& gtdfs.replication & lt/name >
& lt值& gt3 & lt/value >
& lt/property >
& lt/configuration >
4.[***pred-site.xml]配置用于运行映射任务的群集资源管理框架。
& lt配置& gt
& lt属性& gt
& lt名称& gtMapReduce . framework . name </name >
& lt值& gt纱线& lt/value >
& lt/property >
& lt/configuration >
5.[yarn-site.xml]配置RM节点和数据传输方式。
& lt配置& gt
& lt属性& gt
& lt名称& gtyarn . resource ***nager . hostname </name >
& lt值& gts126 & lt/value >
& lt/property >
& lt属性& gt
& lt名称& gtyarn . node ***nager . aux-services </name >
& lt值& gt***preduce _ shuffle & lt/value >
& lt/property >
& lt/configuration >
6.[slaves]配置datanode和NM节点
s201
s202
s203
5.主机格式化文件系统
只有文件系统需要在主机上格式化(xcall删除数据目录/tmp/hadoop*、日志文件/logs/*)
启动hdfs文件系统和yarn框架
Xcall查看启动是否成功/查看网页
步骤3:配置项目。
1.将文件(wordcount.txt)上传到hdfs。
将本地文件放入Hdfs目录
hdfs dfs -put wordCount2.txt /user
2.运行任务
Hadoop jar jar包com . zdjy . bigdata . word count . Hadoop . word count apph DFS输入文件
Hdfs输出目录
Hadoop jar word count . jar com . zdjy . word count app/user/word count 2 . txt/SAA
3.检查结果。
HDFS DFS–卡特彼勒HDFS输出目录中的文本文件(hdfs dfs -cat /saa/*)
4.关闭文件系统。
HDFS DFS-mkdir/用户
hdfs dfs -ls -R /
HDFS-DFS-put word count 2 . txt/user
hdfs dfs -put wordCount2.txt /user
hdfs dfs -ls -R /
hadoop jar字数-0.0.1-SNAPSHOT.jar
com . zdjy . bigdata . word count . Hadoop . word count app
/user/wordCount2.txt /out
hdfs dfs -cat /out/*
5.在浏览器上看网页(sudo systemctl停止防火墙d关闭防火墙)
http://192.168.12.206:50070
文件系统:50070
纱线:8088
Ssh登录无密码,并手动启动每个进程。
设置ssh免密登录的原因:我们start-dfs.sh/start-yarn.sh都是通过ssh远程控制每台主机进程的启动。
[start-dfs.sh]
if[-n " $ HADOOP _ SECURE _ DN _ USER "];然后
回声
尝试启动安全群集,跳过数据节点
"以root用户身份运行start-secure-dns.sh来完成启动."
其他
" $ HADOOP _ PREFIX/***in/HADOOP-daemons . sh "
-config " $ HADOOP _ CONF _目录"
-脚本" $bin/hdfs "启动datanode $dataStartOpt
船方不负担装货费用
[Hadoop-daemons.sh]
exec " $ bin/slaves . sh "-config $ HADOOP _ CONF _目录cd " $ HADOOP _前缀";" $ bin/HADOOP-daemon . sh "-config $ HADOOP _ CONF _目录" $@ "
[slaves.sh]
对于$SL***E_NAMES中的SL***E;做
ssh $ HADOOP _ SSH _ OPTS $ slave # 34${@// / }"
2 & gt& amp1 | sed“s/^/$slave:/”&
if [ "$HADOOP_SL***E_SLEEP "!= "" ];然后
睡眠$HADOOP_SL***E_SLEEP
船方不负担装货费用
完成的
我们手动启动每个流程。
启动主机名节点
hadoop-daemon.sh启动namenode
为所有计算机手动启动datnode。
hadoop-daemon.sh启动datanode
在主机上手动启动datanode
ssh s202“source/etc/profile && amphadoop-daemon.sh启动datanode "
脚本启动主机上的所有datanode。
hadoop-daemons.sh启动datanode
在主机上启动secondarynamenode
启动主机资源管理器
yarn-daemon.sh启动资源管理器
所有机器都启动节点管理器。
yarn-daemon.sh启动节点管理器
启动主机上的所有节点管理器。
yarn-daemons.sh启动节点管理器
start-dfs.sh=NN,DNs,2NN
开始纱线。sh=RM,NMs
start-all . sh = start-DFS . sh && ampstart-yarn.sh
本文来自不茫然未来投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/559695.html