011-Ambari二次開發之元件編譯概述
Ambari元件即大資料生態圈的元件,如Hadoop,Zookeeper,HBase,Hive,Spark,Kafka等。當我們業務需要修改原始碼時,我們需要重新編譯打包元件。Ambari的元件包是以RPM包的形式存在的,並且Ambari元件包檔案路徑存放位置和原生方式安裝是不同的,所以我們要重新打包Ambari元件包,首先要了解Ambari元件包的組成方式,或者想辦法修改最小的部分。
關注公眾號,獲取最新文章
具體思路,只供參考,可能還有其他的辦法。
1. 編譯需要重新打包的元件。
2. 解壓Ambari元件包即RPM包。
3. 我們在重新打成RPM包時,我們在前面文章提到過需要打到包裡的原始檔案以及SPEC檔案。原始檔案,我們通過2解壓完後,可以將1中編譯的檔案拷貝進去,打成tar.gz即可,SPEC檔案組織比較困難,因為SPEC檔案是用來組織包結構以及版本,描述等資訊,之前在github上面有開源的bigtop的方式,但是在後續版本沒有再更新,這條路基本不通。只能使用比較投機的辦法。我們可以將RPM包安裝在某一臺機器上,然後通過rpmrebuild命令可以直接提取,但是這種方式提取出來的SPEC檔案是將每個檔案的路徑,許可權都顯示出來了,雖然比較lower,但是不影響結果。當然網上還有其他方式,如rpm2cpio。
4. 有了原始檔案,SPEC檔案,我們就可以通過rpmbuil重新打出RPM包。
下面我們以Zookeeper為例,來說明具體的方法。
1. 重新編譯Zookeeper原始碼,下一篇我們將介紹如何編譯Zookeeper原始碼,此處暫定。我們假設我們已經編譯完Zookeeper,並且我們要替換原始RPM包中的zookeeper-3.4.6.2.6.2.0-205.jar
2. 解壓Ambari自帶的zookeeper_2_6_2_0_205-3.4.6.2.6.2.0-205.noarch.rpm
解壓後的部分目錄結構
3. 安裝zookeeper_2_6_2_0_205-3.4.6.2.6.2.0-205.noarch.rpm 提取SPEC檔案
我們在安裝時發現需要依賴hdp-select包,所以我們先安裝hdp-select
重新安裝
安裝rpmrebuild
https://sourceforge.net/projects/rpmrebuild/files/rpmrebuild/
使用rpmrebuild命令提取SPEC檔案
SPEC檔案內容
# rpmrebuild autogenerated specfile
%define defaultbuildroot /
AutoProv: no
%undefine __find_provides
AutoReq: no
%undefine __find_requires
# Do not try autogenerate prereq/conflicts/obsoletes and check files
%undefine __check_files
%undefine __find_prereq
%undefine __find_conflicts
%undefine __find_obsoletes
# Be sure buildpolicy set to do nothing
%define __spec_install_post %{nil}
# Something that need for rpm-4.1
%define _missing_doc_files_terminate_build 0
#dummy
#dummy
#BUILDHOST: ctr-e134-1499953498516-102963-01-000003.hwx.site
#BUILDTIME: Sat Aug 26 17:39:44 2017
#SOURCERPM: zookeeper_2_6_2_0_205-3.4.6.2.6.2.0-205.src.rpm
#RPMVERSION: 4.11.3
#INSTALLTIME: Sat Jul 28 20:05:43 2018
#OS: linux
#SIZE: 12704582
#ARCHIVESIZE: 12782620
#ARCH: noarch
BuildArch: noarch
Name: zookeeper_2_6_2_0_205
Version: 3.4.6.2.6.2.0
Release: 205
License: APL2
Group: Development/Libraries
Summary: A high-performance coordination service for distributed applications.
URL: http://zookeeper.apache.org/
Provides: config(zookeeper_2_6_2_0_205) = 3.4.6.2.6.2.0-205
Provides: osgi(log4j) = 1.2.16
Provides: osgi(org.apache.commons.codec) = 1.6.0
Provides: osgi(org.apache.commons.io) = 2.2.0
Provides: osgi(org.apache.hadoop.zookeeper) = 3.4.6
Provides: osgi(org.jboss.netty) = 3.7.0
Provides: osgi(org.jsoup) = 1.7.1
Provides: osgi(slf4j.api) = 1.6.1
Provides: osgi(slf4j.log4j12) = 1.6.1
Provides: zookeeper_2_6_2_0_205 = 3.4.6.2.6.2.0-205
Requires: /bin/bash
Requires(pre): /bin/sh
Requires(post): /bin/sh
Requires: /usr/bin/env
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
Requires(post): chkconfig
Requires(preun): chkconfig
Requires: config(zookeeper_2_6_2_0_205) = 3.4.6.2.6.2.0-205
Requires(pre): coreutils
Requires(pre): hdp-select >= 2.6.2.0-205
#Requires: rpmlib(CompressedFileNames) <= 3.0.4-1
#Requires: rpmlib(FileDigests) <= 4.6.0-1
#Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1
#Requires: rpmlib(PayloadIsXz) <= 5.2-1
#suggest
#enhance
%description
ZooKeeper is a centralized service for maintaining configuration information,
naming, providing distributed synchronization, and providing group services.
All of these kinds of services are used in some form or another by distributed
applications. Each time they are implemented there is a lot of work that goes
into fixing the bugs and race conditions that are inevitable. Because of the
difficulty of implementing these kinds of services, applications initially
usually skimp on them ,which make them brittle in the presence of change and
difficult to manage. Even when done correctly, different implementations of these services lead to management complexity when the applications are deployed.
%files
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/etc"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/etc/zookeeper"
%dir %config(noreplace) %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/etc/zookeeper/conf.dist"
%config(noreplace) %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/etc/zookeeper/conf.dist/configuration.xsl"
%config(noreplace) %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/etc/zookeeper/conf.dist/log4j.properties"
%config(noreplace) %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/etc/zookeeper/conf.dist/zoo.cfg"
%config(noreplace) %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/etc/zookeeper/conf.dist/zoo_sample.cfg"
%config(noreplace) %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/etc/zookeeper/conf.dist/zookeeper-env.cmd"
%config(noreplace) %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/etc/zookeeper/conf.dist/zookeeper-env.sh"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zkCleanup.sh"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zkCli.sh"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zkEnv.sh"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zkServer-initialize.sh"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zkServer.sh"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zookeeper-client"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zookeeper-server"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zookeeper-server-cleanup"
%attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/bin/zookeeper-server-initialize"
%attr(0777, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/conf"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/CHANGES.txt"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/HDP-CHANGES.txt"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/LICENSE.txt"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/NOTICE.txt"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/README.txt"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/README_packaging.txt"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/allclasses-frame.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/allclasses-noframe.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/constant-values.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/deprecated-list.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/help-doc.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/index-all.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/index.html"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/AsyncCallback.ACLCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/AsyncCallback.Children2Callback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/AsyncCallback.ChildrenCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/AsyncCallback.DataCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/AsyncCallback.StatCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/AsyncCallback.StringCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/AsyncCallback.VoidCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/AsyncCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/CreateMode.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.APIErrorException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.AuthFailedException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.BadArgumentsException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.BadVersionException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.Code.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.CodeDeprecated.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.ConnectionLossException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.DataInconsistencyException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.InvalidACLException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.InvalidCallbackException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.MarshallingErrorException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.NoAuthException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.NoChildrenForEphemeralsException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.NoNodeException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.NodeExistsException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.NotEmptyException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.NotReadOnlyException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.OperationTimeoutException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.RuntimeInconsistencyException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.SessionExpiredException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.SessionMovedException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.SystemErrorException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.UnimplementedException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/KeeperException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/ServerAdminClient.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/WatchedEvent.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/Watcher.Event.EventType.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/Watcher.Event.KeeperState.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/Watcher.Event.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/Watcher.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/ZooDefs.Ids.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/ZooDefs.OpCode.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/ZooDefs.Perms.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/ZooDefs.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/ZooKeeper.States.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/ZooKeeper.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/ZooKeeperMain.html"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/AsyncCallback.ACLCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/AsyncCallback.Children2Callback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/AsyncCallback.ChildrenCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/AsyncCallback.DataCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/AsyncCallback.StatCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/AsyncCallback.StringCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/AsyncCallback.VoidCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/AsyncCallback.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/CreateMode.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.APIErrorException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.AuthFailedException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.BadArgumentsException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.BadVersionException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.Code.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.CodeDeprecated.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.ConnectionLossException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.DataInconsistencyException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.InvalidACLException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.InvalidCallbackException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.MarshallingErrorException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.NoAuthException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.NoChildrenForEphemeralsException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.NoNodeException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.NodeExistsException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.NotEmptyException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.NotReadOnlyException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.OperationTimeoutException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.RuntimeInconsistencyException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.SessionExpiredException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.SessionMovedException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.SystemErrorException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.UnimplementedException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/KeeperException.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/ServerAdminClient.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/WatchedEvent.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/Watcher.Event.EventType.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/Watcher.Event.KeeperState.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/Watcher.Event.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/Watcher.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/ZooDefs.Ids.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/ZooDefs.OpCode.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/ZooDefs.Perms.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/ZooDefs.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/ZooKeeper.States.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/ZooKeeper.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/class-use/ZooKeeperMain.html"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/client"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/client/FourLetterWordMain.html"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/client/class-use"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/client/class-use/FourLetterWordMain.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/client/package-frame.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/client/package-summary.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/client/package-tree.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/client/package-use.html"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/ACL.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/Id.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/Stat.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/StatPersisted.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/StatPersistedV1.html"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/class-use"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/class-use/ACL.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/class-use/Id.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/class-use/Stat.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/class-use/StatPersisted.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/class-use/StatPersistedV1.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/package-frame.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/package-summary.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/package-tree.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/data/package-use.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/package-frame.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/package-summary.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/package-tree.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/package-use.html"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server/LogFormatter.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server/PurgeTxnLog.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server/SnapshotFormatter.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server/ZooKeeperServerMain.html"
%dir %attr(0755, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server/class-use"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server/class-use/LogFormatter.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server/class-use/PurgeTxnLog.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.2.0-205/zookeeper/doc/api/org/apache/zookeeper/server/class-use/SnapshotFormatter.html"
%doc %attr(0644, root, root) "/usr/hdp/2.6.
相關推薦
011-Ambari二次開發之元件編譯概述
Ambari元件即大資料生態圈的元件,如Hadoop,Zookeeper,HBase,Hive,Spark,Kafka等。當我們業務需要修改原始碼時,我們需要重新編譯打包元件。Ambari的元件包是以RPM包的形式存在的,並且Ambari元件包檔案路徑存放位置和原生方式安裝是不同的,所以我們
012-Ambari二次開發之元件Zookeeper,Kafka,Hadoop編譯
Zookeeper是大資料生態圈元件之間協調的基礎元件。本篇我們開始編譯基於HDP3.0版本棧的Zookeeper。 關注微信公眾號,獲取更多內容 Zookeeper編譯
安裝ant,Zookeeper依賴於ANT編譯,所以需要安裝ant yum install ant
009-Ambari二次開發之新增自定義元件Redis(二)
上一篇我們主要介紹了Ambari新增元件的答題流程並以REDIS為例說明了流程,本篇在上一篇的基礎上,進一步完善說明流程並介紹如何給元件新增metric
掃描二維碼,關注BearData,獲取最新文章
上篇中,我們已經制作出了redis的rpm包,並重新編譯了我們修改後的Ambar
008-Ambari二次開發之新增自定義元件Redis(一)
Ambari目前支援的元件有HDFS、YARN、HBase、Hive、Pig、ZooKeeper、Sqoop、Storm、Flume、Tez、Oozie、Falcon、Storm、Altas、Knox、Spark、Ranger、Mahout、Kerberos等,已經涵蓋了從大資料應用的
007-Ambari二次開發之棧名修改
在介紹如何修改棧名稱之前,我們先要了解一下stack的相關概念及在什麼情況下需要修改棧名稱。 掃描二維碼,關注BearData,獲取最新文章 Ambari-stack 表示HDP的某個發行版本,例如HDP-1.0.0,在用ambari建立一個叢集時,首先要通過呼叫restfulAPI
006-Ambari二次開發之web環境搭建除錯
當我們需要修改前端樣式時,我們需要搭建web本地除錯環境,本篇我們將介紹如何在本地搭建web開發環境。
注:本篇操作是在Ubuntu下完成的。
掃描二維碼,關注BearData,獲取最新文章
安裝nodeJS 下載地址:https://nodejs.org/downl
(6)微信二次開發 之 微信文本消息接口實現
微信 odin link 消息處理 nal puts 算法 帳號 接口實現 p.p1 { margin: 13.0px 0.0px 13.0px 0.0px; text-align: justify; font: 16.0px SimSun }
p.p2 { margin:
revit 二次開發之基於族獲得實例
相關 space typeof cef doc 過濾 list eric category Revit並沒有直接開放基於族獲取實例元素的過濾器。不過有兩個相關的過濾器,一個是FamilySymbolFilter(ElementId familyId),可以基於族ID過濾出所
踏上Revit二次開發之路 2 從“HelloWorld”入手
import none 工具 環境變量 各級 style first app ati 2 從“HelloWorld”入手
在歐特克的官方網頁上有個叫《My First Plug-in Training》的項目,號稱可以讓一個完全沒有編程基礎的人照著做出一個插件來。我快速瀏覽
織夢DedeCMS的二次開發之數據庫類操作
高亮顯示 delete from 進行 往裏面 參考 如何 tps .com 1.創建數據表
為了讓講解更加的貼合實際,天涯版主創建了一個名為"dede_test"的表,裏面就2個字段,1個id,作為唯一標識,另一個name作為名稱。然後往裏面添加測試數據,這個操作類似於A
open-stf二次開發 源碼編譯運行
node-sass log git github 二次開發 版本 sass ack lar 下載open-stf源碼
https://github.com/openstf/stf
安裝open-stf到本地
sudo npm install (可選)
cnpm insta
DT二次開發之-常量全局變量說明及使用
DT二次開發 常量全局變量 什麽是destoon常量?destoon常量是指destoon官方的開發者在開發時封裝在destoon程序中的一些系統設置參數這些參數是固定的,我們是不能修改的,也不需要去修改。(PS:只要你牛掰,系統全改了也行)比如我們的網站首頁地址:DT_PATH,站點安裝目錄路
Revit二次開發之載入族
return mes 刪除 開發 urn com tar 失敗 commit 載入族
此方法載入族無法覆蓋原有族,即若存在相同名稱的族則會載入失敗
1 Family family = null; //族
2
3 Transaction transact
中控考勤機的二次開發之數據秒上傳至服務器功能
程序 做到 監控 選擇 環境 客戶 出現 員工 參考 1.客戶選擇了中控考勤機:IFACE系列
2.客戶需要在WEB端實時看到員工的考勤情況
3.需要做到客戶員工數據及時傳遞到服務器
實現方法如下:
1.安裝中控DLL(一定要註意操作系統是32位還是64位,折騰死人
中控考勤機的二次開發之靈活調配職工功能
客戶 考勤 靈活 二次 容量 代碼 功能 參考 以及 客戶新增需求
1.客戶員工需要不定時的外派或支援
2.客戶員工發適時的到分公司去打卡
3.客戶員工的打卡數據需要及時的發放到目標分公司
4.實現功能如下:
1)各分公司需要及時從考勤機上取得員工的打卡驗證數據
Revit二次開發之 自定義選項卡排在最前端
引用AdWindows.dll類庫
Autodesk.Windows.RibbonControl ribbon = AutodeskWindows.ComponentManager.Ribbon;
 
Revit二次開發之單位轉換
Revit內部基本單位是英尺,如果要獲取或設定構件引數數值需要進行單位轉換,比如轉換為基本的毫米或米等單位
1.可以使用常規方式進行轉換:
1英尺等於0.3047999995367米,等於304.7999995367毫米
2.可以使用RevitA
jquery二次開發之擴充套件物件基元
(function (window, $, undefined) {
var _Core = function () {
var eventarr = [];
var _OnPageLoad = undefined;
///
AE二次開發之鄉鎮界線提取
根據村級行政面要素圖斑,提取邊界,獲得鄉級、縣級邊界。不一定能使用,因為在設計時,對資料庫的欄位名稱有要求,有問題可以留言或者下載原始碼,或者留下郵箱,看見後我會分享demo的。就不上圖了。
原始碼https://download.csdn.net/download/ricardomtan/10
Mission Planner 二次開發之介面改裝筆記
啟動介面改裝
主介面更改
主介面佈局更改
更改選單欄
更改HUD
關閉硬體更新提示
導航介面
軟體配置介面
下