在 Linux 系统上安装 solrCloud
1. 依赖:
JRE solr7.3 需要 java1.8
独立的 zookeeper 服务 ,zookeeper 安装请参考:
http://zookeeper.apache.org/doc/current/zookeeperStarted.html
2. 上传 Solr 安装包
3. 从安装包中解出安装脚本
tar xzf Solr-7.3.0.tgz Solr-7.3.0/bin/install_solr_service.sh --strip-components=2
安装脚本可用于: CentOS, Debian, Red Hat, SUSE and Ubuntu Linux distributions
4. 安装脚本参数说明:
./install_solr_service.sh -help
-i 指定软件安装目录. 默认 /opt
-d 指定数据目录 (Solr 主目录): 内核存储目录 . 默认 /var/Solr
-u 指定要创建的拥有 Solr 的用户名, 出于安全考虑, 不应以 root 来运行. 默认 Solr
-s 指定系统服务名. 默认 Solr
-p 指定端口. 默认 8983
5. 目录规划
6. 以 root 身份运行安装脚本进行安装
./install_solr_service.sh Solr-7.3.0.tgz
等同:
./install_solr_service.sh Solr-7.3.0.tgz -i /opt -d /var/Solr -u Solr -s Solr -p 8983
配置 Solr 服务实例
1. 认识 Solr 服务的配置文件
问: 如何启动一个 Solr 服务实例?
1, 系统服务脚本: /etc/init.d/Solr 请查看该脚本内容, 看系统启动时是如何启动 Solr 服务实例的. 可看到使用了如下三个变量:
2. 环境参数配置文件 (官方叫法: include file). 它将覆盖 bin/Solr 启停控制脚本中的配置参数. 我们通过该文件来配置修改 Solr 服务实例的运行配置.
请查看 /etc/default/Solr.in.sh , 看我们可以在该文件中进行哪些配置.
在 /etc/default/Solr.in.sh 中可看到它配置了如下参数:
map 将 RDD 的元素一个个传入 call 方法, 经过 call 方法的计算之后, 逐个返回, 生成新的 RDD, 计算之后, 记录数不会缩减. 示例代码, 将每个数字加 10 之后再打印出来, 代码如下
- import java.util.Arrays;
- import org.apache.spark.SparkConf;
- import org.apache.spark.API.java.JavaRDD;
- import org.apache.spark.API.java.JavaSparkContext;
- import org.apache.spark.API.java.function.Function;
- import org.apache.spark.API.java.function.VoidFunction;
- public class Map {
- public static void main(String[] args) {
- SparkConf conf = new SparkConf(www.yongshiyule178.com/).setAppName( www.dfgjpt.com"spark map").setMaster("local[*]");
- JavaSparkContext javaSparkContext www.michenggw.com new JavaSparkContext(conf);
- JavaRDD<Integer> listRDD = javaSparkContext.parallelize(Arrays.asList(1, 2, 3, 4));
- JavaRDD<Integer> numRDD www.yongshi123.cn =www.tiaotiaoylzc.com listRDD.map(new Function<Integer, Integer>() {
- @Override
- public Integer call(Integer num) throws Exception {
- return num + 10;
- numRDD.foreach(new VoidFunction<Integer>(www.cmeidi.cn) {
- @Override
- public void call(Integer num) throws Exception {
- System.out.println(num);
执行结果:
2,flatMap
flatMap 和 map 的处理方式一样, 都是把原 RDD 的元素逐个传入进行计算, 但是与之不同的是, flatMap 返回值是一个 Iterator, 也就是会一生多, 超生
- import java.util.Arrays;
- import java.util.Iterator;
- import org.apache.spark.SparkConf;
- import org.apache.spark.API.java.JavaRDD;
- import org.apache.spark.API.java.JavaSparkContext;
- import org.apache.spark.API.java.function.FlatMapFunction;
- import org.apache.spark.API.java.function.VoidFunction;
- public class FlatMap {
- public static void main(String[] args) {
- SparkConf conf = new SparkConf().setAppName(www.mhylpt.com"spark map"www.ycjszpgs.com).setMaster("local[*]");
- JavaSparkContext javaSparkContext = new JavaSparkContext(conf);
- JavaRDD<String> listRDD = javaSparkContext
- .parallelize(Arrays.asList("hello wold", "hello java", "hello spark"));
- JavaRDD<String> rdd = listRDD.flatMap(new FlatMapFunction<String, String>() {
- private static final long serialVersionUID = 1L;
- @Override
- public Iterator<String>www.myzx1.com call(String input) throws Exception {
- return Arrays.asList(input.split()).iterator();
- rdd.foreach(new VoidFunction<String>() {
- private static final long serialVersionUID = 1L;
- @Override
- public void call(String num) throws Exception {
- System.out.println(num);
来源: http://www.bubuko.com/infodetail-2979947.html