[转]大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)
大数据环境安装和配置(Hadoop2.7.7,Hive2.3.4,Zookeeper3.4.10,Kafka2.1.0,Flume1.8.0,Hbase2.1.1,Spark2.4.0等)
- 系统说明
- 搭建步骤详述
- 一、节点基础配置
- 二、Hadoop安装和配置
- 三、Hive安装和配置
- 四、ZooKeeper安装和配置
- 五、Kafka安装和配置
- 六、Flume安装和配置
- 七、Hbase安装和配置
- 八、Spark安装和配置
- 总结
前言:本篇文章是以Hadoop为基础,搭建各种可能会用到的环境的基本步骤,包括:Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等。在实际应用中可能未必需要用到所有的这些,请读者们按需取舍。
注意:因为有些环境之间存在相互依赖,所以在搭建环境或者使用其的过程中要注意顺序。比如说Hive是依赖于Hadoop的,搭建使用Hive前,Hadoop集群肯定要提前搭建好并启动起来;搭建使用Hbase时,由于其依赖于Hadoop和Zookeeper,所以需要提前搭建并启动好Hadoop和ZooKeeper集群。一定要注意哦!
另外,本人为了给广大读者提供方便,不需要每次都自己去找相关安装包下载,我已将本篇文章搭建时涉及的安装包都下载好放入百度云(链接:https://pan.baidu.com/s/1gjQuTECI2LliFc5qDdqTIg 提取码:l5p3 ),大家直接一次性下载下来到你的主机就行了,到时候后直接上传到你们自己的虚拟机系统里就可以了(上传主机文件到虚拟机里可以用WinSCP软件)
系统说明
节点 | ip |
---|---|
master | 192.168.185.150 |
slave1 | 192.168.185.151 |
slave2 | 192.168.185.152 |
搭建步骤详述
一、节点基础配置
# 注意:centos自从7版本以后网卡名变成ens33而不是我这里的eth0了,我是习惯eth0了所以在安装的时候修改了网卡名,如果你的centos网卡名是ens33不要紧,就把我这里eth0的地方都换成你的ens33,对后面没影响。[root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="static"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=192.168.185.150
NETMASK=255.255.255.0
GATEWAY=192.168.185.2[root@master ~]# vim /etc/resolv.conf
nameserver 192.168.185.2# 对其他两个slave节点也同样做上述操作,只不过在IPADDR值不一样,分别填其节点对应的ip
2、修改每个节点主机名,添加各节点映射
# 在其他两个子节点的hostname处分别填slave1和slave2
[root@master ~]# vim /etc/hostname
master[root@master ~]# vim /etc/hosts
192.168.185.150 master
192.168.185.151 slave1
192.168.185.152 slave2
3、关闭防火墙
# 三个节点都要做# 把SELINUX那值设为disabled
[root@master ~]# vim /etc/selinux/config
SELINUX=disabled[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
[root@master ~]# systemctl status firewalld
4、都重启以生效
[root@master ~]# reboot
[root@master ~]# ping www.baidu.com# 注意下,重启后若ping百度不通,可能是因为namesever那重启后自动被改了,所以导致ping百度不通,如果这样的话就再重新写下上面的resolv.conf
[root@master ~]# vim /etc/resolv.conf
nameserver 192.168.185.2# 这下应该就通了,ping下百度试试看
[root@master ~]# ping www.baidu.com
PING www.a.shifen.com (119.75.217.109) 56(84) bytes of data.
64 bytes from 119.75.217.109: icmp_seq=1 ttl=128 time=30.6 ms
64 bytes from 119.75.217.109: icmp_seq=2 ttl=128 time=30.9 ms
64 bytes from 119.75.217.109: icmp_seq=3 ttl=128 time=30.9 ms
5、配置节点间ssh免密登陆
[root@master ~]# ssh-keygen -t rsa
# 上面这条命令,遇到什么都别管,一路回车键敲下去# 拷贝本密钥到三个节点上
[root@master ~]# ssh-copy-id master
[root@master ~]# ssh-copy-id slave1
[root@master ~]# ssh-copy-id slave2# master节点上做完后,再在其他两个节点上重复上述操作
都做完后,用ssh命令节点间相互测试下:
[root@master ~]# ssh slave1
# 就会发现在master节点上免密登陆到了slave1,再敲logout就退出slave1了
6、安装java
# 之后我们所有的环境配置包都放到/usr/local/下# 新建java目录,把下载好的jdk的二进制包拷到下面(你可以直接在centos里下载,或者在你主机下载好,上传到虚拟机的centos上)
[root@master ~]# cd /usr/local
[root@master local]# mkdir java
[root@master local]# cd java
[root@master java]# tar -zxvf jdk-8u191-linux-x64.tar.gz # 配置环境变量,在profile文件最后添加java的环境变量
[root@master ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin[root@master ~]# source /etc/profile
[root@master ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)# 在其他两个节点上重复上述操作
到此为止,基本配置就结束了。
二、Hadoop安装和配置
# 在/usr/local下创建hadoop文件夹,将下载好的hadoop-2.7.7压缩包上传进去解压
[root@master ~]# cd /usr/local
[root@master local]# mkdir hadoop
[root@master local]# cd hadoop
[root@master hadoop]# tar -zxvf hadoop-2.7.7.tar
[root@master hadoop]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin[root@master hadoop]# source /etc/profile
# 配置文件主要在hadoop-2.7.7/etc/hadoop下面
[root@master hadoop]# cd hadoop-2.7.7/etc/hadoop# 把该文件<configuration>那块按如下修改
[root@master hadoop]# vim core-site.xml
<configuration>
<property><name>fs.defaultFS</name><value>hdfs://master:9000</value>
</property>
<property><name>hadoop.tmp.dir</name><value>/usr/local/data</value>
</property>
</configuration># 配置文件中的/usr/local/data是用来存储临时文件的,所以该文件夹需要手动创建
[root@master hadoop]# mkdir /usr/local/data
[root@master hadoop]# vim hdfs-site.xml
<configuration>
<property><name>dfs.name.dir</name><value>/usr/local/data/namenode</value>
</property>
<property><name>dfs.data.dir</name><value>/usr/local/data/datanode</value>
</property>
<property><name>dfs.replication</name><value>2</value>
</property>
</configuration>
# 先修改文件名字
[root@master hadoop]# mv mapred-site.xml.template mapred-site.xml[root@master hadoop]# vim mapred-site.xml
<configuration>
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
</configuration>
[root@master hadoop]# vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property><name>yarn.resourcemanager.hostname</name><value>master</value>
</property>
<property><name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value>
</property>
</configuration>
[root@master hadoop]# vim slaves
slave1
slave2
# 在“export JAVA_HOME=”那一行把java环境修改成自己的路径
[root@master hadoop]# vim hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
9、直接把配置好的hadoop包传到剩下两个子节点同样的位置下
[root@master hadoop]# cd /usr/local
[root@master local]# scp -r hadoop root@192.168.185.151:/usr/local/
[root@master local]# scp -r hadoop root@192.168.185.152:/usr/local/
# 别忘了!在两个子节点/usr/local/下也要创建好data目录。# 别忘了!在两个子节点重复下步骤2, 配置好hadoop环境变量。
# 只要在主节点上启动,执行过程可能稍慢,耐心等待# 先格式化
[root@master ~]# hdfs namenode -format# 启动hdfs
[root@master ~]# cd /usr/local/hadoop/hadoop-2.7.7/
[root@master hadoop-2.7.7]# sbin/start-dfs.sh# 启动yarn
[root@master hadoop-2.7.7]# sbin/start-yarn.sh
三、Hive安装和配置
# 注意:Hive只需要在master节点上安装配置[root@master ~]# cd /usr/local
[root@master local]# mkdir hive
[root@master local]# cd hive
[root@master hive]# tar -zxvf apache-hive-2.3.4-bin.tar.gz
[root@master hive]# mv apache-hive-2.3.4-bin hive-2.3.4# 添加Hive环境变量
[root@master hive]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/hive/hive-2.3.4
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin[root@master hive]# source /etc/profile
[root@master hive]# cd hive-2.3.4/conf
[root@master conf]# mv hive-default.xml.template hive-site.xml# 在hive-site.xml中找到下面的几个对应name的property,然后把value值更改
# 这里提醒一下,因为hive-site.xml几千多行,根据name找property的话不太方便,有两种建议:
# 1、把这个xml文件弄到你自己的主机上,用软件(比如notepad++)修改好,在上传回centos上相应位置
# 2、在之前给你的百度云链接里,我也上传了修改好的hive-site.xml文件,如果你版本跟我用的一样,可以直接拿去用[root@master conf]# vim hive-site.xml <property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive_metadata?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore.To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.</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>hive</value><description>Username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value><description>password to use against metastore database</description></property><property><name>hive.querylog.location</name><value>/usr/local/hive/hive-2.3.4/tmp/hadoop</value><description>Location of Hive run time structured log file</description></property><property><name>hive.server2.logging.operation.log.location</name><value>/usr/local/hive/hive-2.3.4/tmp/hadoop/operation_logs</value><description>Top level directory where operation logs are stored if logging functionality is enabled</description></property><property><name>hive.exec.local.scratchdir</name><value>/usr/local/hive/hive-2.3.4/tmp/hadoop</value><description>Local scratch space for Hive jobs</description></property><property><name>hive.downloaded.resources.dir</name><value>/usr/local/hive/hive-2.3.4/tmp/${hive.session.id}_resources</value><description>Temporary local directory for added resources in the remote file system.</description></property><property><name>hive.metastore.schema.verification</name><value>false</value><description>Enforce metastore schema version consistency.True: Verify that version information stored in is compatible with one from Hive jars. Also disable automaticschema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensuresproper metastore schema migration. (Default)False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.</description></property>
[root@master conf]# mv hive-env.sh.template hive-env.sh# 找到下面的位置,做对应修改
[root@master conf]# vim hive-env.sh # Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/hive/hive-2.3.4/conf# Folder containing extra libraries required for hive compilation/execution can be controlled by:
# export HIVE_AUX_JARS_PATH=
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HIVE_HOME=/usr/local/hive/hive-2.3.4
4、把下载好的mysql-connector-java.jar这个jar包拷到/usr/local/hive/hive-2.3.4/lib/下面,在给你们的百度云链接里都有
5、安装并配置mysql(因为hive的元数据是存储在mysql里的)
[root@master ~]# cd /usr/local/src/
[root@master src]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
[root@master src]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@master src]# yum install mysql-community-server# 这里时间较长,耐心等待...# 安装完成后,重启服务
[root@master src]# service mysqld restart
[root@master src]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.42 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql># mysql安装成功
6、在mysql上创建hive元数据库,创建hive账号,并进行授权
# 在mysql上连续执行下述命令:
# create database if not exists hive_metadata;
# grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive';
# grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';
# grant all privileges on hive_metadata.* to 'hive'@'master' identified by 'hive';
# flush privileges;
# use hive_metadata;[root@master src]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.42 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database if not exists hive_metadata;
Query OK, 1 row affected (0.00 sec)mysql> grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive';
Query OK, 0 rows affected (0.00 sec)mysql> grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';
Query OK, 0 rows affected (0.00 sec)mysql> grant all privileges on hive_metadata.* to 'hive'@'master' identified by 'hive';
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> use hive_metadata;
Database changed
mysql> exit
Bye
[root@master src]# schematool -dbType mysql -initSchema
# 我们先创建一个txt文件存点数据等下导到hive中去
[root@master src]# vim users.txt
1,浙江工商大学
2,杭州
3,I love
4,ZJGSU
5,加油哦# 进入hive,出现命令行就说明之前搭建是成功的
[root@master src]# hive
hive># 创建users表,这个row format delimited fields terminated by ','代表我们等下导过来的文件中字段是以逗号“,”分割字段的
# 所以我们上面users.txt不同字段中间有逗号
hive> create table users(id int, name string) row format delimited fields terminated by ',';
OK
Time taken: 7.29 seconds# 导数据
hive> load data local inpath '/usr/local/src/users.txt' into table users;
Loading data to table default.users
OK
Time taken: 1.703 seconds# 查询
hive> select * from users;
OK
1 浙江工商大学
2 杭州
3 I love
4 ZJGSU
5 加油哦
Time taken: 2.062 seconds, Fetched: 5 row(s)# ok,测试成功!
到此为止,hive配置就结束了,其实hive的配置挺繁琐的,不要急慢慢来,加油!
四、ZooKeeper安装和配置
[root@master local]# mkdir zookeeper
[root@master local]# cd zookeeper# 将下载好的zookeeper压缩包上传进来解压
[root@master zookeeper]# tar -zxvf zookeeper-3.4.10.tar.gz # 配置zookeeper环境变量
[root@master zookeeper]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/hive/hive-2.3.4
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin[root@master zookeeper]# source /etc/profile
[root@master zookeeper]# cd zookeeper-3.4.10/conf
[root@master conf]# mv zoo_sample.cfg zoo.cfg# 把 dataDir 那一行修改成自己的地址,在文件最后再加上三行server的配置
[root@master conf]# vim zoo.cfg dataDir=/usr/local/zookeeper/zookeeper-3.4.10/dataserver.0=master:2888:3888
server.1=slave1:2888:3888
server.2=slave2:2888:3888
[root@master conf]# cd ..
[root@master zookeeper-3.4.10]# mkdir data
[root@master zookeeper-3.4.10]# cd data
[root@master data]# vim myid
0
# 把上面配置好的zookeeper文件夹直接传到两个子节点
[root@master data]# cd ../../..
[root@master local]# scp -r zookeeper root@192.168.185.151:/usr/local/
[root@master local]# scp -r zookeeper root@192.168.185.152:/usr/local/# 注意在两个子节点上把myid文件里面的 0 给分别替换成 1 和 2# 注意在两个子节点上像步骤1一样,在/etc/profile文件里配置zookeeper的环境变量,保存后别忘source一下
# 在三个节点上分别执行命令,启动服务: zkServer.sh start# 在三个节点上分别执行命令,查看状态: zkServer.sh status
# 正确结果应该是:三个节点中其中一个是leader,另外两个是follower# 在三个节点上分别执行命令: jps
# 检查三个节点是否都有QuromPeerMain进程
五、Kafka安装和配置
Kafka由Scala和Java编写,所以我们先需要安装配置Scala:
[root@master ~]# cd /usr/local
[root@master local]# mkdir scala
[root@master local]# cd scala/
# 下载好的scala压缩包上传进去解压
[root@master scala]# tar -zxvf scala-2.11.8.tgz# 配置环境变量
[root@master scala]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/hive/hive-2.3.4
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10
export SCALA_HOME=/usr/local/scala/scala-2.11.8
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$SCALA_HOME/bin[root@master scala]# source /etc/profile# 验证
[root@master scala-2.11.8]# scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.# 然后在剩下两个子节点中重复上述步骤!
# 创建目录,把下载好的压缩包上传解压
[root@master local]# mkdir kafka
[root@master local]# cd kafka
[root@master kafka]# tar -zxvf kafka_2.11-2.1.0.tgz
[root@master kafka]# mv kafka_2.11-2.1.0 kafka-2.1.0# 配置环境变量
[root@master kafka]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/hive/hive-2.3.4
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10
export KAFKA_HOME=/usr/local/kafka/kafka-2.1.0
export SCALA_HOME=/usr/local/scala/scala-2.11.8
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$SCALA_HOME/bin[root@master kafka]# source /etc/profile# 修改server.properties文件,找到对应的位置,修改如下
[root@master kafka]# vim kafka-2.1.0/config/server.properties
broker.id=0
listeners=PLAINTEXT://192.168.185.150:9092
advertised.listeners=PLAINTEXT://192.168.185.150:9092
zookeeper.connect=192.168.185.150:2181,192.168.185.151:2181,192.168.185.152:2181# 把master节点上修改好的kafka整个文件夹传到其余两个子节点
[root@master kafka]# cd /usr/local
[root@master local]# scp -r kafka root@192.168.185.151:/usr/local/
[root@master local]# scp -r kafka root@192.168.185.152:/usr/local/# 在另外两个节点上,对server.properties要有几处修改
# broker.id 分别修改成: 1 和 2
# listeners 在ip那里分别修改成子节点对应的,即 PLAINTEXT://192.168.185.151:9092 和 PLAINTEXT://192.168.185.152:9092
# advertised.listeners 也在ip那里分别修改成子节点对应的,即 PLAINTEXT://192.168.185.151:9092 和 PLAINTEXT://192.168.185.152:9092
# zookeeper.connect 不需要修改
# 另外两个节点上也别忘了配置kafka环境变量
# 在三个节点都启动kafka
[root@master local]# cd kafka/kafka-2.1.0/
[root@master kafka-2.1.0]# nohup kafka-server-start.sh /usr/local/kafka/kafka-2.1.0/config/server.properties & # 在主节点上创建主题TestTopic
[root@master kafka-2.1.0]# kafka-topics.sh --zookeeper 192.168.185.150:2181,192.168.185.151:2181,192.168.185.152:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create# 在主节点上启动一个生产者
[root@master kafka-2.1.0]# kafka-console-producer.sh --broker-list 192.168.185.150:9092,192.168.185.151:9092,192.168.185.152:9092 --topic TestTopic# 在其他两个节点上分别创建消费者
[root@slave1 kafka-2.1.0]# kafka-console-consumer.sh --bootstrap-server 192.168.185.151:9092 --topic TestTopic --from-beginning
[root@slave2 kafka-2.1.0]# kafka-console-consumer.sh --bootstrap-server 192.168.185.152:9092 --topic TestTopic --from-beginning# 在主节点生产者命令行那里随便输入一段话:
> hello world# 然后你就会发现在其他两个消费者节点那里也出现了这句话,即消费到了该数据
六、Flume安装和配置
# 创建目录,将下载好的压缩包上传并解压
[root@master local]# mkdir flume
[root@master local]# cd flume/
[root@master flume]# tar -zxvf apache-flume-1.8.0-bin.tar.gz
[root@master flume]# mv apache-flume-1.8.0-bin flume-1.8.0# 环境变量
[root@master flume]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/hive/hive-2.3.4
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10
export KAFKA_HOME=/usr/local/kafka/kafka-2.1.0
export SCALA_HOME=/usr/local/scala/scala-2.11.8
export FLUME_HOME=/usr/local/flume/flume-1.8.0
export FLUME_CONF_DIR=$FLUME_HOME/conf
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$SCALA_HOME/bin:$FLUME_HOME/bin[root@master flume]# source /etc/profile
[root@master flume]# cd flume-1.8.0/conf
[root@master conf]# mv flume-conf.properties.template flume-conf.properties# 在文件最后加上下面的内容
[root@master conf]# vim flume-conf.properties
#agent1表示代理名称
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1
#配置source1
agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir=/usr/local/flume/logs
agent1.sources.source1.channels=channel1
agent1.sources.source1.fileHeader = false
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = timestamp
#配置channel1
agent1.channels.channel1.type=file
agent1.channels.channel1.checkpointDir=/usr/local/flume/logs_tmp_cp
agent1.channels.channel1.dataDirs=/usr/local/flume/logs_tmp
#配置sink1
agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path=hdfs://master:9000/logs
agent1.sinks.sink1.hdfs.fileType=DataStream
agent1.sinks.sink1.hdfs.writeFormat=TEXT
agent1.sinks.sink1.hdfs.rollInterval=1
agent1.sinks.sink1.channel=channel1
agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d# 我们看到上面的配置文件中代理 agent1.sources.source1.spoolDir 监听的文件夹是/usr/local/flume/logs,所以我们要手动创建一下
[root@master conf]# cd ../..
[root@master flume]# mkdir logs# 上面的配置文件中 agent1.sinks.sink1.hdfs.path=hdfs://master:9000/logs下,即将监听到的/usr/local/flume/logs下的文件自动上传到hdfs的/logs下,所以我们要手动创建hdfs下的目录
[root@master flume]# hdfs dfs -mkdir /logs
# 启动服务
[root@master flume]# flume-ng agent -n agent1 -c conf -f /usr/local/flume/flume-1.8.0/conf/flume-conf.properties -Dflume.root.logger=DEBUG,console# 先看下hdfs的logs目录下,目前什么都没有
[root@master flume]# hdfs dfs -ls -R /
# 我们在/usr/local/flume/logs随便创建个文件
[root@master flume]# cd logs
[root@master logs]# vim flume_test.txt
hello world !
guang
浙江工商大学# 然后我们发现hdfs的logs下自动上传了我们刚刚创建的文件
[root@master logs]# hdfs dfs -ls -R /
[root@master logs]# hdfs dfs -cat /logs/2018-12-31.1546242551842
hello world !
guang
浙江工商大学
七、Hbase安装和配置
创建目录,将下载好的压缩包上传并解压
[root@master local]# mkdir hbase
[root@master local]# cd hbase
[root@master hbase]# tar -zxvf hbase-2.1.1-bin.tar.gz# 环境变量
[root@master hbase]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/hive/hive-2.3.4
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10
export KAFKA_HOME=/usr/local/kafka/kafka-2.1.0
export SCALA_HOME=/usr/local/scala/scala-2.11.8
export FLUME_HOME=/usr/local/flume/flume-1.8.0
export FLUME_CONF_DIR=$FLUME_HOME/conf
export HBASE_HOME=/usr/local/hbase/hbase-2.1.1
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$SCALA_HOME/bin:$FLUME_HOME/bin:$HBASE_HOME/bin[root@master hbase]# source /etc/profile
[root@master hbase]# cd hbase-2.1.1/conf
[root@master conf]# vim hbase-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_MANAGES_ZK=false
[root@master conf]# vim hbase-site.xml
<configuration>
<property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/zookeeper/zookeeper-3.4.10/data</value> </property> <property><name>hbase.tmp.dir</name><value>/usr/local/hbase/data/tmp</value></property><property> <name>hbase.master</name> <value>hdfs://master:60000</value> </property><property><name>hbase.master.info.port</name><value>16010</value></property><property><name>hbase.regionserver.info.port</name><value>16030</value></property>
</configuration>
[root@master conf]# vim regionservers
master
slave1
slave2
# 把上面配置好的hbase整个文件夹传过去
[root@master conf]# cd ../../..
[root@master local]# scp -r hbase root@192.168.185.151:/usr/local/
[root@master local]# scp -r hbase root@192.168.185.152:/usr/local/# 别忘在另外两个节点也要在/etc/profile下配置环境变量并source一下使生效!
# 在所有节点上都手动创建/usr/local/hbase/data/tmp目录,也就是上面配置文件中hbase.tmp.dir属性的值,用来保存临时文件的。
# 注意:测试Hbase之前,zookeeper和hadoop需要提前启动起来
[root@master local]# cd hbase/hbase-2.1.1
[root@master hbase-2.1.1]# bin/start-hbase.sh
[root@master hbase-2.1.1]# jps
# 正确结果:主节点上显示:HMaster / 子节点上显示:HRegionServer
在主机浏览器上访问:http://192.168.185.150:16010
到此为止,Hbase配置就结束了。
八、Spark安装和配置
# 创建目录,将下载好的压缩包上传并解压
[root@master local]# mkdir spark
[root@master local]# cd spark
[root@master spark]# tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz
[root@master spark]# mv spark-2.4.0-bin-hadoop2.7 spark-2.4.0# 配置环境变量
[root@master spark]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/hive/hive-2.3.4
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.10
export KAFKA_HOME=/usr/local/kafka/kafka-2.1.0
export SCALA_HOME=/usr/local/scala/scala-2.11.8
export FLUME_HOME=/usr/local/flume/flume-1.8.0
export FLUME_CONF_DIR=$FLUME_HOME/conf
export HBASE_HOME=/usr/local/hbase/hbase-2.1.1
export SPARK_HOME=/usr/local/spark/spark-2.4.0
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$SCALA_HOME/bin:$FLUME_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin[root@master spark]# source /etc/profile
[root@master spark]# cd spark-2.4.0/conf/
[root@master conf]# mv spark-env.sh.template spark-env.sh
[root@master conf]# vim spark-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export SCALA_HOME=/usr/local/scala/scala-2.11.8
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.7/etc/hadoop
[root@master conf]# mv slaves.template slaves
[root@master conf]# vim slaves
master
slave1
slave2
# 把上面配置好的spark整个文件夹传过去
[root@master conf]# cd ../../..
[root@master local]# scp -r spark root@192.168.185.151:/usr/local/
[root@master local]# scp -r spark root@192.168.185.152:/usr/local/# 别忘在另外两个节点也要在/etc/profile下配置环境变量并source一下使生效!
[root@master local]# cd spark/spark-2.4.0/
[root@master spark-2.4.0]# sbin/start-all.sh
启动完毕后在主机浏览器访问界面:http://192.168.185.150:8080/
OK成功,到此为止,Spark配置就结束了!现在我们来测试运行一个spark内部自带的计算圆周率的例子代码:
[root@master spark-2.4.0]# ./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local \
examples/jars/spark-examples_2.11-2.4.0.jar
总结
[转]大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)相关推荐
- 【Dash搭建可视化网站】项目10:疫情数据可视化大屏制作步骤详解
疫情数据可视化大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完善 ...
- 【Dash搭建可视化网站】项目12:全球恐怖主义数据大屏制作步骤详解
全球恐怖主义数据大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完 ...
- 【Dash搭建可视化网站】项目13:销售数据可视化大屏制作步骤详解
销售数据可视化大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完善 ...
- Linux下服务器基本环境搭建步骤详解(三种软件安装方式)
Linux下服务器基本环境搭建 小伙伴们注意看:下面使用三种方式分别安装JDK.Tomcat.Docker进行演示 操作系统基于CentOs7. 文章目录 Linux下服务器基本环境搭建 前言 一.L ...
- ftp服务器搭建步骤详解
本文中ftp服务器搭建是依靠fileZillar这个软件.其下载地址如下所示: https://www.filezilla.cn/download/server 搭建步骤如下: 安装 安装过程中,需要 ...
- 详解Hadoop核心架构HDFS+MapReduce+Hbase+Hive
通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS.MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心. 通 ...
- react结合ts与mobx环境搭建步骤详解
由于react ts mobx 版本上的更新,一些配置信息也在随时更新,使得有时候,在更新版本时,一些配置文件出错,让我们措手不及,现将三者环境搭建配上,废话不多说 思路:新建react 应用,利用弹 ...
- python3.7安装numpy库和matplotlib库_详解Python中的Numpy、SciPy、MatPlotLib安装与配置
用Python来编写机器学习方面的代码是相当简单的,因为Python下有很多关于机器学习的库.其中下面三个库numpy,scipy,matplotlib,scikit-learn是常用组合,分别是科学 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
最新文章
- 【硬件基础】振荡(时钟)周期、状态周期、机械周期、指令周期
- iphone开发UITable内嵌不同风格Table
- 超越MobileNetV3,谷歌提出MobileDets:移动端目标检测新标杆
- EDM数据营销概念简要介绍
- python 删除字符串中空格
- JQuery DOM基本操作
- cpp判断输入为数字_猜数字小程序带你C语言入门
- 梯度下降和EM算法,kmeans的em推导
- C++笔记-构造内存泄漏检测类的基本思路
- 在markdown中通过html语法实现表格中的有序列表和无需列表
- [WCF]终结点与服务寻址(一)
- 关于WEB标准的理解
- kettle基础使用教程
- 那些年用过的机械键盘
- 手机反编译java源码,Android反编译(一)之反编译JAVA源码
- 微信公众号认证流程-微信公众号使用教程3
- 【Kernel】驱动开发学习之Platform平台总线模型
- 如何用网页脚本追踪用户
- Android平台移植FFmpeg和x264
- 怎么理解卡卷会员接口