音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

手把手教你在腾讯云上搭建hadoop3.x伪集群的方法
日期:2020-07-03 12:01:04   来源:脚本之家

一、环境准备

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

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://腾讯云内网ip地址:9820</value>
  </property>
 
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/centos/module/hadoop-3.1.3/data/tmp</value>
  </property>
	<!-- 通过web界面操作hdfs的权限 -->
  <property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
  </property>
    <!-- 后面hive的兼容性配置 -->
  <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
    </property>
</configuration>

$ vim hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>腾讯云内网ip地址:9868</value>
  </property>
</configuration>

$ vim hadoop-env.sh

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

$ vim yarn-site.xml

<configuration>

  <!-- Reducer获取数据的方式-->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <!-- 指定YARN的ResourceManager的地址-->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
<!-- 环境变量通过从NodeManagers的容器继承的环境属性,对于mapreduce应用程序,除了默认值 hadoop op_mapred_home应该被添加外。属性值 还有如下-->
  <property>
    <name>yarn.nodemanager.env-whitelist</name>
 <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    <!-- 解决Yarn在执行程序遇到超出虚拟内存限制,Container被kill -->
  <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
    <!-- 后面hive的兼容性配置 -->
  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>512</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
    </property>
  
  <!-- 开启日志聚集 -->
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
  <!-- 访问路径-->
  <property> 
    <name>yarn.log.server.url</name> 
    <value>http://172.17.0.13:19888/jobhistory/logs</value>
  </property>
  <!-- 保存的时间7天 -->
  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
  </property>
</configuration>

配置历史服务器

$ vim mapred-site.xml

<!-- 历史服务器端地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>腾讯云内网ip:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>腾讯云内网ip:19888</value>
</property>

初始化

第一次启动需要格式化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也是不可以的。这个在虚拟机安装时并没有发生过,我还在研究怎么回事。如果有大神知道怎么回事,可以留言说一下哈

到此这篇关于手把手教你在腾讯云上搭建hadoop3.x伪集群的方法的文章就介绍到这了,更多相关腾讯云搭建hadoop3.x伪集群内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    WIN服务器linux服务器FTP服务器DNS服务器其他