基于centos7的hadoop2.7、zookeeper3.5、hbase1.3、spark2.3、scala2.11、kafka2.11、hive3.1、flume1.8、sqoop1.4组件部署

spark02: 围绕Spark3.0.1为主Hadoop3.2、Mysql、Hbase2.3.3、Hive3.1.2、ZooKeeper3.5.5、Flume、Kafka、Redis搭建 非生产环境,就使用一个新一点的版本,提前先踩踩坑,版本的选型真是一个头疼的问题,先看一下apache的官网的测试图: 先选好Spark:3.0.1 对应的Hadoop:3.2和2.7中选一个,综合上面的图,2.7无法使用HBase,只能选3.2了 #hadoop软件: http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1-src.tar.gz #spark软件: http://archive.apac 阅读详情

部署前准备

修改主机名

1、修改主机名(6台机器都要操作,以Master为举例)

    hostnamectl set-hostname Master(永久修改主机名)

    reboot(重启系统)

修改hosts

将第一行127.0.0.1 xxxx注释掉,加上:

195.168.2.127 master

195.168.2.128 slave1

195.168.2.129 slave2

确认网卡信息

vi /etc/sysconfig/network-scripts/ifcfg.ens0

BOOTRPROTO=static

IPADDR=192.168.2.127

NETMASK=255.255.255.0

GATEWAY=192.168.2.1

DNS1=192.168.2.1

DNS2=8.8.8.8

NAME=ens32

ONBOOT=yes

DEVICE=ens32

systemctl restart network

修改以上三个后> reboot

重启后确认IP是否都是设置那样了

ssh

1、 ssh生成密钥(6台机器都要操作)

      ssh-keygen -t rsa (连续三次回车)

2、将3台的id_rsa_pub合并到一个authorized_keys上

分别登陆slave1、slave2,输入:

> scp .ssh/id_rsa.pub master:/home/kfs/.ssh/id_rsa_slave1

> scp .ssh/id_rsa.pub master:/home/kfs/.ssh/id_rsa_slave2

在master输入:

> cat  ~/.ssh/id_rsa*  >> authorized_keys

> scp .ssh/ authorized_keys slave1:/home/kfs/.ssh/

> scp .ssh/ authorized_keys slave2:/home/kfs/.ssh/

每台都修改权限:

> chmod 600 authorized_keys

  1. 每台各自登陆

(首次ssh会输入yes,所以需要进行这一步)

slave1、salve2同样进行以上步骤

防火墙

systemctl stop firewalld.service

安装jdk

卸载原来的jdk

1、安装jdk之前,先检查是否已经安装了open的jdk,有的话需要先卸载(6台机器都要卸载)

    java -version

2、查看有jdk的存在,需要先卸载然后再安装oracle的jdk

    rpm -qa | grep java      (查询java版本)

3、rpm -e --nodeps xxx      (逐个删除完)

解压配置新的JDK

1、登陆kfs用户,解压到/home/kfs/下

     > tar- zxvf jdk-8u144-linux-x64.tar.gz -C ~/

2、.jdk的环境变量配置(使用的是在root目录下的全局配置文件/etc/profile,6台机器都要配置,master举例)

      > vi ~/.bashrc

export JAVA_HOME=/home/kfs/jdk1.8.0_141

export PATH=$PATH:$JAVA_HOME/bin

保存退出之后使用命令让配置生效

> source /etc/profile

  验证版本

>java -version

安装架构

安装的软件明细

JDK

scala

hadoop

hive

mysql

sqoop

zookeeper

hbase

flume

spark

kafka

Master

√

√

√

√

√

√

√

√

Slave1

√

√

√

√

√

√

√

√

√

√

√

Slave2

√

√

√

√

√

√

√

√

安装的软Hadoop HA件明细

QuorumPeerMain

journalnode

namenode

nodemanager

DFSZKFailover

datanode

resourcemanager

master

√

√

√

√

√

√

slave1

√

√

√

√

√

√

√

slave2

√

√

√

√

√

服务说明

QuorumPeerMain

是zookeeper集群的启动类,用于加载配置启动QuorumPeer线程,确定了基于paxos算法的zookeeper集群数量;QuorumPeer线程是zookeeper的Laeder选举的启动类,负责选举算法、zk数据恢复、启动leader选举等。

在zookeeper/conf/zoo.cfg  server.x个数确定;

启动不起来,根据报错信息排查zoo.cfg的server.x=master:2888:3888、dataDir=xx是否包含myid(从1开始)。

Journalnode

实现两个NameNode之间的数据同步,通过一组JournalNodes(JNs)的独立进程进行相互通信,当active状态的namenode的命名空间有变化,会通知大部分的JournalNode进程。Standby的namenode有能力读取JNs的变更信息,并监控edit log的变化,同时将变化应用于自己的命名空间,保证了集群出错时,acitive和standby的空间状态是一致的。

Namenode

负责客户端(web)请求的相应;元数据的管理、查询。

启动时,将fsimage(镜像)载入到内存,并执行(replay)编辑日志editlog的各项操作;一旦在内存建立文件系统元数据映射,则创建一个新的fsimage文件(元数据镜像文件:保存文件系统的目录树)、一个空的editlog(元数据操作日志:针对目录树的修改操作)文件;

开始监听RPC和HTTP请求。

DFSZKFailover

Failover故障转移需要两个组件:Zookeeper quorum(仲裁:驱动ZKFC的运转)、ZKFCFailoverController进程(ZKFC)。

ZKFC:每个NameNode上运行的zookeeper一个zookeeper进程,主要是监控namenode的健康状态、zookeeper会话管理、基于zookeeper的选举。

​

 

Datanode

负责管理所在节点上存储的数据读写,及存储数据;每三秒datanode节点向namenode发送心跳信号和文件块状态报告;执行数据的流水线复制。

​

 

Resourcemanager & Nodemanager & ApplicationMasters

1、ResourceManager(RM),是集群资源的仲裁者,它包括两部分:一个是可插拔式的调度Scheduler,一个是ApplicationManager,用于管理集群中的用户作业。

2、NodeManagers (NMs)从ResourceManager获取指令并管理本节点的可用资源(Container使用情况)

3、ApplicationMasters (AMs)的职责是从ResourceManager谈判资源(Containers),为NodeManagers启动容器,并且和NodeManager交互来执行和监控具体的task。

​

 

Hmaster & HRegionserver

Hmaster 作用:管理用户对table表的增删改查;管理HRegion服务器的负载均衡,调整HRegion的分布;在HRgion分裂后,负责新的HRegion的分配;HRegion停机后,负责失效HRegion服务器上HRegion的迁移。

HRegionsServer一般和DataNode在同台机器运行,实现数据的本地行。HRegionsServer包含多个HRegion,由HLog(副本机制,防止hbase宕机)、BlockCache(读缓存,默认 on-heap LRUBlockCache 和 BucketCache)、HStore(HBase的存储核心,memStore和storeFile组成)、HFile(HbasekeyValue数据、Hadoop的二进制)组成。

jobhistory & historyServer

historyServer同时启动两个定时任务线程,分别解析eventLog和清理过期的eventLog日志文件,默认18080.

Runjar(metadata、metastore、hiveserver2)

metadata(需要初始化):hive元数据定义的表名,一般存在mysql中,在测试阶段也可以用hive内置Derby数据库。

metastore:hivestore服务端。主要提供将DDL,DML等语句转换为MapReduce,提交到hdfs中。默认监听端口是:9083

hiveserver2:hive服务端,提供hive服务,可以通过beeline、jdbc(java代码连接)等多种方式多客户端连接到hive。基于Thrift RPC的实现是HiveServer的改进版本。默认10002端口,可以master:10002/jmx获取指标。

端口列表

组件

Daemon

端口

配置

说明

HDFS

DataNode

50010

dfs.datanode.address

datanode服务端口,用于数据传输

50075

dfs.datanode.http.address

http服务的端口

50475

dfs.datanode.https.address

https服务的端口

50020

dfs.datanode.ipc.address

ipc服务的端口

NameNode

50070

dfs.namenode.http-address

http服务的端口

50470

dfs.namenode.https-address

https服务的端口

8020

fs.defaultFS

接收Client连接的RPC端口,用于获取文件系统metadata信息。

journalnode

8485

dfs.journalnode.rpc-address

RPC服务

8480

dfs.journalnode.http-address

HTTP服务

ZKFC

8019

dfs.ha.zkfc.port

ZooKeeper FailoverController,用于NN HA

YARN

ResourceManager

8032

yarn.resourcemanager.address

RM的applications manager(ASM)端口

8030

yarn.resourcemanager.scheduler.address

scheduler组件的IPC端口

8031

yarn.resourcemanager.resource-tracker.address

IPC

8033

yarn.resourcemanager.admin.address

IPC

8088

yarn.resourcemanager.webapp.address

http服务端口

NodeManager

8040

yarn.nodemanager.localizer.address

localizer IPC

8042

yarn.nodemanager.webapp.address

http服务端口

8041

yarn.nodemanager.address

NM中container manager的端口

JobHistory Server

10020

mapreduce.jobhistory.address

IPC

19888

mapreduce.jobhistory.webapp.address

http服务端口

HBase

Master

60000

hbase.master.port

IPC

60010

hbase.master.info.port

http服务端口

RegionServer

60020

hbase.regionserver.port

IPC

60030

hbase.regionserver.info.port

http服务端口

HQuorumPeer

2181

hbase.zookeeper.property.clientPort

HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。

Hive

Metastore

9083

/etc/default/hive-metastore中export PORT=<port>来更新默认端口

HiveServe2r

10002

/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口

ZooKeeper

Server

2181

/etc/zookeeper/conf/zoo.cfg中clientPort=<port>

对客户端提供服务的端口

2888

/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分

follower用来连接到leader,只在leader上监听该端口。

3888

/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分

用于leader选举的。只在electionAlg是1,2或3(默认)时需要。

安装zookeeper

单数台10-3、20-5,选举的半数机制保证运行

解压、配置一个配置文件conf/下cp zoo_sample.cfg zoo.cfg、根目录下新建两个文件夹data  log、data下新建文件myid内容为1或2(不同主机不同myid)..

dataDir=/home/kfs/zookeeper-3.4.5/data

dataLogDir=/home/kfs/zookeeper-3.4.5/log

clientPort=2181

server.1=master:2888:3888

server.2=salve1:2888:3888

server.3=salve1:2888:3888

> echo “1” > data/myid

不用在profile增加环境变量,运行都是bin/zkServer.sh start 

 安装hadoop

先对一个进行配制好,然后scp到集群每台上运行

四个配置文件core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves

在hadoop-2.8.4/etc/hadoop下

core-site.xml

​

 

hdfs-site.xml

​

​

 

mapred-site.xml

QPpQAAEQAAEQAAEQAAEQAAEBlhvgRGAAAiAAAiAAAiAAAiAAAicOgHELafeQ5APBEAABEAABEAABEAABEAAcQtsAARAAARAAARAAARAAARA4NQJIG459R6CfCAAAiAAAiAAAiAAAiAAAohbYAMgAAIgAAIgAAIgAAIgAAKnTgBxy6n3EOQDARAAARAAARAAARAAARBA3AIbAAEQAAEQAAEQAAEQAAEQOHUCiFtOvYcgHwiAAAiAAAiAAAiAAAiAwP8Dhe+P8lKlfGIAAAAASUVORK5CYII=

z56F7AATIAJMAEmwASYABNgAhdEgOPvC+psVpUJMAEmwASYABNgAkzg6AT+H0QPA2nbHnlDAAAAAElFTkSuQmCC

yarn-site.xml

​

 

yarn.nodemanager.aux-services           mapreduce_shuffle

yarn.resourcemanager.recovery.enabled    true

yarn.resourcemanager.store.class          org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore

yarn.nodemanager.resource.memory-mb   8192

yarn.nodemanager.resource.cpu-vcores    8

yarn.scheduler.maximum-allocation-mb    8192

yarn.scheduler.maximum-allocation-vcores  4

slaves

​

两个脚本文件设置java环境:hadoop-env.sh、yarn-env.sh

​

 

需要主要windows复制过去的话,换行符的格式的问题。

vi  **.sh

set ff=unix

sed -i  “s/\r//”  **.sh 

kfs用户修改/home/kfs/.bashrc文件

​

>  source /home/kfs/.bashrc

新建文件夹hadoop.tmp.dir、dfs.journalnode.edits.dir的目录

>  mkdir  /home/kfs/data/hadoop-data/tmp

>  mkdir  /home/kfs/data/hadoop-data/journaldata

启动(包括zookeeper)

首次启动

1、首先启动各个节点的Zookeeper,在各个节点上执行以下命令:

> bin/zkServer.sh start

2、在每个journalnode节点用如下命令启动journalnode

> sbin/hadoop-daemon.sh start journalnode

3、在主namenode节点格式化namenode和journalnode目录

> hdfs namenode -format ns

4、在主namenode节点启动namenode进程

> sbin/hadoop-daemon.sh start namenode

5、在备namenode节点执行第一行命令,这个是把备namenode节点的目录格式化并把元数据从主namenode节点copy过来,并且这个命令不会把journalnode目录再格式化了!然后用第二个命令启动备namenode进程!

> hdfs namenode -bootstrapStandby

> sbin/hadoop-daemon.sh start namenode

6、在某一个namenode节点执行如下命令,创建命名空间

> hdfs zkfc -formatZK

7、在两个namenode节点都执行以下命令

> sbin/hadoop-daemon.sh start zkfc

8、启动dfs

> sbin/start-all.sh

9、启动备regionserver

> sbin/yarn-daemon.sh start resourcemanager

用jps查看一下起的进程是否正确

  ULhPofdr9AmEkNpgpECqgvGKlK7M0YYaT8aDSqgCqgCqgCqoAqoAqoAqqAKqAKqAKqgCrwjhT4f+g3CoRyWvQeAAAAAElFTkSuQmCC AUnjGdxVlx7eAAAAAElFTkSuQmCC 8+5M11kxFHAAAAAElFTkSuQmCC

后续启动

(zookeeper)节点启动:zookeeper/bin/zkServer.sh start

(yarn)两个rm节点分别运行:hadoop-2.8.4/sbin/yarn-daemon.sh start resourcemanager

(yarn)在主或者备节点启动:hadoop-2.8.4/sbin/start-yarn.sh

(zkfc namenode datanode)所有:hadoop-2.8.4/sbin/start-all.sh

确保每个zookeeper集群启动成功后,再启动dfs,这个步骤可能需要多次;

停止stop-dfs.sh、stop- yarn.sh、stop-all.sh

(Historyserver)Historyserver:sbin/mr-jobhistory-daemon.sh start/stop historyserver

可访问的地址

Hadoop hdfs:http:// slave1:50070/dfshealth.html#tab-overview

一个active,一个standy

Hadoop hdfs  datanode : http://slave1:50075/datanode.html

Hadoop yarn resourcemanager:http://master:8088

如果配置了mapreduce的historyserver

则通过./sbin/mr-jobhistory-daemon.sh start/stop historyserver

​

 

访问http://master:19888

实操

hadoop fs(使用范围最广,对象:可任何对象);hdfs dfs(只HDFS文件系统相关,常用),下面测试两者一样。

创建三个测试文件

​

 

创建目录,将测试文本Put到目录上

#本地的/home/hdfs/input/文件夹下有多个txt文件,每个单词单独一行

hadoop fs -mkdir -p /hadoop/test

hadoop fs -ls /hadoop/test/

hadoop fs -put test/*  /hadoop/test/

运行测试(testout不能存在)

hadoop-mapreduce-examples-2.7.0.jar在路径share/hadoop/mapreduce下

yarn jar ~/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /hadoop/test /hadoop/testout

hadoop dfs -ls  /hadoop/testout

hadoop dfs -cat  /hadoop/testout/part-r-00000

hadoop fs -rm -r -skipTrash /hadoop/testout

​

 

原理

Yarn

​

 

Hdfs

mapreduce.map.java.opts控制maptask堆内存大小。(不够会报错 java.lang.outofmemoryerror)

​

 

安装hbase(scp每台都需要启动)

/home/data目录下创建hbase-data存放hbase的数据 data和log、pids、tmp

​

 

修改hbase-site.xml、hbase-env.sh、regionservers

hbase-site.xml

​

hbase-env.sh

​

regionservers

​

 

复制hadoop/etc/hadoop下的core-site.xml和hdfs-site.xml文件到hbase的conf下

拷贝新建的文件夹data、hbase的文件夹到别的节点上

>  scp -r /home/kfs/data/hbase-data/ slave1:/home/kfs/data/

>  scp -r /home/kfs/hbase-1.2.6/ slave1:/home/kfs/

启动

返回kfs用户启动主HMaster

>  ./hbase-1.2.6/bin/start-hbase.sh

启动Slave1作为备份的HMaster

>  ./hbase-1.2.6/bin/ start-hbase.sh start master

​

 

其他节点,有个别节点没有启动HRegionserver,则单独启动

  >  ./hbase-1.2.6/bin/hbase-daemon.sh start regionserver

失败可改大时间(需要集群时间一致,不然会报错!!)

hbase的hbase-site.xml配置文件下添加hbase.master.maxclockskew

++f379cs3h4LwQQAEQAAEQOCNCHzdxz6a92jqaORvlDy4CgIgAAIgAAIXgX8BZHxQqy98zKwAAAAASUVORK5CYII=

AQUejIulSrshAAAAAElFTkSuQmCC

可访问地址

   主Hmaster、备:Hmaster、HRegionServer,其他:HRegionServer

   Master:16010、Slave1:16010

安装spark

cluster模式和client模式

cluster模式:Driver程序在YARN中运行,Driver所在的机器是随机的,应用的运行结果不能在客户端显示只能通过yarn查看,所以最好运行那些将结果最终保存在外部存储介质(如HDFS、Redis、Mysql)而非stdout输出的应用程序,客户端的终端显示的仅是作为YARN的job的简单运行状况。

client模式:Driver运行在Client上,应用程序运行结果会在客户端显示,所有适合运行结果有输出的应用程序(如spark-shell)

spark on Standalone

bin/spark-submit --master spark://master:6066 --deploy-mode cluster  --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar 1000 --num-executors 3

bin/spark-submit --master spark://master:7077 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar 1000 --num-executors 3

spark on yarn

启动HDFS和YARN(不用启动master和woker),在client节点配置中spark-env.sh添加JDK和HADOOP_CONF_DIR目录,Spark程序将作为yarn的客户端用户提交任务。HADOOP_CONF_DIR是Saprk On Yarn与StandAlone重要区别。

yarn-client和yarn-cluster提交任务的方式:

# --master yarn(默认client模式) 等价于 yarn-client(已弃用)和--master yarn --deploy-mode client

./bin/spark-submit --master yarn --driver-memory 1g --executor-memory 1g --executor-cores 2 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar 1000

./bin/spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar 1000

# 如果按照集群cluster的方式提交任务,--num-executors 3也都是2,如果客户端,则三个exector都有任务。

先安装scala

root用户下的usr创建一个scala文件夹将scala安装包复制到其中然后解压

/etc/profile

40sMER1AOv0AAAAAElFTkSuQmCC

查看scala版本

  scala -version

​

解压spark,配置conf/spark-env.sh、slaves、spark-defaults.conf

spark-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_141

export SCALA_HOME=/usr/scala/scala-2.13.6

export HADOOP_HOME=/home/kfs/hadoop-2.8.4

export HADOOP_CONF_DIR=/home/kfs/hadoop-2.8.4/etc/hadoop

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark"

​

 

slaves

下面有的,就会运行woker,一般master运行worker

​

 

将spark拷贝到其他节点  /etc/profile

scp -r spark-2.3.0-bin-hadoop2.7/ slave1:/home/kfs/spark-2.3.0-bin-hadoop2.7/

​

 

启动spark集群

./sbin/start-all.sh

启动不起来一般就是slaves或者是spark-env.sh配置错了。

备用的运行:   sbin/start-master.sh

查看master:8080

master:8080和http://master:8088/cluster   (一个会显示alive,一个是standby)

如果需要看历史

cp spark-defaults.conf.template spark-defaults.conf

需要记住三个字段

spark.eventLog.dir          hdfs://ns1/ sparklog

spark.history.fs.logDirectory  hdfs://ns1/sparklog

spark.yarn.historyServer.address  master:18080

​

 

hdfs创建目录

r75ufN0eH+dgLOm4rttjEAgdUEHljPD3RpNXX0QQACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEHgLAn8AP7F0hjGkV1AAAAAASUVORK5CYII=

X46rvIB3O0CApiIAACIAACn5UA5uhnjRzsBgEQAAEQeHkC+Pnoy4cYDoIACIAACBwkgDl6EC5UgwAIgAAIvDyBfwEIIIVwd8gqlwAAAABJRU5ErkJggg==

实操测试

./spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 2G --num-executors 2 ../examples/jars/spark-examples_2.11-2.3.2.jar 100

如果报错:Spark context stopped while waiting for backend,则修改hadoop/yarn-site.xml,重启hadoop

rgQSUAAAAASUVORK5CYII=

同时检查conf/spark-env.sh

2kMgnSvzWeDAAAAAElFTkSuQmCC

运行成功后,可以在18080查看。

(以上都是针对yarn的情况,Standalone比较简单,但是env.sh和conf都需要修改!)

安装kafka(除了主 都需要)

​

 

解压缩搜,修改配置文件server.properties,注意该文件不同的主机不同的配置

broker.id=0

port=9092

log.dirs=/home/data/kafka-data/log-0

zookeeper.connect=localhost:2181

#日志保存天数(3天或者更短)

​

 

新建文件夹/home/data/kafka-data/log-0 ,scp后,每台对应修改host.name、broker.id

启动kakfa服务(除主外都启动)

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

测试

# 创建topic

kafka/bin/kafka-topics.sh --create --zookeeper slave1:2181 --replication-factor 2 --partitions 1 --topic lztest

# 创建消费者

kafka/bin/kafka-console-consumer.sh --zookeeper slave1:2181 --topic lztest --from-beginning

# 创建生产者

kafka/bin/kafka-console-producer.sh --broker-list slave1:9092 --topic lztest

# 测试直接在生产者输入内容,即可在消费者看到数据

安装hive (一台即可)

与hbase区别

4AAAAASUVORK5CYII=在这里插入图片描述

排查原来的数据库是否存在并卸载,重新安装Mysql

卸载

​ 

安装

rpm安装包

rpm -ivh mysql-(common/community-lib/community-client/community-server)-8.0.1.rpm

绿色版

https://blog.youkuaiyun.com/qq_40053836/article/details/104113347

(root)tar -zxvf 解压到  /usr/local/mysql8.0.11下载,在目录下创建log、data文件夹

检查创建mysql用户和mysql组:

      useradd mysql

  • 给文件夹修改用户和组

chgrp -R mysql mysql8.0.11/

chown -R mysql mysql8.0.11/

  • 初始化mysql(要用绝对路径)

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

初始化成功后后面会出现密码。

  • 在etc下面创建我们的配置文件和运行参数文件

配置文件

touch /etc/my.cnf

运行参数文件

vi /etc/my.cnf

​

  •  启动服务

mysql/support-files/mysql.server start

如果报错/tmp/xx.sock,则创建一个软连接到报错的路径上:

ln -s /usr/local/mysql-8.0.11/mysql.sock /tmp/mysql.sock,再启动即可。

  • 登录到mysql,修改root密码和Host

ALTER(create) USER 'root'@'localhost' IDENTIFIED BY 'lz..';

update user set host='%' where user='root';

FLUSH PRIVILEGES;

  • 创建hive数据库,并修改编码

mysql>drop database hive;

mysql>create database hive;

mysql>ALTER DATABASE hive character set latin1;

创建一个hive的用户并设置权限(要不要都行,可以在hive配置文件用着root)

​

hive 配置(conf下新增hive-site.xml、mysql-connector-java-8.0.11.jar复制到hive的lib)​

将mysql-connector-java-8.0.11.jar复制到hive的lib目录下

/etc/profile

 export HIVE_HOME=/home/kfs/apache-hive-2.3.2-bin

 :$HIVE_HOME/bin:$HIVE_HOME/conf

启动hive 服务

初始化元数据库

bin/schematool -initSchema -dbType mysql -verbose

 ./bin/hive --service metastore &

./bin/hive –service hiveserver2 &

 查看jps有两个RunJar

​

 

实操

启动hive

/bin/hive 

show tables;

create table test1(a string,b int)

show tables;

优化

数据倾斜的负载均衡

数据倾斜:就是大量的相同key被partition分配到一个分区里,map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长。

办法:增加jvm内存、增加reduce的个数、自定义分区partition、重新设计key、使用combinner合并(map red之间)。

> hive

> set hive.groupby.skewindata=true;

默认该参数的值为false,表示不启用,要启用时,可以set hive.groupby.skewindata=ture;进行启用。

当启用时,能够解决数据倾斜的问题,但如果要在查询语句中对多个字段进行去重统计时会报错。

部署报错

下面的两个报错气都都是要做的

启动服务报错MetaException(message:Version information not found in metastore. )

1、配置文件加上

<property> <name>hive.metastore.schema.verification</name> <value>false</value></property>

2、mysql中hive数据库的编码

mysql> alter database hive character set latin1;

hive中创建数据库失败Error: Table 'CTLGS' already exists (state=42S01,code=1050)

手动初始化元数据库

bin/schematool -initSchema -dbType mysql -verbose

"Host '192.168.2.129' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

mysql root的错误链接次数已满,运行:./bin/mysqladmin  -uroot -p  -h localhost flush-hosts

配置文件需要确保用户具备%的host

Error: Table 'CTLGS' already exists (state=42S01,code=1050)

这是再次执行格式化元数据(bin/schematool -initSchema -dbType mysql -verbose)的报错,可以删掉mysql的hive数据库重建,再执行格式化元数据库就不会报错。也可以直接启动hive服务进行使用。

安装Flume (除了主外都需要)

数据源-> source -> channel -> sink

解压缩后,编辑两个文件conf/flume-env.sh、conf/flume-conf.properties

flume-env.sh

cp flume-env.sh.template flume-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_141

flume-conf.properties

​ 

scp -r /home/kfs/apache-flume-1.8.0-bin/ slave2:/home/kfs/

启动flume

./bin/flume-ng agent --conf ./conf/ --conf-file ./conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=12345

ZhUSM01ZpyEAAAAASUVORK5CYII=

启动成功

ps -aux | grep flume

ps -aux | grep flume | awk '{print $2}' | xargs kill

与kafka交互配置

​

 

# 在matser运行flume

./bin/flume-ng agent --conf ./conf/ --conf-file ./conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console  -Dflume.monitoring.type=http -Dflume.monitoring.port=12345

# 在slave1创建topic

kafka/bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --replication-factor 3 --partitions 1 --topic cmcc

# 查看有没有生成目标topic

bin/kafka-topics.sh --list --zookeeper hadoop02:2181

# 在slave2创建消费者,消费数据

bin/kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topicName --from-beginning

# 生产者:./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic first_topic

# 另起一个ssh,telnet master 4444 ,输入内容即可在slave2看到数据,在slave1也有topic数据的新增。

目录hdfs存入

​

 

=左右不能有空格,DataStream这样hdfs的文件就不会有乱码。

# 在master 新建/data/flume-data/spooldir文件夹,hdfs上新建/flume/events/21-8-4

hdfs dfs -mkdir /flume/events

# 在master 运行flume

./bin/flume-ng agent --conf ./conf/ --conf-file ./conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console  -Dflume.monitoring.type=http -Dflume.monitoring.port=12345

windows上telnet master 5555

输入一些内容即可在hdfs上看到数据

# 在master的flume/data文件夹下随便写入一些数据到一个文件下

echo "Hello Flume 111 !!!" > file1.txt

# 可以看到flume有日志输出到shell上,通过网页50070或者hdfs命令可以查看数据

hdfs dfs -cat /flume/FlumeData.1627392071366

文件下沉到hdfs

只需要修改两行

# Describe/configure tail -F source1

a1.sources.r1.type=exec

a1.sources.r1.command =tail -F /export/taillogs/access_log

failover和负载均衡load_balancer

主节点(采集数据source)                                 slave1、slave2下沉到hdfs ​

iAAAiAAAjkl8P8DU2rH1leTqVAAAAAASUVORK5CYII= w9myc06le+pkwAAAABJRU5ErkJggg==

安装Sqoop

在备1配置运行即可

解压,配置conf/sqoop-env.sh

cp sqoop-env-template.sh  sqoop-env.sh

​

 

.jar包的移动

将sqoop-1.4.7.jar复制到 $HADOOP_HOME/share/hadoop/mapreduce/

将JDBC.jar包拷贝到sqlserver和MySQL分别需要用到的jar包拷贝至lib下(自己选择拷贝什么jar)

./bin/sqoop list-databases --connect jdbc:mysql://slave1:3306/ --username root --password lz..

bin/sqoop import --connect jdbc:mysql://slave1:3306/hive --username root --password lz.. --table TBLS  --columns id,name,sex -m 1 --target-dir '/sqoop/hive'

搭建大数据集群架构Hadoop+Hive+Hbase+Spark+Zookeeper+Phoenix+Sqoop+Flume+Kafka+Azkaban 大数据集群搭建 目录 概叙 4 1.1 引言 4 1.2 集群拓扑图 5 1.3 整体架构图 5 1.4 设备选型 6 1.5 版本选择 6 1.6 功能分布 7 集群基础配置 7 2.1修改主机名 7 2.2 hosts主机名IP映射文件修改 7 2.3关闭防火墙 8 2.4 配置免秘钥SSH 8 2.5 Jdk安装 8 2.6 Mysql安装 8 集群组件配置 9 3.1 Hado... 阅读详情

相关推荐

大数据学习路线:从Java基础到Flink实战的四年经验总结

大数据技术体系的核心在于高效处理海量数据,其底层原理依赖于分布式存储与计算框架。以Hadoop生态为例,它通过HDFS实现数据分布式存储,利用MapReduce模型进行并行计算,并通过YARN进行资源调度,从而解决了传统单机系统在数据规模上的瓶颈。这种架构为数据分析、实时计算等场景提供了强大的技术支撑,广泛应用于互联网、金融、政务等领域的数据处理需求。本文基于Hadoop集群部署和MapReduce编程等实践热词,分享了一条从编程基础、集群搭建到项目实战的系统学习路径,帮助初学者构建完整的大数据知识体系。

chengyixian7877的博客 352

http://www.cnblogs.com/elleniou/archive/2012/07/31/2617312.html

[正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-

hit_mlb的专栏 3万+

Centos7下搭建大数据处理集群(Hadoop+Spark+Hbase+Hive+Zookeeper+Kafka+Flume)详细步骤

一.目录 二.集群规划 三.虚拟机准备及基础配置设置 四.Hadoop 4.1安装Hadoop 4.1.1上传解压安装包 1.创建软件安装包上传目录/opt/package,Hadoop安装目录/opt/hadoop [root@hp1 opt]# mkdir package [root@hp1 opt]# mkdir hadoop 2.将下载好的Hadoop安装包上传到/opt/package...

风尘子曰 3317

Second season twelfth and thirteenth episode,what happened in the search for Marcel?

[Scene: In a TV commercial that the gang is watching at Monica and Rachel's.] [A guy is sitting at his desk and his boss comes in and drops a huge pile of papers on his desk. The guy looks dejected.] COMMERCIAL VOICEOVER: Can't get the monkey off your back

xiyangxia666hui的博客 3万+

从零开始的LinuxCentOS7大数据开发相关软件安装(jdk、mysql、es、hadoop[伪分布式]、zookeeper[伪分布式]、hbase、hive、sqoop)

从零开始的LinuxCentOS7大数据开发相关软件安装 大家好~本篇文章用来记录本人学习大数据时所用软件的安装流程 别问 问就是给自己写备忘录→v→ 安装JDK1.8 安装MYSQL 安装ES 安装HADOOP 安装ZOOKEEPER

XelNaga_Accu的博客 374

hadoop3.1.3集群搭建(基于Flink电商项目实战)

介绍 本文这里的hadoop3.1.3的集群仅仅指hadoop本身的搭建,不涉及到其他框架整合;Flink实时电商实战项目中HDFS部分是基于此版本,B站上有这个版本的安装视频: Flink实时电商项目实战 项目框架整合下载 提取码:whqf 搭配环境 VMware16(注意不要使用15,容易蓝屏,如果出现蓝屏,大概率是系统兼容性问题,建议改用16,激活码搜索即可,很方便) 安装硬件,安装虚拟机; 账户:root 密码:root 用户名:chenxu 密码:root 配置IP时要注意:VMware、win1

日句灬的博客 1510

Centos7配置java+hadoop+mysql+hive+zookeeper+kafka+hbase+kylin+scala+spark+superset+sqoop及报错解决

配置hadoop时出现错误 vi /etc/hadoop bash: bin/hadoop: Permission denied 原因为权限不够,chmod u+x /etc/hadoop 后可以解决。其他同样报错同理

叶柖的博客 1066

Hadoop集群的完整搭建(Hadoop完全分布式+ZooKeeper+Mysql+Hive+Hbase完全分布式+Spark完全分布式)

Hadoop集群的完整搭建准备工作网络环境的配置修改网关、IP配置映射、主机名重启网络服务,测试ssh的配置jdk的安装Hadoop完全分布式的安装准备工作修改配置文件slaveshadoop-env.shyarn-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml分发到其他节点测试安装Zookeeper准备工作修改配置文件分发即修改文件测试 准备工作 网络环境的配置 修改网关、IP 打开要修改的文件(最后一个文件名可能每个人的不一样)

HR的博客 3102

centos 7 搭建单机版的hdfs,hive,hbase,spark

项目测试需要,服务器有限只能安装单机版的hdfs,hive,hbase,spark 首先做免秘钥登录,后面安装会有很多要输入密码的操作,手动输入太麻烦 方法1. ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 简单解释 生产ssh 秘钥 密码为‘’ 到 用户目录下的 .ssh中 root 目录下有个.ssh 目录 ssh 目录下有 id...

laimao8079的博客 1148

大数据学习总结------在VMware下搭建(hadoop+spark+hbase+hive+zookeeper+kafka+flume)

hadoop学习总结------在VMware下基于Centos7搭建(hadoop+spark+flink+hbase+mysql+hive+zookeeper+kafka+flume)集群 准备环境 VMware Workstation,CentOS-7,hadoop-2.7.7, jdk-1.8, flink-1.9, flume-1.8, hive-2.3, hbase-2.2, kafka-2.12, mysql-5.7, mysql-connector-java-5.1, scala-2.12,

qq_32586857的博客 1313

第10章:位同步与Gardner环路(1)

第10章(1)内容如下:一、位同步与载波同步的区别1、采样时钟相位偏差的影响2、采样时钟频率偏差的影响二、Gardner环路算法与插值方法1、插值滤波器2、Gardner误差检查算法三、Gardner环路中环路滤波器与数字振荡器设计1、环路滤波器2、数控振荡器(NCO)四、Gardner环路的可运行MATLAB代码五、参考资料六、致谢 最近搞懂了Gardner环路的一些知识,于是更新第10章——位同步。 如果你稍不留意的话,这可能是你在网上能看到的介绍Gardner环路及其MATLAB仿真最详细的一篇文章了

weixin_44283855的博客 1万+

http://syy7.com/a/25.php,vue_element/vue_elementui.sql at 3ffdcb477ce3fbbc24cf1a4d7e3481a187023a02 ·...

INSERT INTO `user_tb` VALUES ('1', '女', 'burtyang', 'C041580E1C6192B6084E03CE76D5C05C', '18', null, 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAwICQoJBwwKCQoNDAwOER0TERAQESMZGxUdKiUsKykl...

weixin_34064233的博客 177万+

手把手教你用89C52单片机驱动0.96寸OLED(IIC接口,附完整代码)

本文详细介绍了如何使用89C52单片机通过I2C接口驱动0.96寸OLED显示屏,包括硬件连接、I2C通信原理、SSD1306驱动芯片的初始化及显存管理技巧,并提供了完整的代码示例和常见问题排查方法,帮助电子爱好者快速掌握OLED显示技术。

weixin_30781433的博客 370

91sp.vido.ws index.php_index

Departamentde Filologia Anglesa i Alemanya=o:p>Universitatde =València___________________________________________=__José Santaemilia RuizAssociate Professor of English Language and Linguistics.<...

weixin_42514750的博客 24万+

从USB 2.0到USB 3.x:Synopsys SVT USB VIP配置避坑与接口选择指南

本文详细解析了从USB 2.0到USB 3.x的Synopsys SVT USB VIP配置要点,涵盖协议版本选择、物理接口匹配及UVM层次化架构实现。重点介绍了layering sequence的配置技巧和常见问题解决方案,帮助验证工程师高效避坑并优化验证流程。

weixin_42653691的博客 239

OpenClaw 企业级自动化系统架构设计与实现

本文介绍基于 OpenClaw 构建的企业级自动化系统的完整架构设计、技术选型、实现细节和性能优化方案。

2604_95445636的博客 485

Hive集群(3台虚拟机)搭建和交互方式基于Hadoop

我们此处是选择三台虚拟机作为我们hive的安装机器,hive压缩包奉上 hive压缩包奉上,提取码:rr9f 文章目录安装derby版hive直接使用(不建议):使用mysql共享hive元数据(建议)mysql 的安装hive的安装使用方式 安装 derby版hive直接使用(不建议): 解压hive cd /export/soft tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C …/servers/ 直接启动 bin/hive cd …/servers/

v3424的博客 3476

运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案

本文主要介绍了运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案,希望能对使用xx的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

CentOS7.6安装和配置Zookeeper集群(三个节点,亲测通过)

三个节点集群规划: Master: 192.168.1.201 Slave1:192.168.1.33 Slave2:192.168.1.203 Zookeeper版本:zookeeper-3.4.12 1.下载zookeeper.3.4.12.tar.gz 下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz 然后解压: tar -xzvfzooke...

baiyunxiaoxiao_chen的博客 716

Python爬虫实战:采集行业协会、研究机构等平台的政策文件列表与PDF链接批量收集系统,支持自动下载、分类归档和数据库管理(SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 642

YOLOv8【第十一章:视频追踪与流处理篇·第6节】BoT-SORT 改进:结合相机运动补偿(CMC)提升追踪稳定性!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 719

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

1.解压 tar zxvf wmsdk_bundle-xxxxxxx cd wmsdk_bundle-xxxxxxx 2. make installpkgs 3.安装gcc-arm-none-eabi http://blog.csdn.net/al86866365/article/details/47424727 4.编译测试 make boot2 5.下载 Error:

al86866365的专栏 87万+

ABAP SQL Hierarchy 全景参考,组织树、分类树与递归查询在数据库层的优雅落地

ABAP SQL中的hierarchy语法为树形数据结构处理提供了高效方案。S/4HANA系统中常见的成本中心、利润中心、物料分类等树形结构,传统开发需通过递归和嵌套循环处理,而ABAP SQL hierarchies通过将层级遍历能力下沉到SQL层,借助SAP HANA的层级函数支持,实现了更高效的查询。 该功能要求ABAP 7.51+版本,支持两种实现方式:CDS hierarchy用于创建可复用的稳定层级模型,适合业务核心数据;ABAP SQL HIERARCHY generator则适用于临时性层级

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 314

hadoop 3.1.1的集群搭建并完成高可用配置(详细版)

@关于hadoop 3.1.1 集群搭建(四个节点模式) 一、简介 hadoop是Apache基金会的一个顶级项目,本文以hadoop 3.1.1为例,讲述如何从零开始搭建好hadoop集群。 二、准备工作 1.安装平台 安装平台,是指hadoop软件需要搭建在linux系统中。国内有两大知名linux平台,分别是Ubuntu和Centos。 给出官网的下载地址: Ubuntu : https://...

一只程序猿的修炼之旅 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【大数据平台搭建】Hadoop 3.1.3+Spark 3.0.0集群搭建

1、安装环境 vmware、centos 7、jdk 1.8、scala 2.12.11、hadoop 3.1.3、spark 3.0.0(spark 版本对 jdk、scala 版本有要求,详见官方文档) 2、运行环境搭建 3、系统集群规划 4、hadoop配置 5、hadoop 测试 6、spark配置 7、spark 测试 ...

人生何事不浮云 8376

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)

基本配置 系统:CentOS7.6 节点信息: 节点 ip master 192.168.185.150 slave1 192.168.185.151 slave2 192.168.185.152 网络配置 # 注意:centos自从7版本以后网卡名变成ens33而不是我这里的eth0了,我是习惯eth0了所以在安装的时候修改了网卡名,如果你的centos网卡名是e...

pig2guang的博客 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 记录基于腾讯云服务器的Typecho博客迁移
luoz_python
博客等级 码龄10年 57粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值