Zookper安装
云计算与大数据技术-课后习题答案docx (6)[1页]
![云计算与大数据技术-课后习题答案docx (6)[1页]](https://img.taocdn.com/s3/m/02edc3eb6394dd88d0d233d4b14e852458fb396f.png)
6.11 习题答案
1.启动Hadoop集群可以使用一条命令,也可以使用两条命令,它们分别是什么?
答:使用一条命令:start-all.sh;使用两条命令:start-dfs.sh和start-yarn.sh。
2.Hadoop启动成功之后,使用jps命令,分别回答在master和slave端,至少需要看到那几个服务进程已经启动才表示Hadoop启动正确?
答:master机器上:NameNode、SecondaryNameNode、ResourceManager服务进程;slave机器上:NodeManager、DataNode服务进程。
3.试述ZooKeeper正确启动之后,可以看见的它的守护进程是什么?
答:QuorumPeerMain进程。
4.HBase启动成功之后,分别在master和slave端可见的它的守护进程是什么?
答:在hbase的主节点master机器可见HMaster、HRegionServer进程,在从节点slave上可见HRegionServer进程。
5.试叙述如果需要Hbase正常工作的话,Hbase、ZooKeeper、Hadoop三者的启动先后顺序。
答:先启动Hadoop,再启动ZooKeeper,最后启动ZooKeeper。
在前一个正确的基础上,后一个才可以正确运行。
6.试述在安装Hive之前,必须在Linux服务上事先安装什么数据库软件?
答:安装mysql数据库软件。
7.试述在安装Kafka之前,需要在Linux环境下,必须事先安装好什么软件或服务?
答:Kafka工作的时候需要jdk和zookeeper服务,所以必须事先安装。
SolrCloud安装手册基于solr

solrCloud集群安装手册—基于solrS. 2. 1、SolrCloud 集群架构概览1.1 SolrCloud 索引架构SolKloud 的索引存储中,三台服务器都要存索引。
1.2 ZooKeeper 架构ZooKeeper 集群,同时在三台服务器中配置ZooKeepero Shardl SolrCloudshardsShard2其中每一个分片有两份数据,一个是leader^ 同机器上,可以保证在某一台服务器down 掉后, 另一个是备份。
分别存储在不 仍可提供完整的数据服务。
c a har d25 hards —♦114.212-83.2430114.212.86.102O1I4.212.82.189 • 114,212.83.243 0114.212-82489—•114.212.86402/3.1JDK配置(1)解压JDK的压缩包至/usr/local/ U录下tar -zxvf JDK 压缩包位置-C /usr/local/(2)修改配置文件vi /etc/profile在下面添加如下内容export JAVA_HOME=/usr/local/jdkl.8.0_45exp ort CLASSPATH二•:${JAVA_HOME}/lib:${JAVA_HOME}/lib/tools・jarexport PATH=S{JAVA_HOME}/bin:$PATH然后在命令行中输入source /etc/profile输入命令java -version査看是否安装正确3.2Tomcat 配置(1)解压tomcat的压缩包至/home/dell/sofhvare tl录下tar -zx\・f ap aclie-tonicat-8.0.14.tar.gz(2)运行tomcat 中的staitiip.sh 运行tomcat(3)由于防火墙的原因无法访问8080端口,以下步骤为开放8080端口:/sbin/iptables -I INPUT -p tcp -dport 8080 寸ACCEPTservice iptables saveservice iptables restart或者直接禁用防火墙:停止/启动防火墙/sbin/service ip tables restart "重启/sbin/service ip tables stop —停止/sbi n/service ip tables start -启动1)重启后生效开启: chkconfig ip tables on 关闭:chkconfig iptables off2)即时生效,重启后失效开启:service ip tables start 关闭:service ip tablesstop然后访问服务器的8080端口査看tomcat是否安装正确。
dolphinscheduler使用详细介绍 -回复

dolphinscheduler使用详细介绍-回复DolphinScheduler使用详细介绍DolphinScheduler是一款开源的分布式任务调度系统,旨在帮助用户管理和调度复杂的大数据处理工作流。
它具有高可用性、可扩展性和可靠性,并提供了丰富的任务调度能力,包括故障自动转移、任务优先级、任务依赖性管理等。
在本文中,我们将一步一步地介绍DolphinScheduler的各个方面,包括环境搭建、任务编排、任务调度和监控等。
第一步:环境搭建在开始使用Dolphin Scheduler之前,我们首先需要搭建好运行环境。
DolphinScheduler依赖于Hadoop、Zookeeper和MySQL等组件,因此我们需要先安装和配置好这些组件。
具体步骤如下:1. 安装Hadoop:从官方网站上下载Hadoop并解压缩文件,设置好环境变量后启动Hadoop集群。
2. 安装Zookeeper:从官方网站上下载Zookeeper并解压缩文件,配置好Zookeeper的配置文件后启动Zookeeper。
3. 安装MySQL:安装MySQL数据库并创建一个新的数据库用于存储DolphinScheduler的元数据。
第二步:任务编排安装好环境后,我们可以开始使用DolphinScheduler进行任务编排。
DolphinScheduler提供了直观且易于使用的任务编排界面,可以帮助用户快速创建和管理任务工作流。
具体步骤如下:1. 登录DolphinScheduler的Web界面,使用管理员账号登录。
2. 在任务管理页面上,点击“创建工作流”按钮。
3. 为工作流指定一个名称和描述,并选择适当的调度方式和任务优先级。
4. 在工作流编辑器中,将需要执行的任务拖拽到工作流中,并设置任务之间的依赖关系。
5. 对每个任务进行配置,包括脚本路径、参数、依赖关系等。
6. 保存并提交工作流,即可开始执行任务。
第三步:任务调度一旦任务工作流被提交,DolphinScheduler就会根据任务之间的依赖关系自动进行调度。
19253-storm入门到精通-storm2

Storm深入学习
测试storm
A、安装Maven(参考maven安装和使用手册)•接着要修改一下 maven 仓库的存放位置:
找到 maven 下的 conf 下的 settings.xml 配置文件,我的是在D:\Server\maven\conf\settings.xml
Storm深入学习
测试storm
A、安装Maven(参考maven安装和使用手册)
•maven 的仓库默认是放在本地用户的临时文件夹下面的 .m2 文件夹下的 repository 下,我的是在 C:\Users\admcnm\.m2\repository 目录下,
•现在我们来修改将它指定到我们自己的路径下,我现在要将仓库指定到 D:\Repositories\Maven 目录下,只需要将上面注销的本地仓库打开,
Storm深入学习
测试storm
A、安装Maven(参考maven安装和使用手册)
Storm深入学习
测试storm
A、安装Maven(参考maven安装和使用手册)
Storm深入学习
测试storm
A、安装Maven(参考maven安装和使用手册)
Storm深入学习
测试storm
•O、提交运行
•拷贝jar包到Storm所在机器上。
编译无误后,在Storm-starter中target目录如下:将storm-starter-0.0.1-SNAPSHOT-jar-with-
dependencies.jar,拷贝到指定的目录下面。
ClickHouse分布式高可用集群搭建(转载)

ClickHouse分布式⾼可⽤集群搭建(转载)⼀、ClickHouse安装⽅式:源码编译安装Docker安装RPM包安装为了⽅便使⽤,⼀般采⽤RPM包⽅式安装,其他两种⽅式这⾥不做说明。
⼆、下载安装包官⽅没有提供rpm包,但是Altinity第三⽅公司提供了。
地址:https://packagecloud.io/altinity/clickhouse三、配置⽂件安装好rmp包后,默认配置⽂件在/etc/clickhouse-server/⽬录下,主要涉及以下3种配置⽂件,也可以⾃定义配置⽂件位置,如果修改了⽬录记得连带修改启动脚本。
默认启动脚本,注意,这个名字虽然叫server,其实是个shell脚本vi /etc/init.d/clickhouse-server12 CLICKHOUSE_USER=clickhouse13 CLICKHOUSE_GROUP=${CLICKHOUSE_USER}14 SHELL=/bin/bash15 PROGRAM=clickhouse-server16 GENERIC_PROGRAM=clickhouse17 EXTRACT_FROM_CONFIG=${GENERIC_PROGRAM}-extract-from-config18 SYSCONFDIR=/data/clickhouse19 CLICKHOUSE_LOGDIR=/data/clickhouse/logs20 CLICKHOUSE_LOGDIR_USER=root21 CLICKHOUSE_DATADIR_OLD=/data/clickhouse22 LOCALSTATEDIR=/data/clickhouse/lock23 BINDIR=/usr/bin24 CLICKHOUSE_CRONFILE=/etc/cron.d/clickhouse-server25 CLICKHOUSE_CONFIG=$SYSCONFDIR/config.xml26 LOCKFILE=$LOCALSTATEDIR/$PROGRAM27 RETVAL=029 CLICKHOUSE_PIDDIR=/var/run/$PROGRAM30 CLICKHOUSE_PIDFILE="$CLICKHOUSE_PIDDIR/$PROGRAMconfig.xml 全局信息配置⽂件<?xml version=""1.0""?><yandex><!--⽇志--><logger><level>error</level><log>/data/clickhouse/logs/clickhouse.log</log><errorlog>/data/clickhouse/logs/error.log</errorlog><size>500M</size><count>5</count></logger><!--本地节点信息--><http_port>8123</http_port><tcp_port>9000</tcp_port><interserver_http_port>9009</interserver_http_port><interserver_http_host>本机IP</interserver_http_host> <!--本机域名或IP--><!--本地配置--><listen_host>0.0.0.0</listen_host><max_connections>4096</max_connections><receive_timeout>800</receive_timeout><send_timeout>800</send_timeout><keep_alive_timeout>300</keep_alive_timeout><max_concurrent_queries>1000</max_concurrent_queries><uncompressed_cache_size>8589934592</uncompressed_cache_size><mark_cache_size>5368709120</mark_cache_size><path>/data/clickhouse/</path><tmp_path>/data/clickhouse/tmp/</tmp_path><users_config>users.xml</users_config><default_profile>default</default_profile><log_queries>1</log_queries><default_database>default</default_database><!--集群相关配置--><remote_servers incl=""clickhouse_remote_servers"" /><zookeeper incl=""zookeeper-servers"" optional=""true"" /><macros incl=""macros"" optional=""true"" /><builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval><max_session_timeout>3600</max_session_timeout><default_session_timeout>300</default_session_timeout><max_table_size_to_drop>0</max_table_size_to_drop><merge_tree><parts_to_delay_insert>300</parts_to_delay_insert><parts_to_throw_insert>600</parts_to_throw_insert><max_delay_to_insert>2</max_delay_to_insert></merge_tree><max_table_size_to_drop>0</max_table_size_to_drop><max_partition_size_to_drop>0</max_partition_size_to_drop><distributed_ddl><!-- Path in ZooKeeper to queue with DDL queries --><path>/clickhouse/task_queue/ddl</path></distributed_ddl><include_from>/etc/clickhouse-server/metrika.xml</include_from></yandex>users.xml ⽤户信息配置⽂件<?xml version="1.0"?><yandex><profiles><default><max_memory_usage>10000000000</max_memory_usage><use_uncompressed_cache>0</use_uncompressed_cache><load_balancing>random</load_balancing></default><readonly><max_memory_usage>10000000000</max_memory_usage><use_uncompressed_cache>0</use_uncompressed_cache><load_balancing>random</load_balancing><readonly>1</readonly></readonly></profiles><quotas><!-- Name of quota. --><default><interval><queries>0</queries><errors>0</errors><result_rows>0</result_rows><read_rows>0</read_rows><execution_time>0</execution_time></interval></default></quotas><users><default><!-- PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-' --> <!-- password UHXQQmhb --><password_sha256_hex>65b84b497ef843f7c9629251a64e307caecbf7327975af4d18f83261239e1460</password_sha256_hex><networks><ip>::/0</ip></networks><profile>default</profile><quota>default</quota></default><ck><password_sha256_hex>65b84b497ef843f7c9629251a64e307caecbf7327975af4d18f83261239e1460</password_sha256_hex><networks><ip>::/0</ip></networks><profile>readonly</profile><quota>default</quota></ck></users></yandex>metrika.xml 集群信息配置⽂件<yandex><!--ck集群节点--><clickhouse_remote_servers><clickhouse_cluster_name><!--分⽚1--><shard><internal_replication>true</internal_replication><replica><host>192.68.1.1</host><port>9000</port><user>default</user><password>password</password></replica><!--复制集1--><replica><host>192.68.1.2</host><port>9000</port><user>default</user><password>password</password></replica></shard><!--分⽚2--><shard><internal_replication>true</internal_replication><replica><host>192.68.1.3</host><port>9000</port><user>default</user><password>password</password></replica><!--复制集2--><replica><host>192.68.1.4</host><port>9000</port><user>default</user><password>password</password></replica></shard></clickhouse_cluster_name></clickhouse_remote_servers><!--zookeeper相关配置--><zookeeper-servers><node index=""""1""""><host>192.68.1.5</host><port>2181</port></node><node index=""""2""""><host>192.68.1.6</host><port>2181</port></node><node index=""""3""""><host>192.68.1.7</host><port>2181</port></node></zookeeper-servers><macros><layer>01</layer><shard>01</shard> <!--分⽚号--><replica>192.68.1.1</replica> <!--当前节点IP--></macros><networks><ip>::/0</ip></networks><!--压缩相关配置--><clickhouse_compression><case><min_part_size>10000000000</min_part_size><min_part_size_ratio>0.01</min_part_size_ratio><method>lz4</method> <!--压缩算法lz4压缩⽐zstd快, 更占磁盘--></case></clickhouse_compression></yandex>四、ClickHouse常⽤架构:单实例⽆需过多解释,就是单机部署,安装好rpm包后,简单修改配置⽂件即可启动;单实例不建议线上使⽤,只做功能测试;MergeTree,引擎适⽤于单机实例,查询性能⾮常⾼。
kafka集群管理工具kafka-manager部署安装

kafka集群管理⼯具kafka-manager部署安装⼀、kafka-manager 简介为了简化开发者和服务⼯程师维护Kafka集群的⼯作,yahoo构建了⼀个叫做Kafka管理器的基于Web⼯具,叫做 Kafka Manager。
这个管理⼯具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。
它⽀持管理多个集群、选择副本、副本重新分配以及创建Topic。
同时,这个管理⼯具也是⼀个⾮常好的可以快速浏览这个集群的⼯具,有如下功能:1.管理多个kafka集群2.便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况)3.选择你要运⾏的副本4.基于当前分区状况进⾏5.可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同)6.删除topic(只⽀持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true)7.Topic list会指明哪些topic被删除(在0.8.2以上版本适⽤)8.为已存在的topic增加分区9.为已存在的topic更新配置10.在多个topic上批量重分区11.在多个topic上批量重分区(可选partition broker位置)kafka-manager 项⽬地址:⼆、安装1. 环境要求1.安装jdk8jdk-1.8.0_602,kafka集群服务器:10.0.0.50:1218110.0.0.60:1218110.0.0.70:12181软件:kafka_2.8.0-0.8.1.1zookeeper-3.3.63.系统Linux kafka50 2.6.32-642.el6.x86_64 #1 SMP Tue May 1017:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux2. 下载安装 kafka-manager2.1 .下载kafka-manager想要查看和管理Kafka,完全使⽤命令并不⽅便,我们可以使⽤雅虎开源的Kafka-manager,GitHub地址如下:我们可以使⽤Git或者直接从Releases中下载,此处从下⾯的地址下载 1.3.3.7 版本:下载完成后解压。
kafka-eagle-2.0.5安装指南
kafka-eagle-2.0.5安装指南kafka eagle 安装⽂档环境介绍:kafka 三台版本:2.2.1+cdh6.3.2 管理:ZKkafka-eagle-bin-2.0.5.tar.gz安装包准备官⽹ :/百度云链接:https:///s/12wyPvcN_F7fZKPjZ-nHRsw提取码:yrfq--来⾃百度⽹盘超级会员V4的分享配置安装指南https:///articles/docs/installation/linux-macos.html参数解释https:///articles/docs/installation/configuration.html配置1:1.8+jdk1、检查当前系统中JDK[root@localhost ~]# java -versionopenjdk version "1.8.0_121"OpenJDK Runtime Environment (build 1.8.0_121-b08)OpenJDK 64-Bit Server VM (build 25.121-b08, mixed mode)2、检测JDK依赖[root@localhost ~]# rpm -aq | grep javajava-1.8.0-openjdk-headless-1.8.0.121.b08-1.el7.x86_64python-javapackages-3.4.1-11.el7.noarchtzdata-java-2019c-1.el7.noarchjavapackages-tools-3.4.1-11.el7.noarchjava-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_643、卸载OpenJDK[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_6[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64[root@localhost root]$ java -versionbash: java: 未找到命令...[root@localhost ~]# rpm -qa | grep javapython-javapackages-3.4.1-11.el7.noarchtzdata-java-2019c-1.el7.noarchjavapackages-tools-3.4.1-11.el7.noarch4、安装JDK[root@localhost /opt]# tar -xvf jdk-8u261-linux-x64.tar.gz5、配置环境变量[root@localhost ~]# vim /etc/profileexport JAVA_HOME=/opt/jdk1.8.0_261export PATH=$JAVA_HOME/bin:$PATH6、加载新增配置、验证JDK[root@localhost ~]# source /etc/profile[root@localhost ~]# java -versionjava version "1.8.0_261"Java(TM) SE Runtime Environment (build 1.8.0_261-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.261-b11, mixed mode)配置2:eagle配置1.解压eagle安装包cd /opt/tar -zxf kafka-eagle-bin-2.0.5.tar.gzcd kafka-eagle-bin-2.0.5tar -zxf kafka-eagle-web-2.0.5-bin.tar.gz2.配置system-config.properties[root@localhost ~]# cd /opt/kafka-eagle-bin-2.0.5/kafka-eagle-web-2.0.5/conf[root@localhost ~]# vim system-config.properties path:####################################### multi zookeeper & kafka cluster list# 配置kafka集群信息,多个集群可进⾏多次配置参考官⽹安装指南配置hostname需要在/etc/hosts配置主机hostname和ip映射关系######################################kafka.eagle.zk.cluster.alias=cluster1cluster1.zk.list=节点ip/节点hostname:2181,节点ip/节点hostname:2181,节点ip/节点hostname:2181####################################### zookeeper enable acl# kafka acl 没有开启给值false即可######################################cluster1.zk.acl.enable=falsecluster1.zk.acl.schema=digestername=testcluster1.zk.acl.password=test123####################################### broker size online list######################################cluster1.kafka.eagle.broker.size=20####################################### zk client thread limit# zk 线程数量######################################kafka.zk.limit.size=25####################################### kafka eagle webui port######################################kafka.eagle.webui.port=8048####################################### kafka jmx acl and ssl authenticate# jmx的acl控制######################################cluster1.kafka.eagle.jmx.acl=falseer=keadmincluster1.kafka.eagle.jmx.password=keadmin123cluster1.kafka.eagle.jmx.ssl=falsecluster1.kafka.eagle.jmx.truststore.location=/Users/dengjie/workspace/ssl/certificates/kafka.truststorecluster1.kafka.eagle.jmx.truststore.password=ke123456####################################### kafka offset storage# Kafka offsets stored in kafka. kafka⾃⾝管理offset######################################cluster1.kafka.eagle.offset.storage=kafka####################################### kafka jmx uri######################################cluster1.kafka.eagle.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/jmxrmi####################################### kafka metrics, 15 days by default# 指标是否开启指标保留时间/天######################################kafka.eagle.metrics.charts=truekafka.eagle.metrics.retain=15####################################### kafka sql topic records max# sql最⼤记录数是否⾃动修复sql错误######################################kafka.eagle.sql.topic.records.max=5000kafka.eagle.sql.fix.error=false####################################### delete kafka topic token# 删除topic时的token密钥######################################kafka.eagle.topic.token=keadmin####################################### kafka sasl authenticate# kafka sasl是否开启以及相关配置######################################cluster1.kafka.eagle.sasl.enable=falsecluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXTcluster1.kafka.eagle.sasl.mechanism=PLAINcluster1.kafka.eagle.sasl.jaas.config=mon.security.scram.ScramLoginModule required username="kafka" password="kafka-eagle";cluster1.kafka.eagle.sasl.client.id=cluster1.kafka.eagle.blacklist.topics=cluster1.kafka.eagle.sasl.cgroup.enable=falsecluster1.kafka.eagle.sasl.cgroup.topics=####################################### kafka mysql jdbc driver address# 数据存储数据配置 mysql/sqlite 以下为mysql配置######################################kafka.eagle.driver=com.mysql.cj.jdbc.Driverkafka.eagle.url=jdbc:mysql://mysql数据库ip:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNullername=mysql⽤户kafka.eagle.password=mysql密码3.启动eagle[root@localhost ~]# cd /opt/kafka-eagle-bin-2.0.5/kafka-eagle-web-2.0.5/bin[root@localhost ~]# chomd 777 ke.sh[root@localhost ~]# ./ke.sh start### ke.sh restart 重启### ke.sh stop 停⽌[2021-07-02 11:04:35] INFO: Port Progress: [##################################################] | 100%[2021-07-02 11:04:38] INFO: Config Progress: [##################################################] | 100%[2021-07-02 11:04:41] INFO: Startup Progress: [##################################################] | 100%[2021-07-02 11:04:31] INFO: Status Code[0][2021-07-02 11:04:31] INFO: [Job done!]Welcome to__ __ ___ ____ __ __ ___ ______ ___ ______ __ ______/ //_/ / | / __/ / //_/ / | / ____/ / | / ____/ / / / ____// ,< / /| | / /_ / ,< / /| | / __/ / /| | / / __ / / / __// /| | / ___ | / __/ / /| | / ___ | / /___ / ___ |/ /_/ / / /___ / /___/_/ |_| /_/ |_|/_/ /_/ |_| /_/ |_| /_____/ /_/ |_|\____/ /_____//_____/Version 2.0.5 -- Copyright 2016-2021******************************************************************** Kafka Eagle Service has started success.* Welcome, Now you can visit 'http://xxx.xxx.x.xxx:8048'* Account:admin ,Password:123456******************************************************************** <Usage> ke.sh [start|status|stop|restart|stats] </Usage>* <Usage> https:/// </Usage>*******************************************************************4.访问eaglehttp://xxx.xxx.x.xxx:8048Account:admin ,Password:123456遇到的问题1.页⾯中kafka版本不能加载报错⽇志:.springframework.scheduling.quartz.SchedulerFactoryBean#1_Worker-7 - ERROR - JMX service url[xxxx:9393] create has error,msg is java.io.IOException cannot be cast to javax.management.remote.JMXConnector原因:访问kafka jmx时失败解决⽅案:CDH的CM界⾯修改kafka broker_java_opts配置,如果kafka集群有多个节点,每个节点都需配置对应IP/host⽰例:原kafka节点1 broker_java_opts配置:-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80 -XX:+DisableExplicitGC -Djava.awt.headless=true -D 修改kafka节点1 broker_java_opts配置中 -Dcom.sun.management.jmxremote.host 和 -Djava.rmi.server.hostname 的值为对应kafka节点的IP或者hostname(需要主机配置host/ip映射关系):-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80 -XX:+DisableExplicitGC -Djava.awt.headless=true -D。
Zookeeper简单操作使用(二)
Zookeeper简单操作使⽤(⼆)1 安装配置ZooKeeper1.1 基本安装将下载的apache-zookeeper-3.5.5-bin.tar.gz⽂件使⽤命令tar -xzvf 解压到 /usr/java ⽬录,并将原⽬录名修改为zookeeper-3.5.5。
进⼊zookeeper-3.5.5⽬录并创建两个⼦⽬录 data 和logs。
# mkdir data logs# echo 创建⼀个唯⼀的zookeeper实例号,我是⽤IP最后⼀个字节# cd data# vim myid // 输⼊ 128 后保存退出128# echo 复制 zoo_sample.cfg 为 zoo.cfg# cp zoo_sample.cfg zoo.cfg# 修改参数 dataDir# vim zoo.cfgdataDir=/var/lib/zookeeper然后修改 /etc/profile,增加修改相应的环境变量# vim /etc/profileexport PGDATA=/usr/java/postgres/dataZOOKEEPER_HOME=/usr/java/zookeeper-3.5.5PATH=$ZOOKEEPER_HOME/bin:$PATHexport ZOOKEEPER_HOME PATH# zkServer.sh start //启动服务# zkServer.sh status //查看服务状态# zkServer.sh stop //停⽌服务Zookeeper使⽤的默认端⼝是2181,可以在conf/zoo.cfg中修改这个端⼝号。
安装完成后,需要在防⽕墙开启端⼝# firewall-cmd --zone=public --add-port=2181/tcp –permanent# firewall-cmd –reload1.2 ZooKeeper安装为服务创建⾃动启动的脚本# cd /etc/rc.d/init.d# touch zookeeper# chmod +x zookeeper# vim zookeeper#!/bin/bash#chkconfig:2345 10 90#description:service zookeeper#set java environmentJAVA_HOME=/usr/java/jdk8u222-b10JRE_HOME=/usr/java/jdk8u222-b10/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATHexport PGDATA=/usr/java/postgres/dataZOOKEEPER_HOME=/usr/java/zookeeper-3.5.5PATH=$ZOOKEEPER_HOME/bin:$PATHexport PATH ZOOKEEPER_HOMEsu root ${ZOOKEEPER_HOME}/bin/zkServer.sh "$1"// 添加到启动脚本# chkconfig --add zookeeper// ⼿⼯启动# service start zookeeper1.3 控制台使⽤zookeeper命令⾏连接到zookeeper# zhCli.sh -server 127.0.0.1:2181关于 zookeper的常⽤使⽤命令百度即可或者⽤help命令查看。
LACHESIS软件安装指导书(新版)
LACHESIS软件安装指导书深圳市联新移动医疗科技有限公司Shenzhen Lachesis Mhealth Co., Ltd.1页深圳市联新移动医疗科技有限公司Shenzhen Lachesis Mhealth Co., Ltd.2页目录1.目标 (5)应用本指导书引导部署人员完成软件的安装与设置。
(5)2.参考资料 (5)3.环境准备 (5)3.1.安装C ENT OS6.9(如已安装继续下一步操作) (5)3.2.安装M Y SQL和MONGO DB数据库 (5)3.3.解压包,检查脚本或文件是否有遗漏 (5)4.安装所有软件 (6)4.1.设置INSTALL.PROPERTIES文件并将软件包拷贝到对应的位置 (6)4.1.1.首先设置需要安装哪些软件 (6)4.1.2.将相应的软件包拷贝到对应的目录下 (7)4.2.将整个文件夹拷贝到LINUX服务器 (8)4.3.安装软件 (9)4.4.验证相应软件是否安装成功(如果系统安装成功就无需以下验证) (10)4.4.1.验证JDK (10)4.4.2.验证Nginx (10)4.4.3.验证RabbitMQ (10)4.4.4.验证Zookeeper (11)4.4.5.验证T omcat (12)深圳市联新移动医疗科技有限公司Shenzhen Lachesis Mhealth Co., Ltd.3页4.4.6.验证Dubbo (12)4.4.7.验证Redis (13)4.4.8.验证Nodejs (14)4.4.9.验证RoomServer (14)4.4.10.验证SpringBoot (14)4.4.11.验证bluebridge (15)4.5.一键启动/关闭所有T OMCAT服务 (15)4.6.一键启动/关闭所有S PRING B OOT服务 (16)5.常用的命令 (17)6.软件下载地址 (17)深圳市联新移动医疗科技有限公司Shenzhen Lachesis Mhealth Co., Ltd.4页1.目标应用本指导书引导部署人员完成软件的安装与设置。
Zookeeper简介及使用
Zookeeper简介及使⽤⼀、Zookeeper简介1、zookeeper简介动物管理员Apache ZooKeeper致⼒于开发和维护开源服务器,实现⾼度可靠的分布式协调。
2、什么是ZooKeeper?ZooKeeper是⼀种集中式服务,⽤于维护配置信息,命名,提供分布式同步和提供组服务。
所有这些类型的服务都以分布式应⽤程序的某种形式使⽤。
每次实施它们都需要做很多⼯作来修复不可避免的错误和竞争条件。
由于难以实现这些类型的服务,应⽤程序最初通常会吝啬它们,这使得它们在变化的情况下变得脆弱并且难以管理。
即使正确完成,这些服务的不同实现也会在部署应⽤程序时导致管理复杂性。
3、zookeeper功能(1)存储数据(2)监听4、zookeeper⼯作机制基于观察者模式设计的分布式服务管理框架5、zookeeper的存储结构⽬录树结构6、zookeeper应⽤场景(1)集群统⼀配置管理(2)集群统⼀命名服务(3)集群统⼀管理(4)服务器的动态上下线感知(5)负载均衡7、安装zookeeper单机版(1)下载安装包 zookeeper-3.4.10.tar.gz(2)上传安装包到Linuxalt+p(SecureCRT中)(3)解压tar -zxvf zookeeper-3.4.10.tar.gz(4)修改配置⽂件进⼊zookeeper安装⽬录下的conf⽂件夹下mv zoo_sample.cfg zoo.cfgvi zoo.cfgdataDir=/root/hd/zookeeper-3.4.10/zkData(5)启动zkbin/zkServer.sh start(6)查看状态bin/zkServer.sh status(7)启动客户端bin/zkCli.sh8、完全分布式安装(1)下载安装包 zookeeper-3.4.10.tar.gz(2)上传安装包到Linuxalt+p(SecureCRT中)(3)解压tar -zxvf zookeeper-3.4.10.tar.gz(4)修改配置⽂件进⼊zookeeper安装⽬录下的conf⽂件夹下mv zoo_sample.cfg zoo.cfgvi zoo.cfgdataDir=/root/hd/zookeeper-3.4.10/zkData###############cluster###############server.1=hd09-1:2888:3888server.2=hd09-2:2888:3888server.3=hd09-3:2888:3888其中server.后⾯的数字1、2、3分别是机器hd09-1、hd09-2、hd09-3中zookeeper-3.4.10/zkData/myid⽂件中的值(5)添加⽂件myid$cd zookeeper-3.4.10/zkData$touch myid(6)添加内容在myid为1$ vi myid1(7)发送zookeeper⽂件到其它机器$ scp -r zookeeper-3.4.10 hd09-2:$PWD$ scp -r zookeeper-3.4.10 hd09-3:$PWD(8)修改myid依次为2 3(9)修改环境变量vi /etc/profileexport ZOOKEEPER_HOME=/root/hd/zookeeper3.4.10 export PATH=$PATH:$ZOOKEEPER_HOME/bin (10)⽣效环境变量source /etc/profile(11)启动zookeeperzkServer.sh start(12)查看状态zkServer.sh status(13)关闭zookeeperzkServer.sh stop9、客户端的命令⾏操作(1)启动客户端zkCli.sh(2)查看帮助help(3)查看当前znode所包含的内容ls /(4)创建节点create /hello 18(5)创建短暂znodecreate -e /haha tom(6)创建带序号znodecreate -s /bigdata tom(7)创建短暂带序号create -e -s /bigdata tom(8)查看此节点的详细信息ls2 /(9)获得节点值监听get /hello watch(10)监听路径ls / watch(11)修改znode数据set /hello iiiii(12)删除节点delete /hello(13)递归删除rmr /delireba(14)查看节点状态信息stat /⼆、Zookeeper⼯作机制1、Zookeeper⼯作机制2、Zookeeper⽬录结构3、Zookeeper选举机制三、Zookeeper简单客户端APIpackage com.css.zk;import java.io.IOException;import java.util.List;import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.KeeperException;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeeper.ZooDefs.Ids;import org.apache.zookeeper.ZooKeeper;import org.apache.zookeeper.data.Stat;import org.junit.Before;import org.junit.Test;public class ZkClient {private String connectString = "192.168.146.132:2181,192.168.146.133:2181,192.168.146.134:2181"; private int sessionTimeout = 3000;ZooKeeper zkCli = null;// 初始化客户端@Beforepublic void init() throws IOException {zkCli = new ZooKeeper(connectString, sessionTimeout, new Watcher() {// 回调监听@Overridepublic void process(WatchedEvent event) {// System.out.println(event.getPath() + "\t" + event.getState() + "\t" + event.getType());try {List<String> children = zkCli.getChildren("/", true);for (String c : children) {// System.out.println(c);}} catch (KeeperException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}});}// 创建⼦节点@Testpublic void createZnode() throws KeeperException, InterruptedException {String path = zkCli.create("/hello", "world".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); System.out.println(path);}// 获取⼦节点@Testpublic void getChild() throws KeeperException, InterruptedException {List<String> children = zkCli.getChildren("/", true);for (String c : children) {System.out.println(c);}Thread.sleep(Long.MAX_VALUE);}// 删除节点@Testpublic void rmChildData() throws KeeperException, InterruptedException {// byte[] data = zkCli.getData("/bbq", true, null);// System.out.println(new String(data));zkCli.delete("/hello", -1);}// 修改数据@Testpublic void setData() throws KeeperException, InterruptedException {zkCli.setData("/hello", "17".getBytes(), -1);}// 判断节点是否存在@Testpublic void testExist() throws KeeperException, InterruptedException {Stat exists = zkCli.exists("/hello", false);System.out.println(exists == null ? "not exists" : "exists");}}四、Zoopeeper监听API1、监听单节点内容package com.css.zk;import java.io.IOException;import org.apache.zookeeper.KeeperException;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeeper.ZooKeeper;// 监听单节点内容public class WatchDemo {public static void main(String[] args) throws IOException, KeeperException, InterruptedException {ZooKeeper zkCli = new ZooKeeper("192.168.146.132:2181,192.168.146.133:2181,192.168.146.134:2181", 3000, new Watcher() {// 监听回调@Overridepublic void process(WatchedEvent event) {}});byte[] data = zkCli.getData("/hello", new Watcher() {// 监听的具体内容@Overridepublic void process(WatchedEvent event) {System.out.println("监听路径为:" + event.getPath());System.out.println("监听的类型为:" + event.getType());System.out.println("监听被修改了");}}, null);System.out.println(new String(data));Thread.sleep(Long.MAX_VALUE);}}2、监听⽬录package com.css.zk;import java.io.IOException;import java.util.List;import org.apache.zookeeper.KeeperException;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeeper.ZooKeeper;// 监听⽬录public class WatchDemo1 {static List<String> children = null;public static void main(String[] args) throws IOException, KeeperException, InterruptedException {ZooKeeper zkCli = new ZooKeeper("192.168.146.132:2181,192.168.146.133:2181,192.168.146.134:2181", 3000, new Watcher() {// 监听回调@Overridepublic void process(WatchedEvent event) {System.out.println("正在监听中......");}});// 监听⽬录children = zkCli.getChildren("/", new Watcher() {@Overridepublic void process(WatchedEvent event) {System.out.println("监听路径为:" + event.getPath());System.out.println("监听的类型为:" + event.getType());System.out.println("监听被修改了");for (String c : children) {System.out.println(c);}}});Thread.sleep(Long.MAX_VALUE);}五、Zookeeper动态上下线感知系统需求某分布式系统当中,主节点有多台,可以进⾏动态上下线,当有任何⼀台机器发⽣了动态的上下线任何⼀台客户端都能感知到。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. Zookper安装
使用soft01用户登录
1.准备环境(zookeeper01,zookeeper02和zookeeper03:由于paxos算法要求半数以上存活则为可用,所以必须准备单数个服务器搭建环境)
注:环境准备中如果发现ping主机名很慢但是ping ip很快,则将/etc/resolv.conf中nameserver注释掉
2.在zookeeper01上解压缩zookeeper-
3.
4.
5.tar.gz
tar -zxvf zookeeper-3.4.5.tar.gz -C /home/soft01
解压完后,修改名称
mv zookper-3.4.5 zookeeper
3.配置环境变量ZOOKEEPER_HOME、PATH
配置zookper环境变量/etc/profile
export ZOOKEEPER_HOME=/home/soft01/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
4.准备两个文件夹data和log用来存放zookeeper的数据和日志
本例中在ZOOKEEPER_HOME/data、ZOOKEEPER_HOME/log
在/home/soft01/zookeeper
mkdir data
mkdir log
chmod 755 data
chmod 755 log
注意,两个文件夹权限必须为755
5.data目录下面新建myid文件,myid的文件内容为:
1
6.在conf目录下面复制zoo_sample.cfg文件为zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
并修改配置
dataDir=/home/soft01/zookeeper/data
dataLogDir=/home/soft01/zookeeper/log
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
server.4=slave3:2888:3888
7.将zookeeper1上的文件发送到zookeeper2和3上
scp -r ~/zookeeper soft01@slave1:~/
scp -r ~/zookeeper soft01@slave2:~/
scp -r ~/zookeeper soft01@slave3:~/
修改每台机器的/etc/profile
8.修改每个zookeeper上的myid文件vi
2或者3或者4
9.启动4台机器上的zookeeper(每一台需要独立启动)
zkServer.sh start
zkServer.sh start
zkServer.sh start
10.检查启动是否成功
首先jps查看进程
QuorumPeerMain显示出zookper成功
zkServer.sh status
其中两台是follower,一台是leader
停止leader上的zookeeper,如果其余两台中一台leader则启动成功
如果再停掉一台则剩余的一台状态时不可用的,因为paxos算法要求必须有半数以上服务存活平台才为可用状态
zookeeper客户端:
cd /zookeeper/bin
./zkCli.sh
help。