###########################################################################################################
###### 所有软件安装好后创建软连接到 /usr/bin/ 示例:ln -s /usr/java/jdk_1.844/bin/java /usr/bin/java ######
###########################################################################################################
一. JDK
查看linux自带JDK:rpm -qa | grep jdk
删除就openJDK: rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64
解压 JDK 包: tar -xvf jdk-8u73-linux-x64.tar.gz -C /usr/local
配置环境变量: vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version
出现以下,安装完成:
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
二. mysql
解压;
tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /usr/local
删除 mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
检查mysql是否存在
rpm -qa | grep mysql
检查mysql组和用户是否存在,如无创建
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
创建mysql用户组
groupadd mysql
创建一个用户名为mysql的用户并加入mysql用户组
useradd -g mysql mysql
制定password 为 mysql
passwd mysql
更改所属的组和用户
chown -R mysql /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64
chgrp -R mysql /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64
mkdir data
chown -R mysql:mysql data
在etc下新建配置文件my.cnf,并在该文件内添加以下配置(更改部分目录)
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql57
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql57/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
安装和初始化
/usr/local/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.7.22-linux-glibc2.12-x86_64/ --datadir=/usr/local/mysql-5.7.22-linux-glibc2.12-x86_64/data/
cp ./support-files/mysql.server /etc/init.d/mysqld
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysqld
重启
[root@hdp265dnsnfs mysql57]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
设置开机启动
[root@hdp265dnsnfs mysql57]# chkconfig --level 35 mysqld on
[root@hdp265dnsnfs mysql57]# chkconfig --list mysqld
[root@hdp265dnsnfs mysql57]# chmod +x /etc/rc.d/init.d/mysqld
[root@hdp265dnsnfs mysql57]# chkconfig --add mysqld
[root@hdp265dnsnfs mysql57]# chkconfig --list mysqld
[root@hdp265dnsnfs mysql57]# service mysqld status
SUCCESS! MySQL running (4475)
设置环境变量 etc/profile/
export MYSQL_HOME=/usr/local/mysql-5.7.22-linux-glibc2.12-x86_64
export PATH=$PATH:$MYSQL_HOME/bin
获得初始密码
cat /root/.mysql_secret
修改密码
三. zookeeper
解压
tar -xvf zookeeper.tar.gz -C /home/hadoop/Bigdata
修改权限
chown -R hadoop:hadoop /home/hadoop/Bigdata/zookeeper-3.5.5
修改配置文件
vim /home/hadoop/Bigdata/zookeeper-3.5.5/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/Bigdata/zookeeper-3.5.5/data
clientPort=2181
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
添加环境变量
vim /etc/profile
# zookeeper
export ZOOKEEPER_HOME=/home/hadoop/Bigdata/zookeeper-3.5.5
export PATH=$PATH:$ZOOKEEPER_HOME/bin
创建数据存储目录
mkdir /home/hadoop/Bigdata/zookeeper-3.5.5/data
创建myid文件
hadoop01:echo 1>/home/hadoop/Bigdata/zookeeper-3.5.5/data/myid
hadoop02:echo 2>/home/hadoop/Bigdata/zookeeper-3.5.5/data/myid
hadoop03:echo 3>/home/hadoop/Bigdata/zookeeper-3.5.5/data/myid
启动
zkServer.sh start
验证
zkServer.sh status
四. hadoop (3.2 高可用方式)
解压
tar -xvf hadoop.tar.gz -C /home/hadoop/Bigdata
mv /home/hadoop/Bigdata/hadoop-3.2.0..... /home/hadoop/Bigdata/hadoop-3.2.0(重命名)
配置环境变量
# hadoop
export HADOOP_HOME=/home/hadoop/Bigdata/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
创建Hadoop的数据存储相关目录
mkdir -p /home/hadoop/Bigdata/hadoop-3.2.0/tmp
mkdir -p /home/hadoop/Bigdata/hadoop-3.2.0/journaldata
mkdir -p /home/hadoop/Bigdata/hadoop-3.2.0/dfs/name
mkdir -p /home/hadoop/Bigdata/hadoop-3.2.0/dfs/data
Hadoop相关配置问价
1.core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
</configuration>
2.hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- hdfs HA configuration-->
<!-- all default configuration can be found at https://hadoop.apache.org/docs/stable|<can be a version liek r3.2.1></can>/hadoop-project-dist/hadoop-hdfs//hdfs-default.xml -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- dfs.nameservices 这里需要与core-site.xml 中fs.defaultFS 的名称一致-->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<!-- 定义集群中 namenode 列表,这里定义了三个namenode,分别是nn1,nn2,nn3-->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<!-- namenode nn1的具体定义,这里要和 dfs.ha.namenodes.mycluster 定义的列表对应 -->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>hadoop01:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>hadoop02:9000</value>
</property>
<!-- namenode nn1的具体定义,这里要和 dfs.ha.namenodes.mycluster 定义的列表对应 -->
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>hadoop02:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>hadoop01:9870</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop01:8485;hadoop02:8485/mycluster</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/Bigdata/hadoop-3.2.0/journaldata</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
<property>
<name>dfs.journalnode.http-address</name>
<value>0.0.0.0:8480</value>
</property>
<property>
<name>dfs.journalnode.rpc-address</name>
<value>0.0.0.0:8485</value>
</property>
<!-- hdfs HA configuration end-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/Bigdata/hadoop-3.2.0/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/Bigdata/hadoop-3.2.0/dfs/data</value>
</property>
<!--开启webhdfs接口访问-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!-- 关闭权限验证,hive可以直连 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
3.yarn-site.xml
<?xml version="1.0"?>
<configuration>
<!-- yarn ha configuration-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 定义集群名称 -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster</value>
</property>
<!-- 定义本机在在高可用集群中的id 要与 yarn.resourcemanager.ha.rm-ids 定义的值对应,如果不作为resource manager 则删除这项配置。-->
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value>
</property>
<!-- 定义高可用集群中的 id 列表 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 定义高可用RM集群具体是哪些机器 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop02</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>hadoop01:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>hadoop02:8088</value>
</property>
<property>
<name>hadoop.zk.address</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4.mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>
/home/hadoop/Bigdata/hadoop-3.2.0/share/hadoop/common/,
/home/hadoop/Bigdata/hadoop-3.2.0/share/hadoop/common/lib/,
/home/hadoop/Bigdata/hadoop-3.2.0/share/hadoop/hdfs/,
/home/hadoop/Bigdata/hadoop-3.2.0/share/hadoop/hdfs/lib/,
/home/hadoop/Bigdata/hadoop-3.2.0/share/hadoop/mapreduce/,
/home/hadoop/Bigdata/hadoop-3.2.0/share/hadoop/mapreduce/lib/,
/home/hadoop/Bigdata/hadoop-3.2.0/share/hadoop/yarn/,
/home/hadoop/Bigdata/hadoop-3.2.0/share/hadoop/yarn/lib/
</value>
</property>
</configuration>
5.hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_73
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_JOURNALNODE_USER=hadoop
export HDFS_ZKFC_USER=hadoop
export YARN_RESOURCEMANAGER_USER=hadoop
export YARN_NODEMANAGER_USER=hadoop
6.yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_73
7.workers
hadoop01
hadoop02
hadoop03
启动journalnode
/home/hadoop/Bigdata/hadoop-3.2.0/bin/hdfs --daemon start journalnode
格式化 Namenode(只格式化一次,成功后就不用了格式化了)
/home/hadoop/Bigdata/hadoop-3.2.0/bin/hadoop namenode -format
同步格式化之后的元数据到其他namenode,不然可能起不来
scp -r /home/hadoop/Bigdata/hadoop-3.2.0/dfs/name hadoop02:/home/hadoop/Bigdata/hadoop-3.2.0/dfs/
scp -r /home/hadoop/Bigdata/hadoop-3.2.0/dfs/name hadoop03:/home/hadoop/Bigdata/hadoop-3.2.0/dfs/
格式化ZK
hdfs zkfc -formatZK
启动 hadoop
start-dfs.sh
start-yarn.sh
hdfs haadmin -getAllServiceState
页面访问
hadoop01:9870 hdfs
hadoop01:8088 yarn
五. scala
解压
tar -xvf scala-2.11.12.tgz -C /home/hadoop/Bigdata
配置环境变量
vim etc/profile
# scala
export SCALA_HOME=/home/hadoop/Bigdata/scala-2.11.12
export PATH=$PATH:$SCALA_HOME/bin
验证
source /etc/profile
scala -version
六. spark
解压
tar -xvf spark.tar.gz -C /home/hadoop/Bigdata
mv spark-2.4.3-bin-hadoop2.7 spark-2.4.3
配置环境变量
vim /etc/profile
export SPARK_HOME=/home/hadoop/Bigdata/spark-2.4.3
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/sbin
配置文件
spark-config.sh
vim /home/hadoop/Bigdata/spark-2.4.3/sbin/spark-config.sh
添加 export JAVA_HOME=/usr/local/jdk1.8.0_73
slaves
vim /home/hadoop/Bigdata/spark-2.4.3/conf/slaves
hadoop01
hadoop02
hadoop03
spark-env.sh
vim /home/hadoop/Bigdata/spark-2.4.3/conf/spark-env.sh
添加:
export JAVA_HOME=/usr/local/jdk1.8.0_73
export SCALA_HOME=/home/hadoop/Bigdata/scala-2.11.12
export HADOOP_HOME=/home/hadoop/Bigdata/hadoop-3.2.0
export HADOOP_CONF_DIR=/home/hadoop/Bigdata/hadoop-3.2.0/etc/hadoop
export SPARK_MASTER_PORT=7077
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoverMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop01,hadoop02,hadoop03 -Dspark.deploy.zookeeper.dir=/spark"
export spark.master=spark://hadoop01:7077
spark-defaults.conf
vim /home/hadoop/Bigdata/spark-2.4.3/conf/spark-defaults.conf
#配置spark.yarn.jar
spark.yarn.jars hdfs://hadoop01:9000/spark/jars/*
spark.master yarn
spark.port.maxRetries 128
spark.eventLog.enabled=true
spark.eventLog.compress=true
#保存在本地
#spark.eventLog.dir=file://usr/local/hadoop-2.7.6/logs/userlogs
#spark.history.fs.logDirectory=file://usr/local/hadoop-2.7.6/logs/userlogs
#保存在hdfs上
spark.eventLog.dir=hdfs://hadoop01:9000/logs
spark.history.fs.logDirectory=hdfs://hadoop01:9000/tmp/logs/root/logs
spark.yarn.historyServer.address=http://hadoop02:18080
注意:(在hdfs上创建以下目录并,上次spark下jars里的文件到hdfs)
hdfs dfs -mkdir hdfs://hadoop01:9000/spark
hdfs dfs -mkdir hdfs://hadoop01:9000/spark/jars
hdfs dfs -put $SPARK_HOME/jars/* /spark/jars
七. mongoDB
解压
tar -xvf mongodb-linux-x86_64-3.6.3.tgz -C /home/hadoop/Bigdata
mv mongodb-linux-x86_64-3.6.3 mongodb-3.6.3
创建目录
mkdir /home/hadoop/Bigdata/mongodb-3.6.3/data
mkdir /home/hadoop/Bigdata/mongodb-3.6.3/logs
进入MongoDB的bin目录,创建mongodb.conf文件
touch /home/hadoop/Bigdata/mongodb-3.6.3/bin/mongodb.conf
dbpath = /home/hadoop/Bigdata/mongodb-3.6.3/data #数据文件存放目录
logpath = /home/hadoop/Bigdata/mongodb-3.6.3/logs/mongodb.log #日志文件存放目录
port = 27017 #端口号
fork = true #以守护程序的方式启用,即在后台运行
#auth=true #是否需要登录认证,配置账号密码需要开启,这里注释掉
noauth=true #不启用验证
storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip=0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
配置环境变量
vim /etc/profile
# mongoDB
export MONGODB_HOME=/home/hadoop/Bigdata/mongodb-3.6.3
export PATH=$PATH:$MONGODB_HOME/bin
启动服务,进入bin目录下
mongod -f /home/hadoop/Bigdata/mongodb-3.6.3/bin/mongodb.conf
查看是否启动成功
ps -ef | grep mongodb
启动Mongo控制台
#: mongo
> show dbs;
查看是否安装成功
which mongod查看mongo是否安装成功, 显示运行路径,说明mongodb已经安装成功
重启
kill掉,重新启动即可
设置密码:
vim /home/hadoop/Bigdata/mongodb-3.6.3/bin/mongodb.conf
添加: auth:true
重启服务
进入mongo服务
use admin // 用admin身份
db.createUser({user:"admin",pwd:"123456",roles:["root"]}) //创建账号
db.auth("admin","123456") //就可以进入mongo服务了
这个账号只能用作客户端远程连接,如果程序想要连接各个集合,要针对各个库去单独设置账号密码
######
mongo密码设置参考:https://blog.csdn.net/weixin_30954265/article/details/97595544?utm_source=app&app_version=5.0.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
######
八. kafka
解压
tar -xvf kafka.tar.gz -C /home/hadoop/Bigdata
配置环境变量
vim /etc/profile
# kafka
export KAFKA_HOME=/home/hadoop/Bigdata/kafka_2.11-2.2.0
export PATH=$PATH:$KAFKA_HOME/bin
创建日志目录文件(已有就不用创建)
mkdir /home/hadoop/Bigdata/kafka_2.11-2.2.0/logs
修改配置文件
vi /home/hadoop/Bigdata/kafka_2.11-2.2.0/config/server.properties (只修改下面5个,其他不用动)
hadoop01:
broker.id=1
listeners=PLAINTEXT://hadoop01:9092
advertised.listeners=PLAINTEXT://hadoop01:9092
log.dirs=/home/hadoop/Bigdata/kafka_2.11-2.2.0/logs
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
hadoop02:
broker.id=1
listeners=PLAINTEXT://hadoop02:9092
advertised.listeners=PLAINTEXT://hadoop02:9092
log.dirs=/home/hadoop/Bigdata/kafka_2.11-2.2.0/logs
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
hadoop03:
broker.id=1
listeners=PLAINTEXT://hadoop03:9092
advertised.listeners=PLAINTEXT://hadoop03:9092
log.dirs=/home/hadoop/Bigdata/kafka_2.11-2.2.0/logs
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
测试
启动zookeeper:zkServer.sh start,每个节点启动
开启kafka进程:kafka-server-start.sh /home/hadoop/Bigdata/kafka_2.11-2.2.0/config/server.properties &
jps 查看经常:(类似下面的进程)
11878 Kafka
13341 Jps
11822 QuorumPeerMain
创建一个Kafka的topic(主题)进行测试
kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 1 --topic test
查看创建的topic
kafka-topics.sh --list -zookeeper node1:2181
九. hbase 1.2.6
十. elasticsearch 安装
1. 下载
2. 解压
tar -xvf elasticsearch-7.3.2-linux-x86_64.tar.gz -C 安装目录
3. 修改配置文件
vi elasticsearch.yml
主节点:
# 集群名称
cluster.name: myes
# 节点名称
node.name: master
# 存放数据目录,先创建该目录
path.data: /opt/bigdata/es/data
# 存放日志目录,先创建该目录
path.logs: /opt/bigdata/es/logs
# 节点IP
network.host: 172.17.20.225
# tcp端口
transport.tcp.port: 9300
# http端口
http.port: 9200
# 种子节点列表,主节点的IP地址必须在seed_hosts中 单节点写一个 集群写所有
discovery.seed_hosts: ["172.17.20.225"]
# 主合格节点列表,若有多个主节点,则主节点进行对应的配置
cluster.initial_master_nodes: ["cdh-master"]
# 主节点相关配置
node.master: true
node.data: true
node.ingest: false
node.ml: false
cluster.remote.connect: false
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
从节点:(scp 主节点elasticsearch.yml到从节点,修改一下两点)
worker1:
node.name: worker1
network.host: 172.17.20.226
worker2:
node.name: worker2
network.host: 172.17.20.227
4. 在每个节点创建用户es并设置密码
创建用户 $ useradd es 设置密码$ echo "es" | passwd --stdin es
给es用户赋权限 $ chown -R es:es elasticsearch-7.3.2
5. 启动 es
用创建的 es 用户,先启动从节点,后启动主节点
注意需要修改:
编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536
此文件修改后需要重新登录用户,才会生效
编辑 /etc/sysctl.conf,追加以下内容:
vm.max_map_count=655360
保存后,执行:
sysctl -p
web:ip:9200
es集群配设密码;
1. 生成认证文件
(必须要生成认证文件,且ES配置文件里要引用这些生成的认证文件,否则启动ES的时候,日志会报错:Caused by: javax.net.ssl.SSLHandshakeException: No available authentication scheme。虽然ES看起来启动成功了,但是集群状态是异常的。)
bin/elasticsearch-certutil ca
然后,直接回车两次
(设置完毕后,会在/usr/local/elasticsearch-7.6.2下看到新生成的文件:elastic-stack-ca.p12)
2. 生成p12秘钥
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
然后回车3次
(设置完毕后,会在/usr/local/elasticsearch-7.6.2下看到新生成的文件:elastic-certificates.p12)
3. 拷贝p12秘钥文件
cd /usr/local/ElasticSearch/config
mkdir certs
cp /usr/local/elasticsearch-7.6.2/elastic-certificates.p12 certs/
4. 他节点上先创建下certs目录
将第一个节点生成的 elastic-certificates.p12 秘钥文件拷贝的其他两个节点的 cert3 文件夹下
5. 修改所有ES节点的配置文件
vi /usr/local/ElasticSearch/config/elasticsearch.yml
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
6. 重启各ES节点
7. 设置密码 (设置密码的话,必须确保集群状态正常才行,否则密码设置会失败。)
在其中一个节点上设置密码即可:
/bin/elasticsearch-setup-passwords interactive
(按以下顺序依次输入密码)
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
8. 登录 web 页面验证 ip:9200 输入密码正常
9. 配置kibana用户密码
修改配置文件
vi /usr/local/kibana/config/kibana.yml
添加:
elasticsearch.username: "kibana"
elasticsearch.password: "密码"
重启kibana
#启动 /usr/local/kibana/bin/kibana &
验证
ip:5601
10. 参考:
https://blog.csdn.net/yabingshi_tech/article/details/109535035?ops_request_misc=&request_id=&biz_id=102&utm_term=elasticsearch%207.3.2%20%20%E8%AE%BE%E7%BD%AE%E8%B4%A6%E5%8F%B7%E5%AF%86%E7%A0%81&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-0-109535035.pc_v2_rank_blog_default&spm=1018.2226.3001.4450
es单节点设置密码
在 config/elasticsearch.yml文件添加
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
设置密码(以下输入密码即可)
bin>elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
十一. kibana 安装
1. 安装包下载
2. 解压
tar -xvf kibana-7.3.2-linux-x86_64.tar.gz -C 安装目录
3. 修改配置文件config/kibana.yml
server.host: "65.95.241.141"
elasticsearch.hosts: ["http://65.95.241.141:9200"]
4. 启动
setsid ./kibana --allow-root
5. 直接在浏览器中输入 192.168.1.3:5601 ok
十二. redis 安装
1. 下载安装包
2. 解压
tar -zxvf redis-5.0.10.tar.gz -C /解压目录/
3. 进入到源码包中,编译并安装redis:
cd /home/hadoop/app/redis-5.0.10/
make && make install
4. 进入到安装目录:
cd /home/hadoop/app/redis-5.0.10
5. 修改配置文件redis.conf
sudo vim redis.conf
只需要修改四个选项就可以了:
daemonize yes #redis后台运行
#cluster-enabled yes #默认是没有开启集群模式,如果要开启集群模式,将注释去掉
protected-mode no #关闭保护模式,使其他机器也可以访问本机redis
appendonly yes #开启aof日志,它会每次写操作都记录一条日志
bind 192.168.1.207(本机IP)
然后还需要修改日志文件的目录:
(1).新建一个文件redis_log.log,并修改他的权限:
sudo touch /home/hadoop/app/redis-5.0.10/logs/redis.log
sudo chmod 777 /home/hadoop/app/redis-3.2.11/logs/redis.log
(2).新建一个目录redis_dbfile,并修改他的权限:
sudo mkdir /home/hadoop/app/redis-3.2.11/data
sudo chmod 777 /home/hadoop/app/redis-3.2.11/data
然后修改redis.conf文件:
1.将logfile ""修改为logfile /home/hadoop/app/redis-3.2.11/logs/redis.log
2.将dir /.修改为dir /home/hadoop/app/redis-3.2.11/data/
6.启动redis
./src/redis-server redis.conf
ps -ef | grep redis
7.使用命令行客户端连接redis
./src/redsi-cli -h 192.168.88.23 -p 6379
8.设置密码
连接上redis后,执行:
config set requirepass 123(密码)
9.关闭redis
./src/redis-cli shutdown
十三. nginx 安装(离线)
1. 准备安装包(nginx.rar 里面包含需要的包)
解压出来后,上传到linux里面,我放在/usr/local/src中(这个路径自己随意放就可以了)
2. 进入到你放的nginx整个文件夹所在的位置,我是
先进入 cd?/usr/local/src/nginx/gcc 文件夹,执行以下命令:rpm -Uvh *.rpm --nodeps --force
在进入到 ?cd?/usr/local/src/nginx/gcc-c++ ?文件夹,执行以下命令:rpm -Uvh *.rpm --nodeps --force
3. 安装完成后可通过如下命令检测是否安装成功
gcc -v
g++ -v
版本可能不一样,但出现类似文字即可。
4. 下一步就是安装PCRE,cd /usr/local/src/nginx 先把pcre解压出来 tar -zxvf pcre-8.35.tar.gz,解压出来之后就要开始安装了
cd pcre-8.35
./configure
make
make install
5. 再来安装libtool:cd?/usr/local/src/nginx?先把libtool 解压出来 tar -zxvf libtool-2.4.2.tar.gz 解压出来之后就要开始安装了
cd libtool-2.4.2
./configure
make
make install
好了,环境到这里就配置的差不多了,应该不会有问题了。
6. 安装nginx cd?/usr/local/src/nginx 先把nginx解压出来 tar -zxvf nginx-1.13.9.tar.gz 解压出来之后就要开始安装了
cd nginx-1.13.9
./configure
make
make install
7. 常用命令
启动nginx :nginx安装目录地址 -c nginx配置文件地址
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s stop (quit) 停止nginx
/usr/local/nginx/sbin/nginx -s reload 重启nginx
netstat -tunlp 查看端口占用
netstat -tunlp | grep 查看指定端口
nginx的配置文件为安装目录下的nginx目录中的nginx.conf,默认端口为80,启动后出现如下页面即为启动成功
访问地址是:服务器地址:80(如:128.232.236.82:80)需要注意80端口没有被占用
安装好了之后,下面就是开始使用了
十四. StarRocks
CPU需要支持AVX2指令集, cat /proc/cpuinfo |grep avx2有结果输出表明CPU支持,如果没有支持,建议更换机器,StarRocks使用向量化技术需要一定的指令集支持才能发挥效果。
1.解压(linux(Centos 7+) , Java 1.8+)
tar -zxvf StarRocks-1.18.2.tar.gz -C 安装路径
2.单点部署FE
第一步: 定制配置文件conf/fe.conf:
JAVA_OPTS = "-Xmx4096m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$STARROCKS_HOME/log/fe.gc.log"
可以根据FE内存大小调整 -Xmx4096m,为了避免GC建议16G以上,StarRocks的元数据都在内存中保存。
第二步: 创建元数据目录:
mkdir -p doris-meta
第三步: 启动FE进程:
bin/start_fe.sh --daemon
第四步: 确认启动FE启动成功.
查看日志log/fe.log确认.
如果FE启动失败,可能是由于端口号被占用,修改配置文件conf/fe.conf中的端口号http_port。
使用jps命令查看java进程确认"StarRocksFe"存在.
使用浏览器访问8030端口, 打开StarRocks的WebUI, 用户名为root, 密码为空.
使用MySQL客户端访问FE
第一步: 安装mysql客户端(如果已经安装,可忽略此步):
第二步: 使用mysql客户端连接:
mysql -h 127.0.0.1 -P9030 -uroot
注意:这里默认root用户密码为空,端口为fe/conf/fe.conf中的query_port配置项,默认为9030
第三步: 查看FE状态:
mysql> SHOW PROC '/frontends'\G
Role为FOLLOWER说明这是一个能参与选主的FE;IsMaster为true,说明该FE当前为主节点。
如果MySQL客户端连接不成功,请查看log/fe.warn.log日志文件,确认问题。由于是初次启动,如果在操作过程中遇到任何意外问题,都可以删除并重新创建FE的元数据目录,再从头开始操作。
3.集群部署FE
1)确保防火墙关闭或者添加 StarRocks 端口
2)FE节点之间的时钟相差不能超过5s, 使用NTP协议校准时间.一台机器上只可以部署单个FE节点。所有FE节点的http_port需要相同。
3)使用MySQL客户端连接已有的FE, 添加新实例的信息,信息包括角色、ip、port:
mysql> ALTER SYSTEM ADD FOLLOWER "host:port";
如:mysql> ALTER SYSTEM ADD FOLLOWER "192.168.88.100:9010";
或者:
mysql> ALTER SYSTEM ADD OBSERVER "host:port";
如:mysql> ALTER SYSTEM ADD OBSERVER "192.168.88.100:9010";
如出现错误,需要删除FE,应用下列命令:
alter system drop follower "fe_host:edit_log_port";
alter system drop observer "fe_host:edit_log_port";
4)FE节点首次启动
主节点:./bin/start_fe.sh --daemon
从节点1:./bin/start_fe.sh --helper 主节点ip:9010 --daemon
从节点2:./bin/start_fe.sh --helper 主节点ip:9010 --daemon
当所有节点FE再次启动时,无须指定--helper参数 ./bin/start_fe.sh --daemon
5)查看集群状态, 确认部署成功:
mysql> SHOW PROC '/frontends'\G
节点的Alive显示为true则说明添加节点成功。
4.部署BE
第一步: 创建数据目录:
cd StarRocks-XX-1.0.0/be
mkdir -p storage
第二步: 通过mysql客户端添加BE节点:
添加每个节点
mysql> ALTER SYSTEM ADD BACKEND "ip:9050";
如出现错误,需要删除BE节点,应用下列命令:
alter system decommission backend "be_host:be_heartbeat_service_port";
alter system dropp backend "be_host:be_heartbeat_service_port";
第三步: 启动BE:
每个节点:bin/start_be.sh --daemon
第四步: 查看BE状态, 确认BE就绪:
mysql> SHOW PROC '/backends'\G
如果isAlive为true,则说明BE正常接入集群。
5.部署Broker
配置文件为apache_hdfs_broker/conf/apache_hdfs_broker.conf
如果有特殊的hdfs配置,复制线上的hdfs-site.xml到conf目录下
启动:
./apache_hdfs_broker/bin/start_broker.sh --daemon
添加broker节点到集群中:
MySQL> ALTER SYSTEM ADD BROKER broker1 "172.16.139.24:8000";
查看broker状态:
MySQL> SHOW PROC "/brokers"\G
Alive为true代表状态正常。
6.参数设置
Swappiness
关闭交换区,消除交换内存到虚拟内存时对性能的扰动。
echo 0 | sudo tee /proc/sys/vm/swappiness
Compaction相关
当使用聚合表或更新模型,导入数据比较快的时候,可改下列参数以加速compaction。
cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2
并行度
在客户端执行命令,修改StarRocks的并行度(类似clickhouse set max_threads= 8)。并行度可以设置为当前机器CPU核数的一半。
set global parallel_fragment_exec_instance_num = 8;
十五. nifi 1.8
app 安装
于 2021-07-23 23:20:26 首次发布