手把手教你在腾讯云上搭建hadoop3.x伪集群的方法

一、环境准备

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伪集群内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 腾讯云主机安装LNMP环境及wordpress教程

    许多云主机都有学生优惠,于是我趁着现在大一买了个腾讯1元云主机+免费cn域名(高中生的话就别想了).鉴于我只知道用服务器安装博客,别的用途不了解,所以我就去安装wordpress. 而由于我看的教程有点问题,有的问题搜索引擎解决不了,我要么瞎折腾整好了,要么重装系统,最后一次挺顺利,半小时左右装好,但后续还有各种问题,一个个解决掉了.于是记录下来方便后(面要搭博客的)人.我参考的教程阿里云Centos7安装LNMP环境和wordpress(有点坑,但还是不错的). LNMP=Linux+Ngin

  • 腾讯云上免费部署HTTPS的方法步骤

    最近在写微信小程序的时候,微信小程序需要所有的请求接口都部署在https协议上,于是就研究了一下怎么在腾讯云上部署https环境,发现还是比较简单的,首先我的服务器环境是Ubuntu 16.04, LAMP的环境. 获取SSL证书 腾讯云的SSL证书服务中,域名型的(DV)SSL证书是免费的,那么我们这次主要是申请这个证书,如需其他类型证书,也请付费申请. 进入SSL证书管理控制台,点击申请证书 能看到如图所示的申请表单: 填上申请信息后,等待大概一个小时左右,证书就能申请下来.接着在云解析里配

  • 腾讯云Ubuntu14.04安装Tomcat8教程

    一. tomcat-8.0.42 利用FTP将下载好的Tomcat放到/home/ubuntu/Downloads/ 二. 压缩包解压 #tar zvxf ~/Downloads/apache-tomcat-8.0.42.tar 三. 将这个文件夹到opt文件 sudo cp -r apache-tomcat-8.0.33 /home/opt 四. 配置Tomcart环境变量 首先我得jdk 路径 /usr/lib/jvm/Java-8-Oracle 设置系统的环境变量 vi ./bin/sta

  • 腾讯云(ubuntu)下安装 nodejs + 实现 Nginx 反向代理服务器

    本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理. 笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑,可以按本文的步骤进行安装部署. 一. 新版 nodejs 安装 这里强烈推荐使用 nvm (Node版本管理器),其它方式的安装或多或少都有些问题. 具体步骤如下: 1. 通过 git 指令下载nvm 执行指令如下,我们把nvm下载到 /root/git/ 中去(记得要先安装 git): [roo

  • 基于腾讯云服务器部署微信小程序后台服务(Python+Django)

    一 前言 微信小程序,相信大家早已熟知,它是一种无需下载安装即可使用的轻型应用,具有跨平台和接近 Native App 性能体验的优势.从开发模式上说,它是前后端分离的,微信小程序负责实现前端应用,后端服务可以使用任何你说熟知的开发语言,如 PHP . NodeJs . Java . C# . Python 等,因而,微信小程序的开发文档主要是围绕 WXML . WXSS 等前端框架.组件或样式布局进行讲解,几乎看不到后端技术的身影.本文主要介绍如何在腾讯云服务器上部署 Python+Djang

  • 腾讯云CentOS 6.6快速安装 Nginx服务器图文教程

    一.下载Nginx 从Nginx的官网(http://nginx.org/en/download.html)下载Nginx的最新版本,这里我下载的是nginx-1.9.12. 下载完成后,得到一个如下图所示的压缩包 上传nginx的tar包到Linux服务器上,如下图所示: 二.安装Nginx 2.1.安装前提 在安装Nginx前,需要确保系统安装了g++,gcc, openssl-devel.pcre-devel和zlib-devel软件. 1.安装必须软件:yum -y install zl

  • 腾讯云服务器Centos挂载数据盘的方法

    第一.检查硬盘设备是否有数据盘 # 先执行 fdisk -l # 以下是执行结果 Disk /dev/vda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/op

  • 手把手教你在腾讯云上搭建hadoop3.x伪集群的方法

    一.环境准备 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.

  • 手把手教你在腾讯云上搭建hive3.1.2的方法

    环境准备 所有操作开始前,先确定hadoop版本已经装好.具体可以看我的另一篇博客 搭建hadoop3.x mysql安装 先把安装包放到software文件夹,并解压到mysql-lib中 [root@master software]# ll 总用量 1422372 -rw-r--r-- 1 root root 312850286 7月 2 15:00 apache-hive-3.1.2-bin.tar.gz -rw-r--r-- 1 root root 338075860 7月 2 09:3

  • 腾讯云服务器搭建Jenkins详细介绍

    目录 一.连接腾讯云服务器 第二步:安装Tomcat 三.Jenkins部署 四.Jenkins安装 一.连接腾讯云服务器 1.Mac:(以ssh连接为例) 注意:IP地址为公网地址 ssh 用户名@IP地址 2.Windonws连接:详细说明 二.环境准备 第一步:安装Java 选择需要的java版本 yum list | grep openjdk 下载对应版本的java yum install java-1.8.0-openjdk.x86_64 第二步:安装Tomcat 可以选择要下载的版本

  • 教你在virtualBox搭建一个本地kubernets集群问题

    目录 1. 虚拟机准备工作 1.1 下载centos7的镜像 1.2 关闭sawp内存空间 1.3 关闭 SeLinux 1.4 配置桥接模式 1.5 安装增强功能 1.6 XSHELL连接SSH 2. 安装docker 2.1 卸载旧的docker版本 2.2 配置阿里的镜像仓库 2.3 安装最新版本的 Docker Engine 和 containerd 2.5 避免和kubelet的冲突 3. 安装kubernetes 3.2 配置kubernetes的yum源 3.3 启动 kubele

  • 在Ubuntu 16.04上用Docker Swarm和DigitalOcean创建一个Docker容器集群的方法

    介绍 Docker Swarm是用于部署Docker主机集群的Docker本地解决方案.您可以使用它来快速部署在本地计算机或受支持的云平台上运行的Docker主机集群. 在Docker 1.12之前,设置和部署Docker主机集群需要使用外部键值存储(如etcd或Consul)来进行服务发现.但是,使用Docker 1.12,不再需要外部发现服务,因为Docker提供了一个内置的键值存储,可以开箱即用. 在本教程中,您将了解如何使用Docker 1.12上的Swarm功能部署一组Docker机器

  • 在linux上搭建Solr集群的方法

    什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求. SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心. Solr集群的系统架构 需要实现的solr集群架构 Zooke

  • 在K8s上部署Redis集群的方法步骤

    一.前言 架构原理:每个Master都可以拥有多个Slave.当Master下线后,Redis集群会从多个Slave中选举出一个新的Master作为替代,而旧Master重新上线后变成新Master的Slave. 二.准备操作 本次部署主要基于该项目:https://github.com/zuxqoj/kubernetes-redis-cluster 其包含了两种部署Redis集群的方式: StatefulSet Service&Deployment 两种方式各有优劣,对于像Redis.Mong

  • CentOS上搭建PHP服务器环境的步骤与方法

    本文实例讲述了CentOS上搭建PHP服务器环境的步骤与方法.分享给大家供大家参考,具体如下: 安装apache: yum install httpd httpd-devel 启动apache: /etc/init.d/httpd start 此时输入服务器的IP地址,应该看到apache的服务页面,端口不用输,apache默认就是使用80端口 安装mysql: yum install mysql mysql-server 启动mysql: /etc/init.d/mysqld start 安装

  • 在 RHEL8 /CentOS8 上建立多节点 Elastic stack 集群的方法

    Elastic stack 俗称 ELK stack,是一组包括 Elasticsearch.Logstash 和 Kibana 在内的开源产品.Elastic Stack 由 Elastic 公司开发和维护.使用 Elastic stack,可以将系统日志发送到 Logstash,它是一个数据收集引擎,接受来自可能任何来源的日志或数据,并对日志进行归一化,然后将日志转发到 Elasticsearch,用于分析.索引.搜索和存储,最后使用 Kibana 表示为可视化数据,使用 Kibana,我们

随机推荐