手把手教你在腾讯云上搭建hadoop3.x伪集群的方法(云服务器搭建hadoop集群)

admin 183 2022-08-05

阿里云服务器优惠多,折扣错,惊喜多,请咨询:www.wqiis.com

手把手教你在腾讯云上搭建hadoop3.x伪集群的方法(云服务器搭建hadoop集群)

一、环境准备

手把手教你在腾讯云上搭建hadoop3.x伪集群的方法(云服务器搭建hadoop集群)

CentOS Linux release 7.5.1804 (Core) 系统下

安装

创建文件夹

$ cd /home/centos $ mkdir software $ mkdir module

将安装包导入software文件夹

$ cd software # 然后把文件拖进去即可

这里使用的安装包是

/home/centos/software/hadoop-3.1.3.tar.gz

/home/centos/software/jdk-8u212-linux-x64.tar.gz

$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C ../module $ tar -zxvf hadoop-3.1.3.tar.gz -C ../module

配置环境变量

$ cd /etc/profile.d/ $ vim my_env.sh

为了不污染系统变量,我们自己创建一个环境变量的脚本,配置内容如下

#JAVA_HOME,PATH # export 提升为全局变量,如果你的路径和我不同,记得这里要使用自己的路径哦 export JAVA_HOME=/home/centos/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin #HADOOP_HOME export HADOOP_HOME=/home/centos/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin

然后保存退出(这里不会的话可以看下vim基础使用,不再赘述了)。

我们source一下,使环境变量生效

$ source /etc/profile

测试一下,看看是否成功

$ hadoop version

$ java

出现以上界面就是没问题了,如果还没成功可以做以下两项检查:

去java和hadoop的安装目录下的bin目录,分别运行,看是否成功。如果不成功,说明安装包解压缩有问题,软件本身就没安装成功。删掉重新安装。 如果运行成功了,说明是环境变量没有配置成功。那么可以检查一下环境变量的路径设置,如果没问题的话,那重启试试~

ssh免密

虽然是伪集群,但是本机连接本机的时候还是会需要密码的,所以要设置一下ssh免密

$ ssh-keygen -t rsa

出现提示就不停的按回车即可,生成完秘钥后

$ ssh-copy-id 本机hostname

配置host文件

vi /etc/hosts #这里我保留的配置为,其中master配置的是腾讯云的内网, 如果配置外网会导致eclipse客户端连不上hadoop ::1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 172.16.0.3 master 127.0.0.1 localhost

修改主机名

vi /etc/sysconfig/network #修改HOSTNAME为master HOSTNAME=master

修改hostname

$ hostnamectl --static set-hostname master

关闭防火墙

$ systemctl disable firewalld #永久

二、配置hadoop

配置文件

进入hadoop的配置文件专区,所有配置文件都在这个文件夹

$ cd /home/centos/module/hadoop-3.1.3/etc/hadoop

我们要配置的文件主要

core-site.xml

fs.defaultFS是本机的访问路径; hadoop.tmp.dir是数据的保存路径 内网地址不知道的去腾讯云网站上查一下

hdfs-site.xml

dfs.replication是指数据的副本数,默认是3 我们设置为1,因为是伪集群嘛

yarn-site.xml mapred-site.xml hadoop-env.sh

expert JAVA_HOME=你的jdk安装路径

那接下来就按照步骤操作吧!

$ vim core-site.xml

fs.defaultFS hdfs://腾讯云内网ip地址:9820 hadoop.tmp.dir /home/centos/module/hadoop-3.1.3/data/tmp hadoop.http.staticuser.user root hadoop.proxyuser.root.hosts * hadoop.proxyuser.root.groups *

$ vim hdfs-site.xml

dfs.replication 1 dfs.namenode.secondary.http-address 腾讯云内网ip地址:9868

$ vim hadoop-env.sh

export JAVA_HOME=/home/centos/module/jdk1.8.0_212

$ vim yarn-site.xml

yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname master yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false yarn.scheduler.minimum-allocation-mb 512 yarn.scheduler.maximum-allocation-mb 4096 yarn.nodemanager.resource.memory-mb 4096 yarn.log-aggregation-enable true yarn.log.server.url http://172.17.0.13:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800

配置历史服务器

$ vim mapred-site.xml

mapreduce.jobhistory.address 腾讯云内网ip:10020 mapreduce.jobhistory.webapp.address 腾讯云内网ip:19888

初始化

第一次启动需要格式化NameNode,后面就不需要啦

$ hdfs namenode -format

初始化后,可以看到hadoop安装文件夹中,出现了data和logs两个文件夹,这样就是初始化成功了

接下来看下启动集群

$ start-dfs.sh

启动完毕,没有异常信息,查看一下进程

[root@VM_0_13_centos hadoop]# jps 20032 Jps 30900 DataNode 31355 SecondaryNameNode 30559 NameNode

全部启动成功~!

一键启动

上面都没问题后,可以做一个脚本一键启动集群,在bin目录下新建

$ vim mycluster

添加如下内容

#!/bin/bash case $1 in "start") #dfs yarn history start-dfs.sh start-yarn.sh mapred --daemon start historyserver ;; "stop") # dfs yarn history stop-dfs.sh stop-yarn.sh mapred --daemon stop historyserver ;; *) echo "args is error! please input start or stop" ;; esac

配置脚本的权限

$ chmod u+x mycluster

使用脚本启动

$ mycluster start $ jps 23680 NodeManager 24129 JobHistoryServer 22417 DataNode 24420 Jps 22023 NameNode 23384 ResourceManager 22891 SecondaryNameNode

三、查看hdfs

配置安全组规则

在进行以下操作前,现在安全组规则中的协议端口中,加入以下要使用的端口

端口号:

Namenode ports: 9870 Secondary NN ports: 9868 JobHistory:19888

hadoop web页面

在浏览器输入:腾讯云公网地址:端口号,即可进入对应的web界面

这是我们发现Secondary NameNode的界面显示不太正常,这是由于hadoop3中dfs-dust.js的时间函数使用有误。我们手动改正一下。

首先关闭集群

$ mycluster stop

修改文件

$ vim /home/centos/module/hadoop-3.1.3/share/hadoop/hdfs/webapps/static/dfs-dust.js

约61行的位置,如图所示,更改为:

return new Date(Number(v)).toLocaleString();

此时我们再启动集群

$ mycluster start

可以看到Secondary NameNode的web界面已经正常了

测试hdfs

那我们来上传文件玩一玩吧

在hadoop目录下新建一个文件夹

$ mkdir temdatas

进入文件夹,新建一个测试文件

$ vim text.txt

内容随便写吧,写好保存,我们开始上传文件

$ hdfs dfs -put text.txt /

查看一下web页面,上传成功了~

再尝试把这个文件down下来

$ hdfs dfs -get /text.txt ./text1.txt

成功~ 至此hadoop集群搭建完毕,可以自己耍一些好玩的事啦~!

WordCount案例实操

在web端新建文件夹 input

在其中上传一个自己写的各种单词的文件,做单词统计

#或者自己在vim中写好上传也可 $ hdfs dfs -put wordcount.txt /input

然后测试一下wordcount案例,注意输出文件夹不能存在

$ hadoop jar /home/centos/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

运行完之后,我们看一下结果

#拉取hdfs文件 [root@master mydata]# hdfs dfs -get /output ./ #查看结果 [root@master output]# cat part-r-00000 a 2 b 3 c 2 d 1 e 1 f 1

至此,你已经可以自由的玩耍hadoop啦。

当然,如果你已经尝试了的话,会发现,还有一个小问题没有解决,就是在web端点击文件查看head或tail时,会发生无法查看的情况,download也是不可以的。这个在虚拟机安装时并没有发生过,我还在研究怎么回事。如果有大神知道怎么回事,可以留言说一下哈

上一篇:与计算再获殊荣,Atlas 900荣膺工业设计界“奥斯卡”红点奖
下一篇:与书声科技携手探索教育应用创新场景(书声科技有限公司)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~