集群部署

一、 软件版本信息.......................................................................................................... 1

二、 集群分布信息.......................................................................................................... 2

三、 虚拟机固定ip.......................................................................................................... 2

五、 配置config文件....................................................................................................... 5

六、 配置免密码登陆....................................................................................................... 6

七、 配置java环境.......................................................................................................... 7

八、 配置zookeeper......................................................................................................... 8

九、 配置hadoop............................................................................................................ 11

十、 启动hadoop集群.................................................................................................... 16

十一、 配置hbase.......................................................................................................... 17

十二、 配置hive............................................................................................................ 19

十三、 配置sqoop.......................................................................................................... 21

一、软件版本信息

1.zookeeper:zookeeper-3.4.7

2.hadoop:hadoop-2.7.1

3.hbase:hbase-1.1.2-bin

4.hive:apache-hive-1.0.1

5.sqoop:sqoop-1.4.6

6.jdk:jdk1.8.0_65

二、集群分布信息

三、虚拟机固定ip

1.vitrualbox 配置

在vitrualbox主页面点击管理按钮后找到全局设定,点击

出现如下图所示的小框

点击网络------>点击仅主机模式----->在右边点击+号,新建一个虚拟网卡。

回到vitrualbox主界面

右键点击你所创建的虚拟机(所有虚拟机都要),选择设置。

找到网络并点击,选择网卡2,勾选启动网络连接,连接方式选择仅主机模式,之后点击确定。(所有用来部署集群的机子都要这样子设置)

2.修改interface文件(每台机子都要)

分别进入每一台虚拟机,执行如下操作:

①sudo vi /etc/network/interfaces  回车

②按i键,在最后一行加入

auto eth1

iface eth1 inet static

address 192.168.56.101  //对应你要设置的静态ip

netmask 255.255.255.0  //子网掩码

③按esc,接着按shift+zz保存退出

④sudo reboot 重启虚拟机

按照以上步骤配置好每一台机子即可。

四、配置主机名与ip的映射关系

分别进入每台虚拟机执行如下步骤

①sudo vi /etc/hosts

②按2dd,删除文本最上面2行

③在文本最上面加入主机名与ip的映射关系

192.168.56.101      zwj1

192.168.56.102      zwj2

192.168.56.103      zwj3

192.168.56.104      zwj4

192.168.56.105      zwj5

192.168.56.106      zwj6

192.168.56.107      zwj7

④按esc,之后按shift +zz保存退出

五、配置config文件

①在zwj1的终端上输入:ssh-keygen -t rsa,之后连续按四下回车。

②输入cd:~/.ssh +回车

③输入touch config

④vi config

⑤在里面加入如下内容

Host zwj1

user zwj1

Host zwj2

user zwj2

Host zwj3

user zwj3

Host zwj4

user zwj4

Host zwj5

user zwj5

Host zwj6

user zwj6

Host zwj7

user zwj7

保存退出

⑥将该配置文件复制到其他机子上,命令如下

scp config zwj2:~/.ssh   后回车输入zwj2的密码

scp config zwj3:~/.ssh   后回车输入zwj3的密码

scp config zwj4:~/.ssh   后回车输入zwj4的密码

scp config zwj5:~/.ssh   后回车输入zwj5的密码

scp config zwj6:~/.ssh   后回车输入zwj6的密码

scp config zwj7:~/.ssh   后回车输入zwj7的密码

六、配置免密码登陆

在每台机子上执行如下步骤

①ssh-keygen -t rsa,之后连续按四下回车。

②ssh-copy-id zwj1  输入zwj1密码

ssh-copy-id zwj2  输入zwj2密码

ssh-copy-id zwj3  输入zwj3密码

ssh-copy-id zwj4  输入zwj4密码

ssh-copy-id zwj5  输入zwj5密码

ssh-copy-id zwj6  输入zwj6密码

ssh-copy-id zwj7  输入zwj7密码

③验证免密码登陆

执行完以上步骤之后,可以使用ssh zwj1(任意一台虚拟机)+回车,如果不用输入密码就可以远程登陆的话,证明免密码登陆成功。

七、配置java环境

①在每台虚拟机的根目录上创建environment目录,并修改该目录的权限为777

sudo mkdir /environment

sudo chmod 777 /environment

②将jdk从实体机拷贝到每台虚拟机上(实体机也要先执行上面四、五两个步骤)

scp -r /environment/jdk zwj1:/environment

scp -r /environment/jdk zwj2:/environment

scp -r /environment/jdk zwj3:/environment

scp -r /environment/jdk zwj4:/environment

scp -r /environment/jdk zwj5:/environment

scp -r /environment/jdk zwj6:/environment

scp -r /environment/jdk zwj7:/environment

③在每台虚拟机上配置环境变量

sudo vi /etc/profile

在文件最下面加入如下环境变量

JAVA_HOME=/environment/jdk1.8.0_65

export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin

export PATH

CLASSPATH=.:$JAVA_HOME/lib

export CLASSPATH

保存退出

之后终端输入

source /etc/profile +回车,使环境变量生效

八、配置zookeeper

①实体机子上解压zookeeper:

tar -zxvf zookeeper-3.4.7

②修改zookeeper conf目录下的配置文件

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

在文件中找到dataDir=/tmp/zookeeper。

③将光标移动该处,按i进入insert模式。将保存数据的路径更改为非tmp目录下(因为tmp目录下的内容机器重启之后就不见了),这里,本人将路径修改为dataDir=/environment/zookeeper/data

其他默认的配置基本无需修改,只需在该文件的最后一行增加集群配置内容(只需修改下面的主机名,与你自己部署zookeeper的服务器地址相同即可)

服务器编号,服务器地址,LF通信端口,选举端口

server.1=zwj4:2888:3888

server.2=zwj5:2888:3888

server.3=zwj6:2888:3888

保存退出

③将修改好的zookeeper 拷贝到虚拟机上

scp -r /zk(zookeeper的路径)zwj4:/environmet

scp -r /zk(zookeeper的路径)zwj5:/environmet

scp -r /zk(zookeeper的路径)zwj6:/environmet

③在zk的虚拟机上创建data目录(zwj4-zwj6)

因为刚刚修改dataDir路径时的文件夹并不存在,所以要先创建该文件夹

sudo mkdir /environment/zookeeper/data

④创建myid文件(zwj4-zwj6)

cd /environment/zookeeper/data

touch myid

vi myid

在里面加入一个数字,对应上面server.1=zwj4:2888:3888

中sever后面的数字

(在zwj4上,myid文件里的内容为1

在zwj5上,myid文件里的内容为2

在zwj6上,myid文件里的内容为3)

⑤往环境变量中加入zookeeper的环境变量(zwj4-zwj6)

sudo vi /etc/profile

在最下面面加入

ZK_HOME=/environment/zookeeper/bin

PATH=$PATH:$ZK_HOME

export PATH

保存,退出。

source /etc/profile

⑥验证zk集群是否部署成功

在zwj4-zwj6上分别启动zk:

zkServer.sh start

之后查看zwj4-zwj6上面zk的状态

zkServer.sh status

可以看到三台中有一台的状态是

Mode: leader

其他两台的状态是

Mode: follower

证明zk集群部署成功。

九、配置hadoop

①在主机上解压hadoop

tar -zxvf hadoop-2.7.1.tar.gz

②进入hadoop目录中的etc/hadoop目录下

③修改hadoop-env.sh

vi  hadoo-env.sh

在里面找到export JAVA_HOME=

将等号后面的值替换成虚拟机里面的java环境变量

如:export JAVA_HOME=/environment/jdk1.8.0_65

④修改core-site.xml

vi core-site.xml,将<configuration>替换成如下内容

<configuration>

<!-- 指定hdfs的nameservice为ns1 -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://ns1</value>

</property>

<!-- 指定hadoop临时目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/enviroment/hadoop-2.7.1/tmp</value>

</property>

<!-- 指定zookeeper地址 -->

<property>

<name>ha.zookeeper.quorum</name>

<value>zwj4:2181,zwj5:2181,zwj6:2181</value>

</property>

</configuration>

⑤修改hdfs-site.xml

vi hdfs-site.xml

<configuration>

<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->

<property>

<name>dfs.nameservices</name>

<value>ns1</value>

</property>

<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->

<property>

<name>dfs.ha.namenodes.ns1</name>

<value>nn1,nn2</value>

</property>

<!-- nn1的RPC通信地址 -->

<property>

<name>dfs.namenode.rpc-address.ns1.nn1</name>

<value>zwj1:9000</value>

</property>

<!-- nn1的http通信地址 -->

<property>

<name>dfs.namenode.http-address.ns1.nn1</name>

<value>zwj1:50070</value>

</property>

<!-- nn2的RPC通信地址 -->

<property>

<name>dfs.namenode.rpc-address.ns1.nn2</name>

<value>zwj2:9000</value>

</property>

<!-- nn2的http通信地址 -->

<property>

<name>dfs.namenode.http-address.ns1.nn2</name>

<value>zwj2:50070</value>

</property>

<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://zwj4:8485;zwj5:8485;zwj6:8485/ns1</value>

</property>

<!-- 指定JournalNode在本地磁盘存放数据的位置 -->

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/enviroment/hadoop-2.7.1/journal</value>

</property>

<!-- 开启NameNode失败自动切换 -->

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

<!-- 配置失败自动切换实现方式 -->

<property>

<name>dfs.client.failover.proxy.provider.ns1</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->

<property>

<name>dfs.ha.fencing.methods</name>

<value>

sshfence

shell(/bin/true)

</value>

</property>

<!-- 使用sshfence隔离机制时需要ssh免登陆 -->

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>~/.ssh/id_rsa</value>

</property>

<!-- 配置sshfence隔离机制超时时间 -->

<property>

<name>dfs.ha.fencing.ssh.connect-timeout</name>

<value>30000</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

</configuration>

⑥修改mapred-site.xml

vi mapred-site.xml

<configuration>

<!-- 指定mr框架为yarn方式 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

⑦修改yarn-site.xml

vi yarn-site.xml

<configuration>

<!-- 开启RM高可靠 -->

<property>

<name>yarn.resourcemanager.ha.enabled</name>

<value>true</value>

</property>

<!-- 指定RM的cluster id -->

<property>

<name>yarn.resourcemanager.cluster-id</name>

<value>yrc</value>

</property>

<!-- 指定RM的名字 -->

<property>

<name>yarn.resourcemanager.ha.rm-ids</name>

<value>rm1,rm2</value>

</property>

<!-- 分别指定RM的地址 -->

<property>

<name>yarn.resourcemanager.hostname.rm1</name>

<value>zwj3</value>

</property>

<property>

<name>yarn.resourcemanager.hostname.rm2</name>

<value>zwj7</value>

</property>

<!-- 指定zk集群地址 -->

<property>

<name>yarn.resourcemanager.zk-address</name>

<value>zwj4:2181,zwj5:2181,zwj6:2181</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

⑧将配置好的hadoop拷贝到每台虚拟机上

scp -r /hadoop(hadoop所在目录) zwj1:/environment

scp -r /hadoop(hadoop所在目录) zwj2:/environment

scp -r /hadoop(hadoop所在目录) zwj3:/environment

scp -r /hadoop(hadoop所在目录) zwj4:/environment

scp -r /hadoop(hadoop所在目录) zwj5:/environment

scp -r /hadoop(hadoop所在目录) zwj6:/environment

scp -r /hadoop(hadoop所在目录) zwj7:/environment

⑨修改salves里面的内容(slaves是指定子节点的位置,因为要在zwj1上启动HDFS、在zwj3启动yarn,所以zwj1上的slaves文件指定的是datanode的位置,zwj3上的slaves文件指定的是nodemanager的位置)

将里面的内容替换成

zwj4

zwj5

zwj6

⑩配置hadoop的环境变量(zwj1-zwj7)

sudo vi /etv/profile

在最后面加入如下内容

export HADOOP_HOME=/environment/hadoop-2.7.1

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

十、启动hadoop集群

第一次启动的时候一定要严格按照下面的步骤来,之后启动只要启动hdfs跟yarn就可以

①启动zk(zwj4-zwj6都要)

启动命令:zkServer.sh start

②启动journalnode(zwj4-zwj6都要)

启动命令:hadoop-daemon.sh start journalnode

之后用jps命令检查,可以看到该机子的进程里多了一个JournalNode进程

③格式化HDFS(zwj1上执行)

hdfs namenode -format

④格式化zk(zwj1上执行)

hdfs zkfc -formatZK

⑤启动HDFS(zwj1上执行)

start-dfs.sh

⑥启动YARN(zwj3跟zwj7上执行)

start-yarn.sh

十一、配置hbase

①将hadoop集群的配置文件:hdfs-site.xml和core-site.xml 放到hbase的/conf目录下

②修改hbase-env.sh

找到export JAVA_HOME=,将后面的内容修改成你机子上java所在的目录

③修改hbase-site.xml

去掉里面所有原有的内容,加入如下配置

<configuration>

<!-- 指定hbase在HDFS上存储的路径 -->

<property>

<name>hbase.rootdir</name>

<value>hdfs://ns1/hbase</value>

</property>

<!-- 指定hbase是分布式的 -->

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<!-- 指定zk的地址,多个用“,”分割 -->

<property>

<name>hbase.zookeeper.quorum</name>        <value>itcast04:2181,itcast05:2181,itcast06:2181</value>

</property>

</configuration>

Vi backup-masters

④修改regionservers

去掉原有的localhost,将作为region的几个主机名写到里面:

zwj3

zwj4

zwj5

zwj6

⑤启动zookeeper集群(zwj4-zwj6)

zkServer.sh start

⑥启动dfs(zwj1)

start-dfs.sh

⑦启动hbase,在主节点(zwj1)上运行

start-hbase.sh

hbase集群配置成功的标识:

访问192.168.56.101:16010

页面正常显示,并且可以看到几台作为region的机子的状态,那么就是配置成功了。

十二、配置hive

①安装mysql(zwj4上面安装)

因为hive的元数据库基于mysql,所以要先安装mysql

sudo apt-get install mysql-server

安装过程中会提示设置密码,设置成你自己想要的密码即可,比如123123

安装完成之后,登陆mysql

mysql -u root -p+回车

输入安装过程中设置的密码

之后会出现:mysql>

这样的字符,表示登陆成功,此时输入:

grant all privileges on *.* to [email protected]‘%‘ identified by ‘123123‘;+回车

给root设置可以远程登陆

输入flush privileges刷新刚刚的配置

输入exit退出mysql

在zwj4的终端输入 sudo vi /etc/mysql/my.cnf

找到bind-address = 127.0.0.1

在前面加上#号,注释掉该设置,到这里,mysql已经可以实现远程登陆的功能了。

②安装hive(zwj4)

解压hive: tar -zxvf apache-hive-1.0.1-bin.tar.gz

拷贝mysql的数据库连接驱动到hive的lib目录下

将hive-default.xml重命名为hive-site.xml

清空hive-site.xml里所有的内容,并加入以下

<configuration>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://zwj3:3306/hive?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

<description>username to use against metastore database</description>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>123123</value>

<description>password to use against metastore database</description>

</property>

</configuration>

配置成功的标识:进入hive的bin目录。./hive之后启动没有报错,最后出现hive>这样的字样,即表明hive启动成功。

十三、配置sqoop

解压sqoop到任意一台机子(zwj3),无需修改任何配置。

进入sqoop的bin目录,执行导出操作:

./sqoop import --connect jdbc:mysql://zwj4:3306/mysql --table user --username root --password 123123

执行成功的话证明配置没错。(此处连接的数据库必须先设置好允许远程登陆,且登陆的用户必须具有导出数据的权限)

时间: 2024-10-11 10:41:39

集群部署的相关文章

zabbix实例集群部署-偏向于管理使用

zabbix实例集群部署 前言:已经折腾两个礼拜了,本文侧重点不在于安装,在于使用管理.部署请看文档或者百度,,很简        单 提示:zabbix关于模板.应用集.主机组.触发器.等等命令一定要谨慎,不要随意,防止自己糊涂了 主机组: 比如说,我的主机组用的是yunce56,因为我这个项目名称叫做yunce 模板:zabbix自带的templates不够合理,我自己重新写,DIY.比如说我专门监                          控cpu,我可以写yunce-cpu-li

ELK stat集群部署+Grafana及可视化图形

1.ELK stat集群部署+Grafana及可视化图形 2.后续会更新.................

万台规模下的SDN控制器集群部署实践

目前在网络世界里,云计算.虚拟化.SDN.NFV这些话题都非常热.今天借这个机会我跟大家一起来一场SDN的深度之旅,从概念一直到实践一直到一些具体的技术. 本次分享分为三个主要部分: SDN & NFV的背景介绍 SDN部署的实际案例 SDN控制器的集群部署方案 我们首先看一下SDN.其实SDN这个东西已经有好几年了,它强调的是什么?控制平面和数据平面分离,中间是由OpenFlow交换机组成的控制器,再往上就是运行在SDN之上的服务或者是应用.这里强调两个,控制器和交换机的接口——我们叫做南向接

入门初探+伪集群部署

Kafka入门初探+伪集群部署 Kafka是目前非常流行的消息队列中间件,常用于做普通的消息队列.网站的活性数据分析(PV.流量.点击量等).日志的搜集(对接大数据存储引擎做离线分析). 全部内容来自网络,可信度有待考证!如有问题,还请及时指正. 概念介绍 在Kafka中消息队列分为三种角色: producer,即生产者,负责产生日志数据. broker,存储节点,负责按照topic中的partition分区,均匀分布式的存储分区. consumer,即消费者,负责读取使用broker中的分区.

OpenStack Swift集群部署流程与简单使用

转载:http://www.cnblogs.com/fczjuever/p/3224022.html 之前介绍了<OpenStack Swift All In One安装部署流程与简单使用>,那么接下来就说一说Swift集群部署吧. 1. 简介 本文档详细描述了使用两台PC部署一个小型Swift集群的过程,并给出一些简单的使用实例.本文档假定如下前提条件: 使用Ubuntu操作系统. 每台机器都运行Swift的所有服务,既是Proxy Server,又是Storage Server,用户可以向

yarn 集群部署,遇到的问题小结

有没有好的python UML建模工具?求推荐,除eclipse的插件(因为不喜欢用eclipse).pyNsource用的不是很好,pyUt不全.有没StarUML上的python插件? import abc class AbstractEnemyFactory( object ): __metaclass__ = abc.ABCMeta @abc.abstractmethod def createNinja( self ): pass @abc.abstractmethod def crea

Nginx+Tomcat 集群部署

1.Nginx + Tomcat 集群部署 简单配置 1 #user nobody; 2 worker_processes 4;#工作进程的个数 3 4 #error_log logs/error.log; 5 #error_log logs/error.log notice; 6 #error_log logs/error.log info; 7 8 #pid logs/nginx.pid; 9 10 11 events { 12 worker_connections 1024; #单个进程连

FastDFS集群部署

之前介绍过关于FastDFS单机部署,详见博文:FastDFS+Nginx(单点部署)事例 下面来玩下FastDFS集群部署,实现高可用(HA) 服务器规划: 跟踪服务器1[主机](Tracker Server):10.100.139.121 跟踪服务器2[备机](Tracker Server):10.100.138.180 存储服务器1(Storage Server):10.100.139.121 存储服务器2(Storage Server):10.100.138.180 存储服务器3(Sto

solr 集群(SolrCloud 分布式集群部署步骤)

SolrCloud 分布式集群部署步骤 安装软件包准备 apache-tomcat-7.0.54 jdk1.7 solr-4.8.1 zookeeper-3.4.5 注:以上软件都是基于 Linux 环境的 64位 软件,以上软件请到各自的官网下载. 服务器准备 为搭建这个集群,准备三台服务器,分别为 192.168.0.2 -- master 角色192.168.0.3 -- slave 角色192.168.0.4 -- slave 角色 搭建基础环境 安装 jdk1.7 - 这个大家都会安装

elasticsearch2.x集群部署

一.linux环境 1.增大用户进程数和文件句柄数 (1)vim /etc/security/limits.d/90-nproc.conf * soft nproc 30499 root soft nproc unlimited (2)vim /etc/security/limits.conf * soft noproc 30499             * hard noproc 30499            * soft nofile 65536             * hard