首页 技术 正文
技术 2022年11月15日
0 收藏 460 点赞 4,456 浏览 4072 个字

本文内容不乏对各大佬的案例借鉴,侵删。

本次实验用到的有虚拟机,Xshell,Hadoop压缩包和jdk压缩包

  hadoop111A:192.168.241.111 hadoop222B:192.168.241.112 hadoop333C:192.168.241.113
HDFS

NameNode

DataNode

DataNode

secondaryNameNode

DataNode

YARN NodeManager

ResourceManager

NodeManager

NodeManager

我这边用的三台虚拟机和对应的IP是:

hadoop111A  192.168.241.111

hadoop222B  192.168.241.112

hadoop333C  192.168.241.113

先在虚拟机里面安装好一个centOS 7,然后把静态IP配置好

先进入 /etc/sysconfig/network-scripts 里面有个名为 ifcfg-ens33 的文件,修改这个文件。

cd /etc/sysconfig/network-scripts
vim ifcfg-ens33

修改这些配置的时候 会由于权限不够,会报错已保存但未修改,我是直接转换成root用户进行修改的,这样一来比较方便。输入命令:su  转换成root用户

把里面没用的内容删掉,保留有用的,我修改的内容是这样的;复制粘贴的时候记得按 i 转为插入模式

DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.241.111
PREFIX=24
GATEWAY=192.168.241.2
DNS1=192.168.241.2
DNS2=8.8.8.8

然后重启网络管理

service NetworkManager restart

现在就可以看看你的IP发生的变化,然后ping一下百度,看看是否能建立数据传输。

现在可以通过xshell链接linux了,接着就是修改主机名

vim /etc/hostname

hadoop111A 就是我这台虚拟机的主机名

这里我们可以先把映射写好,预先写入你另外两台虚拟机的主机名和IP

vim /etc/hosts

然后就是安装Hadoop和jdk,这两个软件包可以去相应的官网下载,值得注意的是,jdk我们要下载1.8版本的,我先前安装的16.0版本的,出现了问题,可能是不兼容吧,我看很多大佬安装的都是1.8版本的,所以我下载了1.8版本安装之后,就没有出现问题了。

我们在Windows上下载好这些软件包之后,可以通过xshell这一些工具传进来,我图方便,就直接拖进虚拟机,然后找到软件包在linux里的位置,进行移动和解压。

安装jdk,因为sentos7自带有jdk,所以我们要将其删除,先查看系统中的jdk

rpm -qa | grep java

这里我们可以看到有1.8和1.7的jdk,我们只需要删除jdk

rpm -e --nodeps jdk名字

软件包的名字可以在上面复制粘贴,运行 rpm -qa | grep java 查看是否删除完毕

现在就是解压jdk了,路径可以自己选,我这边是安装在 /usr/java 里面  用命令解压文件

tar -zxvf jdk软件包名

给jdk添加环境变量,添加在最后面

vim /etc/profile
##JAVA_HOME
JAVA_HOME=/usr/java/jdk1.8.0_291
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib.dt.jar:$JAVA_HOME/lib/tools.jar:$JER_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

应用profile配置

source /etc/profile

查看jkd

java -version

显示有版本号就说明安装成功了

按Hadoop和定义配置文件

和安装jdk一样,先把Hadoop压缩包解压

添加环境变量

vim /etc/profile
##HADOOP_HOME
export HADOOP_HOME=/opt/soft/hadoop/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

进入hadoop的etc里面修改相应的配置文件

配置 core-site.xml

<!--指定namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop111A:8020</value>
</property>
<!-- 指定 Hadoop 运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/soft/hadoop/hadoop-3.3.0/data</value>
</property>

配置 hadoop-env.sh 如果这个不添加,那么hadoop运行的时候就会报错说找不到jdk的位置

export JAVA_HOME=/usr/java/jdk1.8.0_291

配置 hdfs-site.xml

<!--nn web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop111A:9870</value>
</property>
<!-- 2nn web端访问地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop333C:9868</value>
</property>

配置 yarn-site.xml

<!-- 指定 MR 走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop222B</value>
</property>

配置 mapred-site.xml

<!-- 指定 MR 运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

配置 workers

hadoop111A
hadoop222B
hadoop333C

配置完毕后关机,在虚拟机里面完全克隆两台虚拟机,并将其IP和主机名修改好

完事后,进行免密登陆设置,运行指令创建免密登陆密钥

ssh-keygen -t rsa

一路回车下去后,私钥和公钥就在 /root/.ssh 里面建立了

进入这个文件夹就可以看到了

cd /root/.ssh

创建一个名为 authorized_keys 的文件

touch authorized_keys

然后将公钥写进这个文件,三台主机都要进行这样的操作

cat id_rsa.pub >> authorized_keys

期间如果写入不了,那多半是权限不够,这时候我们可以修改下他们的权限

chmod 600 authorized_keys
chmod 700 /root/.ssh

然后用vim打开 authorized_keys 就可以看到密钥了,我就不传来传去了,直接简单粗暴,直接复制粘贴了

然后用ssh链接试试,我这边链接hadoop222B

这样就是链接上了,如个报错说找不到,那就是前面映射没设置好,如果报错无法链接,那就修改下面的配置

修改 /etc/ssh/ssh_config 文件的内容

StrictHostKeyChecking ask打开注释修改为StrictHostKeyChecking no即可

vim /etc/ssh/ssh_config

现在就可以格式化hadoop了

期间没有任何报错,那就是成功了,如果报错意外终止,那就是配置文件里面的标签没打好

在 hadoop/sbin 里面可以看到这些文件

这里我们先启动start-dfs.sh

jps查看一下

hadoop111A启动的是 NameNode 和 DataNode

hadoop222B启动的是 DataNode

hadoop333C启动的是 DataNode 和 SecondaryNameNode

这时候我们就可以打开浏览器访问hadoop111A:9870

然后在hadoop222B中启动

jps查看

对照上面表格的启动项,是一样的就对了,必须要和部署的一摸一样

然后在浏览器里面输入hadoop222B:8088

这样就算是部署好了

如果期间 ResourceManager 启动不了

启动start-dfs.sh报错Attempting to operate on hdfs namenode as root
在/hadoop/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,816
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,899