CentOS上搭建elasticsearch集群及设置脚本启动


服务器配置,三台centos虚拟机,ip列表如下:
192.168.214.139
192.168.214.155
192.168.214.156

elasticsearch安装包自带jdk,有就不用安装java jdk,如果没有请安装
在这里插入图片描述

安装java JDK

下载安装包:jdk-8u192-linux-x64.tar.gz
解压安装包:tar -zxvf jdk-8u192-linux-x64.tar.gz
把解压出来的文件夹移动到/usr/local/下:mv jdk1.8.0_192/ /usr/local/javajdk
输入 指令编辑etc/profile文件:vi /etc/profile
向文本最后添加这几行,第一行需要填写你的javaJDK的路径,我的是/usr/local/javajdk:

export JAVA_HOME=/usr/local/javajdk
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export  PATH=${JAVA_HOME}/bin:$PATH

这个指令是让配置文件立即生效:source /etc/profile
输入java -version能输出信息,就已经成功了
在这里插入图片描述

安装es

下载安装包:elasticsearch-7.11.1.tar.gz
解压安装包:tar -zxvf elasticsearch-7.11.1.tar.gz
把解压出来的文件夹移动到/usr/local/下:mv elasticsearch-7.11.1/ /usr/local/elasticsearch
补齐必要的目录:
  mkdir -p /usr/local/elasticsearch/data

cd /usr/local/elasticsearch

修改配置文件:vi config/elasticsearch.yml
注:
1、cluster.name:必须保持一致
2、node.name:必须唯一,每个节点不同
3、node.master:true 为主机,false为丛机(3节点必须要两个主机)
4、network.host:默认 0.0.0.0 或者本机的ip
5、discovery.zen.ping.unicast.hosts:所有节点ip

#配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: my-es
#节点名称
node.name: node-1
#true:代表是主机
node.master: true
#集群主节点信息
cluster.initial_master_nodes: ["node-1"]
#设置索引数据的存储路径
path.data: /usr/local/elasticsearch/data
#设置日志的存储路径
path.logs: /usr/local/elasticsearch/logs
#设置当前的ip地址,通过指定相同网段的其他节点会加入该集群中
network.host: 0.0.0.0
#注意:这三行代码是固定的
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["192.168.214.155","192.168.214.156","192.168.214.139"]

启动es

bin/elasticsearch

解决启动时报错

(1)、因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户。
具体操作如下:

useradd es
passwd es

再输入两次密码(自定义)
  为用户赋权限

chown -R es:es /usr/local/elasticsearch

然后使用es用户启动 :

su es
cd  /usr/local/elasticsearch

启动es命令:bin/elasticsearch
(2)、在普通用户下启动时报错
1、无法创建本地文件问题,用户最大可创建文件数太小,解决方案:切换到root用户,编辑limits.conf配置文件, 添加类似如下内容:

vi /etc/security/limits.conf

然后添加如下内容: 注意*不要去掉了

* soft nofile 65536
* hard nofile 131072

注:* 代表Linux所有用户名称(比如 hadoop)
 1、需要保存、退出、重新登录才可生效。
 2、最大虚拟内存太小,解决办法切换到root用户修改配置sysctl.conf:

vi /etc/sysctl.conf 

添加下面配置:
  vm.max_map_count=262144
  最后记得执行:

sysctl -p

然后,重新启动elasticsearch,即可启动成功。
看到这个界面证明已经成功了,可以用浏览器访问ip:9200查看,会下载一个json文件打开如下:
在这里插入图片描述
至此Elasticsearch就安装完成了,当然这只是一台机器,如果有需要还可以搭成集群.

配置es启动脚本

在/etc/init.d目录下新建文件elasticsearch

cd /etc/init.d/
vi elasticsearch
#!/bin/sh
#chkconfig: 2345 80 05
#description: elasticsearch

export JAVA_HOME=/usr/local/elasticsearch/jdk
export JAVA_BIN=/usr/local/elasticsearch/jdk/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

case "$1" in
start)
    su es<<!
    cd /usr/local/elasticsearch
    ./bin/elasticsearch -d
!
    echo "elasticsearch startup"
    ;;
stop)
    es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
    kill -9 $es_pid
    echo "elasticsearch stopped"
    ;;
restart)
    es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
    kill -9 $es_pid
    echo "elasticsearch stopped"
    su es<<!
    cd /usr/local/elasticsearch
    ./bin/elasticsearch -d
!
    echo "elasticsearch startup"
    ;;
*)
    echo "start|stop|restart"
    ;;
esac

exit $?

保存退出,并在/etc/init.d/下赋予执行权限

chmod +x elasticsearch

添加到开机启动任务或手动启动

chkconfig --add elasticsearch
service elasticsearch start/stop/restart

开机自动重启…
检测elasticsearch是否自启

ps -ef|grep elasticsearch

谷歌浏览器自带Elasticsearch Head插件

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的脚本,可以快速在 CentOS 7 上搭建 Hadoop 集群: ```bash #!/bin/bash # Hadoop Cluster Setup Script # Set hostname echo "Setting hostname..." hostnamectl set-hostname hadoop-master echo "127.0.0.1 hadoop-master" >> /etc/hosts # Install Java echo "Installing Java..." yum install -y java-1.8.0-openjdk-devel # Download Hadoop echo "Downloading Hadoop..." curl -O https://apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz # Extract Hadoop echo "Extracting Hadoop..." tar -xzvf hadoop-3.3.1.tar.gz mv hadoop-3.3.1 /usr/local/hadoop rm hadoop-3.3.1.tar.gz # Configure Hadoop echo "Configuring Hadoop..." echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> /usr/local/hadoop/etc/hadoop/hadoop-env.sh echo "export HADOOP_HOME=/usr/local/hadoop" >> /etc/profile echo "export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin" >> /etc/profile source /etc/profile # Configure Hadoop Cluster echo "Configuring Hadoop Cluster..." cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml sed -i 's/localhost/hadoop-master/' /usr/local/hadoop/etc/hadoop/core-site.xml sed -i 's/localhost/hadoop-master/' /usr/local/hadoop/etc/hadoop/hdfs-site.xml sed -i 's/localhost/hadoop-master/' /usr/local/hadoop/etc/hadoop/yarn-site.xml echo "export HDFS_NAMENODE_USER=root" >> /usr/local/hadoop/etc/hadoop/hadoop-env.sh echo "export HDFS_DATANODE_USER=root" >> /usr/local/hadoop/etc/hadoop/hadoop-env.sh echo "export HDFS_SECONDARYNAMENODE_USER=root" >> /usr/local/hadoop/etc/hadoop/hadoop-env.sh echo "export YARN_RESOURCEMANAGER_USER=root" >> /usr/local/hadoop/etc/hadoop/yarn-env.sh echo "export YARN_NODEMANAGER_USER=root" >> /usr/local/hadoop/etc/hadoop/yarn-env.sh # Start Hadoop Cluster echo "Starting Hadoop Cluster..." /usr/local/hadoop/sbin/start-dfs.sh /usr/local/hadoop/sbin/start-yarn.sh # Configure Hadoop Cluster on other nodes echo "Configure Hadoop Cluster on other nodes..." echo "hadoop-slave1" >> /etc/hosts echo "hadoop-slave2" >> /etc/hosts # Done echo "Hadoop Cluster Setup Complete!" ``` 这个脚本包括了以下步骤: 1. 设置主机名和 hosts 文件。 2. 安装 Java。 3. 下载和解压 Hadoop。 4. 配置 Hadoop。 5. 配置 Hadoop 集群。 6. 启动 Hadoop 集群。 7. 在其他节点上配置 Hadoop 集群。 可以将这个脚本保存为 `setup-hadoop.sh`,并在每个节点上运行它。注意,在运行脚本之前,需要将每个节点的 hostname 和 IP 地址添加到 `/etc/hosts` 文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值