Hadoop,zookeeper,HBase,Spack集群环境搭建【面试+工作】

Hadoop,zookeeper,HBase,Spark集群环境搭建【面试+工作】

hadoop、zookeeper、hbase、spark集群环境搭建

文详细讲解如何搭建hadoop、zookeeper、hbase和spark的集群环境,这里我是在本地虚拟机上搭建的集群,但是和实际环境的配置差不多。我会从零开始搭建并且尽量写得详细,所以还会讲到很多配置linux环境的东西,希望大家不要烦,务必按照步骤一步步做下去。 本文主要讲了以下内容:

  1. Linux系统的一些基础配置
  2. 安装jdk
  3. 配置SSH免登陆
  4. hadoop的安装和配置
  5. zookeeper集群的安装配置
  6. hbase的安装和配置
  7. spark的安装和配置

1 使用Vmware安装Linux系统

这个很easy,软件和操作步骤请自行搜索,我安装的ubuntu系统,三个主机的名称分别是master、slave1、slave2,用户名统一都是trigl,后面设置ssh免登录需要用户名是相同的否则就会出错。后面的很多配置这三台主机都是相同的,直接复制配置文件即可,这里教大家一下不同主机之间传输文件(文件夹)的命令:

如将master的jdk的tar包传给slave1,命令如下:

2 安装xshell和xftp

xshell用于连接linux系统并输入命令,xftp用于向linux系统传输文件,安装比较简单,请自行搜索。 我安装了ubuntu系统后首次用xshell连接是连不上的,如图:

这是由于新装的系统没有ssh服务,使用下面命令下载安装:

安装完成以后用xshell就可以连接上了

3 解决ubuntu自带VI编辑器不好用的问题

使用ubuntu自带的vi来编辑文件的时候,方向键会变成ABCD,解决方法如下: 编辑 /etc/vim/vimrc.tiny ,将“set compatible”改为“set nocompatible”,在这句话的下面加上“set backspace=2”,如下:

4 分别修改三台主机的hosts文件和主机名

1、修改hosts文件 编辑hosts文件:

添加下面内容:

这样就配置好了域名,在后面配置需要ip时我们可以直接用域名来方便地替换ip。

2、修改主机名 分别修改三台主机 /etc/hostname 的内容为master、slave1、slave2

注意主机名和hosts文件中设置的名称应当保持一致,否则会产生意外的错误

5 关闭防火墙

1、关闭命令

2、查看防火墙状态

6 设置NTP时间同步

为了保证集群内的时间是一致的,我们可以将其中的一台主机作为时间服务器,其他主机设置定时任务每天与时间服务器同步一次时间

6.1 配置某台主机为ntp时间服务器

1、安装ntp

2、修改配置文件/etc/ntp.conf

3、手动同步

4、启动服务

5、开机启动

6.2 配置其他主机为ntp客户端

1、安装ntp

2、修改配置文件/etc/ntp.conf

3、安装使用定时器crontab

微信公众号中搜索此文章

4、编辑定时器任务

添加如下内容:

7 修改最大线程数

Linux默认有一个最大线程数,线程数不能超过这个值,可以使用以下命令查看:

默认是1024,hadoop集群跑任务的时候会需要同时创建很多线程,有时候会超过1024,所以最好将该参数改的大一点

1、修改文件/etc/security/limits.d/90-nproc.conf

2、修改文件/etc/security/limits.conf,添加内容:

8 新建安装目录并更改所属用户和组

1、新建应用的安装目录

2、更改该安装目录所属用户和组 例如将目录归属为trigl用户和trigl用户组:

对slave1和slave2做相同操作,更改用户和组以后对该目录就有了所有权限,后续输入命令不再需要加sudo了

9 安装jdk

hadoop等的搭建都依赖于jdk,所以需要先安装jdk

1、到官网下载jdk:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html,我下载的是 jdk-7u75-linux-x64.tar.gz

2、下载好的tar包放在 /data/install/java 目录并解压:

3、配置环境变量 首先进入编辑Linux配置环境变量的文件:

在里面添加如下内容:

4、使环境变量立刻生效:

10 配置SSH免登陆

关于为什么需要配置SSH免登陆请看SSH免密详解文章

1、生成SSH的公钥,命令如下,三台主机都要执行一次:

让输入内容直接回车即可,执行以后会在 /home/trigl/.ssh/(家目录/.ssh) 下生成id_rsa和id_rsa.pub文件

2、将主机slave1和slave2在上一步骤生成的id_rsa.pub文件传到主机master的 /home/trigl/.ssh/ 下面,为了防止覆盖,重命名为id_rsa.pub.slave1和id_rsa.pub.slave2

3、在主机master的 /home/trigl/.ssh/ 目录下分别将id_rsa.pub、id_rsa.pub.slave1和id_rsa.pub.slave2追加到authorized_keys文件中

这样就生成了一个可以同时验证master、slave1和slave2的公钥文件

4、将上一步生成的authorized_keys文件分别传到slave1和slave2的/home/trigl/.ssh/下面

5、验证 验证master连接slave1:

如果没有让输入密码且成功切换到slave1的终端,说明配置成功,验证连接slave2类似

2016.11.25更新:注意如果是在Centos系统下还需要更改文件权限

11 hadoop的安装和配置

1、下载hadoop 首先到Apache官网(http://www.apache.org/dyn/closer.cgi/hadoop/common/)复制下载地址,然后进入 /data/install/apache 目录下面执行以下命令直接进行下载:

下载完成后进行解压:

2、配置hadoop 进入hadoop的配置目录:

需要修改的配置文件为:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves、hadoop-env.sh、yarn-env.sh

core-site.xml

hdfs-site.xml

yarn-site.xml

mapred-site.xml

通过cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml创建etc/hadoop/mapred-site.xml,内容改为如下:

slaves

hadoop-env.sh和yarn-env.sh

配置文件修改完以后,将master下hadoop文件夹复制到slave1和slave2中

3、运行hadoop

启动hadoop的命令都在master上执行

(1)初始化hadoop(清空hdfs数据):

(2)启停hdfs:

验证是否启动成功,在master输入 jps,应当存在namenode和secondary namenode

在slave1和slave2输入jps,应当存在datanode

进一步验证,访问:http://192.168.79.131:50070/dfshealth.html(192.168.79.131是master的ip),如图:

(3)启停yarn

在master输入 jps,应当存在resourcemanager

在slave1和slave2输入jps,应当存在nodemanager

访问:http://192.168.79.131:8088/cluster

(4)启停JobHistory(查看MapReduce任务)

在master输入 jps,应当存在JobHistory

12 zookeeper集群的安装配置

1、下载 到http://apache.fayea.com/zookeeper/stable/下载安装包并解压:

2、配置

(1)建立数据目录

(2)进入conf目录创建并修改zoo.cfg文件

修改以后的内容为:

这里还需要在数据目录/data/install/apache/zookeeper-3.4.9/data下面新建名为myid的文件,各个主机对应的内容是不同的,master的内容是0,slave1的内容是1,slave2的内容是2,分别对应server.x中的x

(3)设置环境变量:/etc/profile添加如下内容

别忘了source一下让环境变量生效

3、启停zookeeper

在各个节点执行以下命令:

输入jps检测一下:

查看各个主机的状态:

这里如果报错:

bin/zkServer.sh: 81: /data/install/apache/zookeeper-3.4.9/bin/zkEnv.sh: Syntax error: "(" unexpected (expecting "fi")

搜索文章查看详情:

Ubuntu zookeeper-3.5.0-alpha启动错误 zkEnv.sh: Syntax error: "(" unexpected (expecting "fi")

13 hbase的安装和配置

1、下载 首先到http://apache.fayea.com/hbase/stable/下载稳定版安装包并解压:

2、配置

主要修改conf目录下的三个文件:hbase-env.sh、hbase-site.xml、regionservers

hbase-env.sh

hbase-site.xml

regionservers

2016.11.25更新:还需要同步集群时间,否则有的从节点无法启动,在每个节点上运行ntp即可

3、启停hbase

master输入jps:

slave1和slave2输入jps:

访问:http://192.168.79.131:16010

4、hbase的一些基本命令

首先进入hbase shell

(1)创建表

(2)添加记录

(3)查看记录

(4)查看表中的记录总数

(5)删除记录

(6)删除一张表

(7)查看所有记录

14 spark的安装和配置

1、下载 首先在http://spark.apache.org/downloads.html下载指定hadoop版本的安装包,然后解压缩

2、配置

创建并修改conf目录下的配置文件 spark-env.sh,slaves

spark-env.sh

修改内容为:

slaves

修改内容为:

3、启停spark

在master上输入jps:

在slave1和slave2上输入jps:

访问:http://192.168.79.131:8080/


以上,就完成了整个集群环境的搭建

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2018-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白鼠

Ionic3 自动化发布

本文主要介绍使用Jenkins实现app应用的自动打包发布。每次执行jenkins任务的时候,大概流程如下:打包app应用》将app应用作为邮件附件发送给件给客...

9820
来自专栏雨过天晴

原 荐 IntelliJ IDEA系列编辑器

39330
来自专栏linux运维学习

linux学习第四十八篇:php-fpm的pool,php-fpm慢执行日志,定义open_basedir,php-fpm进程管理

php-fpm的pool Nginx可以配置多个虚拟主机,php-fpm同样也支持配置多个pool,每一个pool可以监听一个端口,也可以监听一个socket...

21450
来自专栏刺客博客

Linux下使用mysqldump进行数据库备份恢复

mysqldump -uroot -proot  --databases data >1.sql

1.2K20
来自专栏web编程技术分享

【php增删改查实例】第二十五节 - 在main.php中显示头像

20630
来自专栏用户2442861的专栏

局域网聊天工具(可发送图片与文件)

http://blog.csdn.net/sunshinestation/article/details/4437404

94010
来自专栏前端vue

编写接口连接并查询数据库数据(二)

安装测试工具postman 不想下载软件的话可以用谷歌插件postman 这个东西是测试用的,不需要的可以不下载

1.1K10
来自专栏JAVA同学会

nginx的基础应用(续)

上一篇文章我们介绍了nginx的基础应用,其中讲到了nginx作为代理服务器的使用,但是漏了一个重要的,也是使用非常普遍的特性——负载均衡。今天,我们将这段内容...

11360
来自专栏北京马哥教育

一次linux服务器被黑客入侵后的处理

场景: 周一上班centos服务器ssh不可用,web和数据库等应用不响应。好在vnc可以登录 使用last命令查询,2号之前的登录信息已被清空,并且sshd文...

42390
来自专栏电光石火

如何让nginx显示文件夹目录

1. 如何让nginx显示文件夹目录 vi /etc/nginx/conf.d/default.conf 添加如下内容: location / ...

219100

扫码关注云+社区

领取腾讯云代金券