IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 云服务器搭建 hadoop集群(全过程详解&解决碰到的问题) -> 正文阅读

[大数据]云服务器搭建 hadoop集群(全过程详解&解决碰到的问题)

该hadoop集群
采用三台真实的部署在公网的服务器(系统为centos)进行分布式搭建。(两台腾讯云,一台阿里云)
过程中遇到问题可以翻到最下方,或者评论区留言。

先建立ip映射,由于是云端服务器,则直接使用真实的公网ip。每台服务器内均配置此文件。

vim /etc/host

在这里插入图片描述
(ps:对应的服务器对自己操作时最好用自己的内网ip,例如centos01的配置文件:
在这里插入图片描述
此处的10.0.16.6为云服务器商提供的内网地址
如果不改可能导致namenode无法启动。因为对内操作要用内网地址。

ping一下其他两个设备,发现没有问题。可以-n指定包数,也可以ctrl+c手动终止。
在这里插入图片描述

创建两个文件夹,softwares用于存储压缩包。moudules存储解压后的文件(jdk,hadoop)

sudo mkdir /opt/softwares
sudo mkdir /opt/modules

查看全局配置文件(添加环境变量)

vim /etc/profile

配置文件如下(每台服务器内均配置此文件。)
在这里插入图片描述

export JAVA_HOME=/opt/modules/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

export HADOOP_HOME=/opt/modules/hadoop-2.10.0
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

先修改centos01配置文件如下
在这里插入图片描述
再传给centos02,03
注意:如果如果用的不是hadoop用户记得更改用户名(例如root)
在这里插入图片描述
配置文件具体如下
/opt/modules/hadoop-2.10.0/hadoop 目录下
向hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中 添加jdk环境变量

export JAVA_HOME=/opt/modules/jdk1.8.0_241
export JAVA_HOME=/opt/modules/jdk1.8.0_241

hadoop集群又分为HDFS集群、YARN集群

具体可参考hadoop集群概述,我的另一篇博客。
然后我们分别配置HDFS集群、YARN集群。

配置HDFS集群

core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://centos01:9000</value>
        </property>
<property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/modules/hadoop-2.10.0/tmp</value>
        </property>
</configuration>

hdfs-site.xml

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.permission.enabled</name>
                <value>false</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/opt/modules/hadoop-2.10.0/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/opt/modules/hadoop-2.10.0/tmp/dfs/data</value>
        </property>
</configuration>

slaves

centos01
centos02
centos03

配置YARN集群

复制mapred-site.xml.template文件并重命名为mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

在文件mapred-site.xml插入如下内容

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>centos01:8032</value>
        </property>
</configuration>

在centos01中配置完成后,并且配置文件传给centos02,centos03后,
分别查看三台服务器的jdk和hadoop是否安装成功。

java -version
hadoop version

centos01
在这里插入图片描述
centos02
在这里插入图片描述
centos03
在这里插入图片描述
发现没有问题。

在centos01节点下格式化NameNode

hdfs namenode -format

格式化完毕后用如下命令

start-all.sh

启动所有节点
结果如下图
在这里插入图片描述
最后

jps查看各服务器状态
centos01
在这里插入图片描述

centos02(最下面那个和本次实验无关)
在这里插入图片描述
centos03
在这里插入图片描述
done!

ps:
中间也出现了需多问题,可以看看你是否也有相同问题
1.Exception in thread “main” java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal to have multiple roots (start tag in epilog?).
at [row,col,system-id]: [21,2,“file:/opt/modules/hadoop-2.10.0/etc/hadoop/yarn-site.xml”]在这里插入图片描述
这个问题时configuration过多,更改配置不是像改配置文件向配置文件中添加环境变量一样在最下方添加即可,而是要加在configuration标签之间(或者dn(行数)d删除掉原本的configuration,然后直接粘贴全部配置),要符合xml格式也要符合这个规则。
2
类似于如下报错的
centos03***************
caused by ****** /opt/modules/hadoop-2.10.0/etc/hadoop: No such file or directory
这种原因则是因为传输时导致文件缺失,传输中断等原因。
我一开始使用xftp传输到centos03(边scp到02,这样快),但这么做会有权限问题,chmod -R 777后 解决权限问题,但是依然缺少路径,所以我又使用了centos02的方法 scp****,最后断网后传输好像中断了,又传输了一遍,终于启动后没有这个报错了,我在centos03中直接cd 报错的路径也是没有问题了。
3
其他无法启动或启动失败的问题

可以考虑删除core配置文件下配置的hadoop的临时文件,然后重新装配NameNode。
再启动
4
Caused by: java.net.BindException: Cannot assign requested address: JVM_Bind
一开始namenode无法启动,查看日志后发现了这个错误,这个错误主要是ip问题或者端口问题。
我这边是修改了hosts文件centos01的ip地址为自己的内网ip。就可以正常启动了。

云服务器相关问题

1
ping 不通
可能是因为安全组没有开放ICMP协议,或者某个端口没开放(只有华为云有这个问题),我开放了全部安全组后就可以ping通了。
2
使用xftp 这种linux->linux,windows->linux的文件传输软件时,要考虑权限问题。有时chmod -R 777 dir 能解决问题,有时不能。
3

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:21:05  更:2022-03-03 16:24:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:06:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码