基本信息:Centos-7.9、Java-1.8、Python-3.9、Scala-2.12、Hadoop-3.2.1、Spark-3.1.2、Flink-1.13.1、Hive-3.1.3、Zookeeper-3.8.0、Kafka-3.2.0、Nginx-1.23.1
目录
所有安装配置都基于个人学习配置,生产环境安装请明确各项配置
一、相关文件下载地址
- Centos-7.9
- http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64
- Java-1.8
- https://www.oracle.com/java/technologies/downloads/#java8
- Python-3.9
- https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
- Scala-2.12
- https://www.scala-lang.org/download/2.12.12.html
- Hadoop-3.2.1
- http://archive.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
- Spark-3.1.2
- http://archive.apache.org/dist/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz
- Flink-1.13.1
- http://archive.apache.org/dist/flink/flink-1.13.1/flink-1.13.1-bin-scala_2.12.tgz
- Hive-3.1.3
- http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
- Zookeeper-3.8.0
- http://archive.apache.org/dist/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
- Kafka-3.2.0
- http://archive.apache.org/dist/kafka/3.2.0/kafka_2.12-3.2.0.tgz
- Nginx-1.23.1
- https://nginx.org/download/nginx-1.23.1.tar.gz
二、虚拟机基础配置
- 修改静态 IP
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 修改完后重启网络
- systemctl restart network
- 相关配置根据自己机器修改
BOOTPROTO="static"
ONBOOT="yes"
GATEWAY="10.211.55.1"
IPADDR="10.211.55.101"
NETMASK="255.255.255.0"
DNS1="114.114.114.114"
DNS2="8.8.8.8"
- 创建用户
- 创建
- useradd -m ac_cluster
- 密码
- passwd ac_cluster
- sudo 权限
- vi /etc/sudoers
- 在 root 配置下面添加对应用户数据
- 创建
- 修改 yum 源
- 配置位置
- /etc/yum.repos.d
- 下载 wget
- sudo yum -y install wget
- 获取 repo 文件
- wget http://mirrors.aliyun.com/repo/Centos-7.repo
- 备份原 repo 文件
- mv CentOS-Base.repo CentOS-Base.repo.bak
- 改名
- mv Centos-7.repo CentOS-Base.repo
- 刷新
- yum clean all
- yum makecache
- 配置位置
- 下载 vim
- yum -y install vim
- 修改 hostname
- vim /etc/hostname
- reboot
- 关闭防火墙
- systemctl stop firewalld
- systemctl disable firewalld
- 修改域名映射
- vim /etc/hosts
- 配置 ssh 免密
- ssh-keygen-t rsa
- 三次回车
- ssh-copy-id hybrid01
- 根据子节点配置修改,有几个子节点执行几次
- ssh-keygen-t rsa
- 配置时间同步
- yum -y install ntpdate
- ntpdate ntp1.aliyun.com
- 可以配置自动执行时间同步
- crontab -e */1 * * * * sudo /usr/sbin/ntpdate ntp1.aliyun.com
三、语言环境安装
1. Java 环境安装
- 下载好安装包后解压到指定目录
- tar -zxvf xxx -C /xx/xx
- wget 一键安装
- wget --no-check-certificate --no-cookies --header “Cookie: oraclelicense=accept-securebackup-cookie” http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
- 环境配置
- /etc/profile 或者用户目录下的 ~/.bash_profile
- 改完记得 source
export JAVA_HOME=/xx/xx
export PATH=$JAVA_HOME/bin:$PATH
2. Python 环境安装
- 下载源码包或者 wget 下载
- wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
- 解压到指定目录
- tar -zxvf xxx -C /xx/xx
- 依赖环境安装
- sudo yum -y install vim unzip net-tools && sudo yum -y install wget && sudo yum -y install bzip2 && sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel && sudo yum -y install libglvnd-glx && sudo yum -y install gcc gcc-c++
- 预配置
- ./configure --prefix=/xxx/program/python3
- 编译安装
- make && make install
- 配置环境变量或者将 python3 软链接放到 /usr/bin 中
3. Scala 环境安装
- 下载好安装包后解压到指定目录
- tar -zxvf xxx -C /xx/xx
- 环境配置
- /etc/profile 或者用户目录下的 ~/.bash_profile
- 改完记得 source
export SCALA_HOME=/xx/xx
export PATH=$SCALA_HOME/bin:$PATH
四、大数据组件安装
1. Hadoop 集群安装
- 解压
- tar -zxvf xx -C /xx/xx
- 进入 Hadoop 目录修改 etc/hadoop 下的文件
- 修改 hadoop-env.sh
- export JAVA_HOME=/xxx
- 修改 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hybrid01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/xxx/runtime/hadoop_repo</value>
</property>
</configuration>
- 修改 hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hybrid01:50090</value>
</property>
</configuration>
- 修改 mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 修改 yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hybrid02</value>
</property>
</configuration>
- 修改 workers 文件配置 datanode
- 写入各 datanode 节点主机名
- 修改 hdfs 启动脚本:start-dfs.sh、stop-dfs.sh
- 添加下面的内容
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
- 修改 yarn 启停脚本:start-yarn.sh、stop-yarn.sh
- 添加下面的内容
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
- 环境配置
- /etc/profile 或者用户目录下的 ~/.bash_profile
- 改完记得 source
HADOOP_HOME=/xxx/hadoop-3.2.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
- 分发各节点
- scp -r hadoop-xxx user@hybrid01:$PWD
- 格式化 namenode
- hdfs namenode -format
- 启动集群
- 直接启动
- start-all.sh
- 守护进程启动
- hadoop-daemons.sh start/stop namenode/datanode/secondarynamenode
- yarn 启动
- start-yarn.sh
- 直接启动
2. MySQL 安装
其他组件会用到 MySQL 进行配置,这里先安装 MySQL,主要使用的是 Docker 来安装,懒得去弄安装包安装了
- Docker 安装
- sudo yum -y install yum-utils device-mapper-persistent-data lvm2
- sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- sudo yum -y install docker-ce docker-ce-cli containerd.io
- sudo service docker start
- systemctl enable docker
- 如果直接用不了,需要 sudo 的话可以直接去掉
- sudo gpasswd -a 你的用户名 docker
- newgrp docker
- MySQL 安装
- 创建挂载目录:data、conf
- docker pull mysql:5.7
- docker run -d --name=mysql -p 3306:3306 --restart=always --privileged=true -v /xxx/metadata/docker/mysql/data:/var/lib/mysql -v /xxx/metadata/docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
- 添加远程登录(Docker 好像自带了)
- 创建远程用户:CREATE USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
- 开启权限:GRANT ALL PRIVILEGES ON . TO ‘root’@’%’;
- 修改字节编码
- alter database <数据库名> character set utf8;
- 重启
- MySQL 驱动下载
- wget http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
3. Spark 安装
这里我没有直接安装 Spark 集群,一般都是提交到 Hadoop Yarn 中进行执行,这里只是解压配置环境变量即可
- 解压
- tar -zxvf xxx -C /xx/xx
- 环境配置
- /etc/profile 或者用户目录下的 ~/.bash_profile
- 改完记得 source
SPARK_HOME=/xxx/xx
export PATH=$SPARK_HOME/bin:$PATH
- 配置 Hive 环境
- 将 Hive 到 hive-site.xml 放到 Spark 到 conf 下
- 将 MySQL 驱动拷贝到 Spark 到 jars 里
- 测试
- 启动 spark-shell
- spark.sql(“show databases”).show()
4. Flink 安装
- 解压
- tar -zxvf flink-xxx -C /xx/xx
- 修改 flink-conf.yaml
- 修改 localhost 为主机名
- 修改 workers 主机名
- 修改 masters 主机名
- 分发集群
- scp -r flink-xxx user:hybrid01:$PWD
- 环境配置
- /etc/profile 或者用户目录下的 ~/.bash_profile
- 改完记得 source
FLINK_HOME=/xxx/xx
export PATH=$FLINK_HOME/bin:$PATH
- 启动
- start-cluster.sh
5. Hive 安装
- 解压
- tar -zxvf hive-xxx -C /xx/xx
- hive-env.sh
- HADOOP_HOME=/xx/hadoop
- export HIVE_CONF_DIR=/xx/hive/conf
- hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc 连接的 URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hybrid03:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>
<!-- jdbc 连接的 Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc 连接的 username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<!-- Hive 默认在 HDFS 的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!-- 指定存储元数据要连接的地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hybrid03:9083</value>
</property>
</configuration>
- MySQL 驱动
- 将之前安装 MySQL 时下载的驱动复制一份到 lib 下
- guava 包问题
- 将 Hadoop 下的 share/hadoop/commons/lib 的 guava-27.0-jre.jar 复制到 Hive 的 lib 下
- 初始化数据库
- schematool -dbType mysql -initSchema
- 环境配置
- /etc/profile 或者用户目录下的 ~/.bash_profile
- 改完记得 source
HIVE_HOME=/xxx/xx
export PATH=$HIVE_HOME/bin:$PATH
- 启动服务
- nohup hive --service metastore &
- 启动交互
- hive
6. Zookeeper 安装
后面操作都类似,就不细写了
- 解压
- tar -zxvf xxx -C /xx/xx
- zoo.cfg
dataDir=/acware/data/zookeeper
dataLogDir=/acware/logs/zookeeper
server.1=hybrid01:2888:3888
server.2=hybrid02:2888:3888
server.3=hybrid03:2888:3888
- 创建 data 和 log 目录
- dataDir 目录下创建 myid 并赋值
- 分发包到各节点然后创建对应目录和 myid
- 配置环境
- 启动
- zkServer.sh start
7. Kafka 安装
- 解压
- 配置环境
- 创建 log 目录
- 修改 server.properties
#broker的全局唯一编号,不能重复
broker.id=0
#kafka运行日志存放的路径
log.dirs=log.dirs=/acware/logs/kafka
#配置连接Zookeeper集群地址
zookeeper.connect=hybrido1:2181,hybrid02:2181,hybrid03:2181
- 分发集群,修改 borker.id
- 启动
- kafka-server-start.sh $KAFKA_HOME/conf/server.properties
- 注意
- 需要 server.properties 中设置 delete.topic.enable=true 才能彻底删除 Topic,否则只是标记删除
8. Nginx 安装
- 环境依赖配置
- yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
- 官网下载软件包或者 wget 下载
- wget https://nginx.org/download/nginx-1.22.1.tar.gz
- 预编译
- 我个人使用了其他的模块配件,一般安装只需要 --prefix 就可以了
- ./configure --prefix=/xxx/nginx-1.22.1 --with-openssl=/xxxopenssl --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-stream --with-http_auth_request_module
- 编译安装
- make && make install
- 配置环境
- 启动
- nginx
五、过程中存在的问题
1. 环境配置错误,丢失命令
- 添加临时命令
- export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin