app 安装

###########################################################################################################
###### 所有软件安装好后创建软连接到 /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 
	
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值