热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

大数据组件搭建步骤

为什么80%的码农都做不了架构师?本文是在自己工作中用到各个组件的安装方式的记录,包括:hadoop,hbase,kafka,es,

为什么80%的码农都做不了架构师?>>>   hot3.png

本文是在自己工作中用到各个组件的安装方式的记录,包括:hadoop,hbase,kafka,es,hive,flume,druid,flink,spark等,在持续更新中。具体的使用记录另有博文具体介绍。

hdfs

  • 这里是列表文本Hadoop有三种分布模式:单机模式、伪分布、全分布模式,本文讲解分布式搭建方式。 假设有a,b,c三个节点。

第一步:新建用户

# 增加用户,并赋予其密码
$ adduser hadoop
$ passwd hadoop # ur password for eagle user
# 赋予用户root权限
$ chmod u+w /etc/sudoers
$ vim /etc/sudoers# 找到 `root ALL=(ALL) ALL`这行,并在下面添加hadoop用户hadoop ALL=(ALL) ALL
$ chmod u-w /etc/sudoers
# 切换到 hadoop用户
$ su - hadoop
$ cd /home/hadoop
# 存放软件目录 & 安装目录 & 日志目录
$ mkdir install && mkdir software && mkdir logs

第二步:修改节点用户名/安装jdk/ssh免密登陆:

##修改用户名
$ vim /etc/hostname
//三个节点分别叫bigdata-01,bigdata-02,bigdata-03. 然后重启节点。##安装jdk参考博文[ZOOKEEPER安装及测试](https://my.oschina.net/112612/blog/1584832 "ZOOKEEPER安装及测试")## ssh免密登陆参见博文[免密登陆脚本(shell版)](https://my.oschina.net/112612/blog/1560133 "免密登陆脚本(shell版)")

第三部 下载并安装hadoop

$ cd /home/hadoop/install/
$ wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.4/hadoop-2.8.4.tar.gz
$ tar zxvf hadoop-2.8.4.tar.gz -C ~/software/
$ cd ~/software/
$ ln -s hadoop-2.8.4/ hadoop
$ cd hadoop/
$ bin/hadoop versionHadoop 2.8.4

配置

$ vim ~/.bashrc# .bashrc# Source global definitionsif [ -f /etc/bashrc ]; then. /etc/bashrcfi# User specific aliases and functions# Hadoop Environment Variablesexport HADOOP_HOME=~/software/hadoopexport HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport JAVA_HOME=~/software/javaexport PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin
$ source ~/.bashrc

配置文件处理

一共涉及以下几个文件

~/hadoop-2.8.4/etc/hadoop/hadoop-env.sh
~/hadoop-2.8.4/etc/hadoop/yarn-env.sh
~/hadoop-2.8.4/etc/hadoop/slaves
~/hadoop-2.8.4/etc/hadoop/core-site.xml
~/hadoop-2.8.4/etc/hadoop/hdfs-site.xml
~/hadoop-2.8.4/etc/hadoop/mapred-site.xml
~/hadoop-2.8.4/etc/hadoop/yarn-site.xml
#以上文件默认不存在的,可以复制相应的template文件获得

在修改之前,首先新建3个文件夹

$ cd /home/hadoop/software/
mkdir -p /data/tmp
mkdir -p /data/dfs/namenode
mkdir -p /data/dfs/datanode

  • 修改文件1.hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/home/software/java)

  • 修改文件2.yarn-env.sh

修改JAVA_HOME值(export JAVA_HOME=/home/software/java)

  • 修改文件3:slaves

bigdata-02
bigdata-03

  • 修改文件4: $ vim ~/software/hadoop/etc/hadoop/core-site.xml


hadoop.tmp.dirfile:/home/hadoop/software/hadoop/data/tmpAbase for other temporary directories.

fs.defaultFShdfs://bigdata-01:9000

io.file.buffer.size131072


  • 修改文件5: $ vim ~/software/hadoop/etc/hadoop/hdfs-site.xml


dfs.replication3dfs.namenode.name.dirfile:/home/hadoop/software/data/dfs/namenodedfs.datanode.data.dirfile:/home/hadoop/software/data/dfs/datanodedfs.webhdfs.enabledtruedfs.namenode.secondary.http-addressbigdata-01:9001

  • 修改文件6:mapred-site.xml


mapreduce.framework.nameyarn

mapreduce.jobhistory.addressbigdata-01:10020

mapreduce.jobhistory.webapp.addressbigdata-01:19888


  • 修改文件7:yarn-site.xml

yarn.nodemanager.aux-servicesmapreduce_shuffle

yarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler

yarn.resourcemanager.addressbigdata-01:8032

yarn.resourcemanager.scheduler.addressbigdata-01:8030

yarn.resourcemanager.resource-tracker.addressbigdata-01:8031

yarn.resourcemanager.admin.addressbigdata-01:8033

yarn.resourcemanager.webapp.addressbigdata-01:8088


  • 修改日志文件

$ mkdir -p /home/hadoop/logs/hadoop-hdfs/
$ vim ~/software/hadoop/etc/hadoop/log4j.properties# log4j.appender.RFAAUDIT.File=${hadoop.log.dir}/hdfs-audit.loglog4j.appender.RFAAUDIT.File=/home/hadoop/logs/hadoop-hdfs/hdfs-audit.log

将以上操作的文件复制到另外两个节点上。 然后在bigdata-01上执行格式化并启动hadoop

$ bin/hdfs namenode -format
cd ../sbin;./start-dfs.sh

bigdata-01(master)出现以下现象则成功启动 [hadoop@lihao ~]$ jps 2324 NameNode 2839 Jps 2601 SecondaryNameNode slave上则只有datanode进程。

启动yarn:

start-yarn.sh

最后在浏览器中输入:http://ip:50070,如果出现hadoop界面则安装成功,如果jps没有问题,而界面没有出现,则检查防火墙。

hbase

由于只有一台服务器,故只能搭建伪分布式集群。由于搭建hbase必须有zk和jdk,故也顺道搭建了zk的伪分布集群。

  1. zk伪分布式集群搭建
  • 所谓的“伪分布式集群”就是在一台服务器中,启动多个Zookeeper实例。“完全分布式集群”是每台服务器,启动一个Zookeeper实例。
  • 参见【zk操作】中下载zk安装包

cp conf/zoo_sample.cfg conf/zoo1.cfg
vim zoo1.cfg
dataDir=/home/hadoop/software/zookeeper/zoo1/data
clientPort=2181
#增加1
server.1=lihao:2888:3888
server.2=lihao:2889:3889
server.3=lihao:2890:3890
cp conf/zoo_sample.cfg conf/zoo2.cfg
vim zoo1.cfg
dataDir=/home/hadoop/software/zookeeper/zoo2/data
clientPort=2182
#增加2
server.1=lihao:2888:3888
server.2=lihao:2889:3889
server.3=lihao:2890:3890
cp conf/zoo_sample.cfg conf/zoo3.cfg
vim zoo1.cfg
dataDir=/home/hadoop/software/zookeeper/zoo3/data
clientPort=2183
#增加
server.1=lihao:2888:3888
server.2=lihao:2889:3889
server.3=lihao:2890:3890

然后执行

mkdir -p ..../zookeeper/zoo1/data
mkdir -p ..../zookeeper/zoo2/data
mkdir -p ..../zookeeper/zoo3/data
echo '1'>zoo1/data/myid
echo '2'>zoo1/data/myid
echo '3'>zoo1/data/myid

然后启动三个节点

bin/zkServer.sh start conf/zoo1.cfg
bin/zkServer.sh start conf/zoo2.cfg
bin/zkServer.sh start conf/zoo3.cfg

最后检查每个节点的状态:

bin/zkServer.sh status conf/zooX.cfg

hbase安装

下载链接

修改conf/hbase-env.sh

export JAVA_HOME=JDK_PATH
export HBASE_CLASSPATH=/home/hadoop/software/hbase/conf
export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_MANAGES_ZK=true [如果你是使用hbase自带的zk就是true,如果使用自己的zk就是false]

修改conf/hbase-site.xml


hbase.master
A:60000


hbase.master.maxclockskew #时间同步允许的时间差
180000


hbase.rootdir
hdfs://A:9000/hbase #hbase共享目录,持久化hbase数据


hbase.cluster.distributed #是否分布式运行,false即为单机
true


hbase.zookeeper.quorum #zookeeper地址
A,B,C


hbase.zookeeper.property.dataDir #zookeeper配置信息快照的位置
/data/hbase/tmp

然后将hadoop的core-site.xml和hdfs-site.xml也复制到该文件夹下。

修改环境变量

$ vim ~/.bash_profile
export HBASE_HOME=/home/hadoop/software/hbase
export PATH=$HBASE_HOME/bin:$PATH
# 使配置生效
$ source /etc/profile

将修改后的hbase安装包复制到另外两台上去。

scp -r hbase/ B:/home/hadoop/software/
scp -r hbase/ C:/home/hadoop/software/

然后在B/C上做相同操作。

最后在master节点上启动hbase

start-hbase.sh

然后jps查看进程

6788 HRegionServer
4133 SecondaryNameNode
7768 Jps
3672 QuorumPeerMain
3417 QuorumPeerMain
3865 NameNode
3626 QuorumPeerMain
7386 HMaster
3965 DataNode

最后页面操作显示:http:A:16010

es/kibana

参见博文ES基础操作

kafka分布式集群搭建

  • 以下为分布式集群搭建,节点分别为:a,b,c三个节点。其中zk是安装在zookeeper用户下的;jdk为kafka用户下。

首先:kafka集群搭建依赖以下组件:

  1. jdk>1.7
  2. zookeeper. 以上两个部分参看博文

然后,下载安装

  1. 下载链接为:kafka
  2. 将下载的kafka_2.10-0.8.2.2.tgz包解压至~/software下,并

tar -zxvf kafka_2.10-0.8.2.2.tgz
ln -s kafka_2.10-0.8.2.2 kafka
cd kafka/config
vim server..properties
######
broker.id=0 #当前机器在集群中的唯一标识,和zookeeper的myid性质一样,另外两台可分别为1,2
port=9092 #当前kafka对外提供服务的端口默认是9092
num.network.threads=3 #这个是borker进行网络处理的线程数
num.io.threads=8 #这个是borker进行I/O处理的线程数
log.dirs=/opt/kafka/kafkalogs/ #消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录,如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个
socket.send.buffer.bytes=102400 #发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.receive.buffer.bytes=102400 #kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.request.max.bytes=104857600 #这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
num.partitions=1 #默认的分区数,一个topic默认1个分区数
log.retention.hours=168 #默认消息的最大持久化时间,168小时,7天
message.max.byte=5242880 #消息保存的最大值5M
default.replication.factor=2 #kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务
replica.fetch.max.bytes=5242880 #取消息的最大直接数
log.segment.bytes=1073741824 #这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.retention.check.interval.ms=300000 #每隔300000毫秒去检查上面配置的log失效时间(log.retention.hours=168 ),到目录查看是否有过期的消息如果有,删除
log.cleaner.enable=false #是否启用log压缩,一般不用启用,启用的话可以提高性能
zookeeper.connect=a:2181,b:2181,c2181 #设置zookeeper的连接端口
#####

启动

先启动zk,然后启动kafka

./bin/kafka-server-start.sh -daemon ./config/server.properties &

然后集群的验证等步骤参看博文

spark

参见博文spark安装测试

druid

storm

kafka connect

redis

flume

flume安装使用特别简单,新建用户赋权,然后下载安装包。flume-1.7

  1. 解压至software文件夹;
  2. 修改flume的conf/flume-env.sh中的JAVA_HOME值。 3.验证是否安装成功:bin/flume-ng version

hive

未完,待续。。。


转:https://my.oschina.net/112612/blog/1587368



推荐阅读
author-avatar
手机用户2602890793
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有