|
下载.patch补丁文件:
https://issues.apache.org/jira/browse/SOLR-6969,选中补丁文件,右键【另存为】即可下载到本地。
下载solr4.7.2源码:
源码两种下载方式:
只下载solr-core:
1.进入https://mvnrepository.com/官网,搜索solr-core,选择相应版本(Version 4.7.2),就会出现我们想要的jar包;
2.右键【Download(JAR)】,复制链接地址,如http://central.maven.org/maven2/org/apache/solr/solr-core/4.7.2/solr-core-4.7.2.jar,
打开浏览器新标签页,输入该地址的前半部分,即http://central.maven.org/maven2/org/apache/solr/solr-core/4.7.2/,进入页面看到solr-core的jar包,source包,javadoc包;
3.下载solr-core-4.7.2-sources.jar包即可;
下载整个solr 4.7.2版本的源码:(事实证明这种方式更适用)
1.进入http://archive.apache.org/dist/lucene/solr/4.7.2/;
2.下载solr-4.7.2-src.tgz到本地。
打补丁:
目标代码:solr-4.7.2-src.tgz
经过搜索,打补丁有多种方式,这里简单提及以下三种:
1.IDEA patch:(推荐,缺点:无法回退)
1).解压并加载solr-4.7.2-src项目到IDEA中;
2).菜单栏【VCS】——【Apply Patch...】,选择要打的补丁文件SOLR-6969.patch;
3).选择并查看想要合并的文件,【Apply】即可。
2.git bash patch:
适用git bash来打补丁,它不仅可以打补丁,还可以生成补丁,使用方法自行百度;
3.Linux/Unix diff/patch:
diff命令可以生成补丁;
patch命令可以应用补丁;
使用方法参考:http://www.cnblogs.com/cocowool/p/6409643.html
打包solr-core:
进入解压后的solr-4.7.2-src ROOT目录下,打开README.txt文件,得到如下信息:
Apache Lucene/Solr
lucene/ is a search engine library
solr/ is a search engine server that uses lucene
To compile the sources run 'ant compile'
To run all the tests run 'ant test'
To setup your>
For Maven info, see dev-tools/maven/README.maven
安装Apache ivy:
背景:ant编译依赖Apache ivy,Apache ivy是一个管理项目依赖的工具,类似于Maven;
安装方法:
1.官网下载:
1.进入https://ant.apache.org/ivy/,下载apache-ivy-2.4.0-bin.zip
2.解压后,ROOT目录下可以看到【ivy-2.4.0.jar】这个包;
3.拷贝【ivy-2.4.0.jar】到【ANT_HOME/lib】目录下,即完成ivy的安装。
2.从maven repository下载ivy-${VERSION}.jar:
1.进入https://mvnrepository.com/,搜索ivy;
2.选中【org.apache.ivy » ivy】,点击链接并进入相应版本(这里选ivy-2.4.0)的详情页;
3.下载【ivy-2.4.0.jar】;
4.拷贝【ivy-2.4.0.jar】到【ANT_HOME/lib】目录下,即完成ivy的安装。
△编译solr-core : (编译过程中,出现的个别错误,需要根据打印出的日志,耐心去解决)
在solr-4.7.2-src ROOT目录下,打开CMD命令行,执行【ant compile】命令开始编译;
备注:第一次编译,耗时较长,需要耐心等待。
说明:打包好的solr-core-${VERSION}.jar需要和solr-core-4.7.2.jar进行对比,保证目录结构的一致性,否则可能不能用。
编译完成后,每个项目下会生成一个build文件夹,即编译后的class文件;
打包solr-core:
进入【solr-4.7.2-src\solr-4.7.2\solr\build\solr-core\classes\java】目录,打开CMD命令行,执行以下命令开始打包:
jar cvfm solr-core-4.7.2.jar META-INF/MANIFEST.MF -C ./ .
备注:jar命令使用帮助:jar -help
用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项:
-c 创建新档案
-t 列出档案目录
-x 从档案中提取指定的 (或所有) 文件
-u 更新现有档案
-v 在标准输出中生成详细输出
-f 指定档案文件名
-m 包含指定清单文件中的清单信息
-n 创建新档案后执行 Pack200 规范化
-e 为捆绑到可执行 jar 文件的独立应用程序指定应用程序入口点
-0 仅存储; 不使用任何 ZIP 压缩
-P 保留文件名中的前导 '/' (绝对路径) 和 ".." (父目录) 组件
-M 不创建条目的清单文件
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含以下文件
如果任何文件为目录, 则对其进行递归处理。
清单文件名, 档案文件名和入口点名称的指定顺序与 'm', 'f' 和 'e' 标记的指定顺序相同。
示例 1: 将两个类文件归档到一个名为>
jar cvf>
示例 2: 使用现有的清单文件 'mymanifest' 并
将 foo/ 目录中的所有文件归档到 'classes.jar' 中:
jar cvfm>
打包solr.war:
1.解压【solrcloud-4.7.2.zip】,进入【solrcloud-4.7.2\solrcloud-4.7.2】目录下,用新生成的solr-core-4.7.2.jar替换原来的jar包;
2.打开CMD命令行,执行【ant】命令,打包文件,在当前目录下生成新的solr.war;
部署solr.war:
1.上传solr.war到hadoop主机节点上;
2.删除HDFS上旧的war:
hdfs dfs -rm /lib/jetty/solr.war
3.上传新的war到HDFS上:
hdfs dfs -put solr.war /lib/jetty
后续工作:
重新拉起data720,观察日志信息。 |
|
|