初学Hadoop:利用VMWare+CentOS7搭建Hadoop集群
一、前言
开始学习数据处理相关的知识了,第一步是搭建一个Hadoop集群。搭建一个分布式集群需要多台电脑,在此我选择采用VMWare+CentOS7搭建一个三台虚拟机组成的Hadoop集群。
注:1.本次搭建环境中操作系统的用户名为hadoop,请自行替换/home/hadoop为本机对应路径。
2.本次用到的软件版本为:
- VMware Workstation 14 Pro 14.1.3 build-9474260
- CentOS 7.5.1804
- Java 1.8.0_181
- Apache Hadoop 2.7.7
二、配置虚拟机
1.配置三台虚拟机
首先创建新的虚拟机,自定义创建,1核1G,网上教程很多不再赘述。
安装完CentOS 7后,如果出现无法连接网络的问题,可以参考https://www.cnblogs.com/sunylat/p/7214753.html这个帖子。参照https://www.cnblogs.com/comexchan/p/5815869.html设置yum的源以后,使用`yum -y update`进行更新。然后关闭虚拟机,选择VMWare的克隆功能克隆两台一样的虚拟机。
2.搭建桌面环境
为了方便丢jar和脚本进去,给打算用来当主机的一台增加一个桌面操作系统。我这里选用GNOME,具体用哪个自己参考。安装命令为 yum groupinstall "GNOME Desktop ,注意引号。安装完毕后,使用 startx 可启动桌面。 Ctrl + Alt + F6 和 Ctrl + Alt + F7 分别对应切换到命令行窗口和切换到图形化界面。
3.配置免密
不配置免密登录在启动集群的时候要一直输密码非常麻烦,为此配置三台机器之间互相免密登录。方法参考 https://blog.csdn.net/lzh_86/article/details/80159104 。
4.安装jdk
先确认一下自己的Java版本,1.8版本可以跳过此步骤,否则去java官网下载1.8版本的jdk并配置环境变量。
5.安装Hadoop
下载目标版本的hadoop的tar文件,这里我安装到/home/hadoop/下,安装完以后出现hadoop-2.7.7文件夹。在一个指定路径(这里我在hadoop安装文件夹下)建立/tmp、/var、/dfs、/dfs/name、/dfs/data这几个文件夹。进入安装目录/etc/hadoop/,修改core-site.xml,在<configuration>节点内加入配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<!-- 刚才设置的tmp文件夹路径 -->
<value>/home/hadoop/hadoop-2.7.7/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<!-- master对应设置的主机,在三台虚拟机内都要重复配置,此时设置为对应虚拟机名 -->
<value>hdfs://master:9000</value>
</property>
</configuration>
接下来修改hadoop-env.sh文件,将`export JAVA_HOME=${JAVA_HOME}`修改为自己的jdk路径。
下一个是hdfs-site.xml文件,同样在<configuration>节点内加入配置
<configuration>
<property>
<name>dfs.name.dir</name>
<!-- 刚才设置的name文件夹路径 -->
<value>/home/lxz/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<!-- 刚才设置的data文件夹路径 -->
<value>/home/lxz/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<!-- hdfs副本数 -->
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<!-- 开启权限检查 -->
</property>
</configuration>
下一步, cp mapred-site.xml.template mapred-site.xml 从模板生成配置文件,修改该文件在<configuration>节点内加入配置:
<configuration>
<property>
<name>mapred.job.tracker</name>
<!-- 修改master为对应主机名 -->
<value>hdfs://master:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<!-- var文件夹位置 -->
<value>/home/lxz/hadoop/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
接下来修改slaves文件,将localhost修改为servent1和servent2。
修改yarn-site.xml文件,在<configuration>节点内加入配置:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<!-- 同理,修改master为对应主机名 -->
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<!-- 每个节点可用内存,单位MB,默认8182MB -->
<value>1024</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
在另外两台分机上重复上述操作。然后进入主机安装目录的bin文件夹下,执行 ./hadoop namenode -format 命令进行初始化,如果只有INFO级别日志则成功。随后进入安装目录下的sbin目录执行 ./start-all.sh 命令.等执行完毕后,可以在浏览器中访问master:50070和master:8088查看是否运行成功。
初学Hadoop:利用VMWare+CentOS7搭建Hadoop集群的更多相关文章
- centos7搭建kafka集群-第二篇
好了,本篇开始部署kafka集群 Zookeeper集群搭建 注:Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群(也可以用kafka自带的ZK,但不推荐) 1.软 ...
- centos7搭建kafka集群
一.安装jdk 1.下载jdk压缩包并移动到/usr/local目录 mv jdk-8u162-linux-x64.tar.gz /usr/local 2.解压 tar -zxvf jdk-8u162 ...
- Centos7搭建zookeeper集群
centos7与之前的版本都不一样,修改主机名在/ect/hostname 和/ect/hosts 这两个文件控制 首先修改/ect/hostname vi /ect/hostname 打开之后的内容 ...
- centos7搭建dolphinscheduler集群
一.简述 Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统.致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用.有 ...
- 【转】centos7 搭建etcd集群
转自http://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html 一.简介 “A highly-available key value store for ...
- CentOS7搭建Storm集群及基础操作
前提 安装Kafka前需要先安装zookeeper集群,集体安装方法请参照我的另一篇文档 Storm安装 下载 wget https://mirrors.tuna.tsinghua.edu.cn/ap ...
- CentOS7 搭建RabbitMQ集群 后台管理 历史消费记录查看
简介 通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接 ...
- CentOS7 搭建 Consul 集群
环境准备: ssh shell工具: 远程连接 三个CentOS示例: 部署集群 配置好各个实例之间的网络访问,以及ssh免密登录. 下载&上传: 1.下载 Consul: Download ...
- CentOS7 搭建 Redis 集群
一.手动搭建 1. 准备节点 节点数量至少为 6 个才能保证组成完整高可用的集群 (1) 目录结构 cluster ├── 9001 │ ├── data │ │ ├── appendon ...
随机推荐
- 3、CSS基本介绍
1.1 CSS基本介绍一.web 标准所谓的web标准指的就是一系列规范网页书写的要求,它是由W3C组织制定,在它里面要求网页的结构.样式.行为三者相分离.二.名词解释1.结构:就是通过HTML标签搭 ...
- Python作业选课系统(第六周)
作业需求: 角色:学校.学员.课程.讲师.完成下面的要求 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 ...
- 统计oracle表中字段的个数
select count(column_name) from user_tab_columns where table_name='emp' dba权限对应的视图是dba_tab_columns 和a ...
- Codeforces 870E Points, Lines and Ready-made Titles 计数
题目链接 题意 给定二维坐标上的\(n\)个点,过每个点可以 画一条水平线 或 画一条竖直线 或 什么都不画,并且若干条重合的直线被看做同一条.问共可能得到多少幅不同的画面? 题解 官方题解 仆の瞎扯 ...
- Django 自定义分页类
分页类代码: class Page(object): ''' 自定义分页类 可以实现Django ORM数据的的分页展示 输出HTML代码: 使用说明: from utils import mypag ...
- C++中string.find()函数,string.find_first_of函数与string::npos
查找字符串a是否包含子串b,不是用strA.find(strB) > 0而是strA.find(strB) != string:nposstring::size_type pos = strA. ...
- udhcpc命令
要使用网络通讯,所以不可避免的要用到dhcp.理想的网络通讯方式是下面3种都要支持: 1,接入已有网络.这便要求可以作为dhcp客户端. 2,作为DHCP服务器,动态分配IP. 简单说下前2种情况. ...
- ActiveMQ-Network of brokers集群模式
概述 在ActiveMQ运行过程中,如果发生某个queue只有生产者没有消费者的情况时,消息就会产生积压.Network of brokers模式通过将积压的消息转发给处于同一network的其它br ...
- java通过jdbc插入中文到mysql显示异常(问号或者乱码)
转自:https://blog.csdn.net/lsr40/article/details/78736855 首先本人菜鸡一个,如果有说错的地方,还请大家指出予批评 对于很多初学者来说,中文字符编码 ...
- intellij idea 远程tomcat 调试
由于在服务器上远程调试风险较高,所以万不得已的情况下 不要这样做.可以本地调试好 再上传到服务器上. 1.关闭防火墙 启动Firewalld,及开机自启. # systemctl start fir ...