1 环境介绍
本地安装可分为两个部分,mac软件环境, python开发环境
ps: 安装过程参考chatgpt、csdn文章
1.1 mac软件环境
目标安装的的软件是hive、apache-spark、hadoop,但是这三个软件又依赖java(spark依赖)、ssh(从warn日志看到,具体作用不明,可能是提交计算任务的时候依赖做权限验证)、数据库(hive依赖,postgres 实测问题较少)。zsh命令行解释器,用于执行指令, homebrew软件包管理器,安装卸载软件非常方便。接下来介绍各种软件情况。
1.1.1 环境变量
.zprofile 用来配置mac 用户登录时的环境变量,安装完软件后需要进行配置。 文档末尾提供一个参考示例。环境变量配置后才能方便的通过软件指令来进行操作。 同时python运行pyspark的时候也会使用到java的环境变量,配置错误会导致pyspark运行失败。
我都是把变量放.zprofile的,会比较省事
1.1.2 home-brew
安装过程涉及安装和删除,使用homebrew能解决很多不必要的问题。比如启动postgres
1.1.3 java
macos-sonoma 14.6.1自带hotspot 23版本,但是不满足spark运行环境要求,实测安装java openjdk 1.8 的版本可以使用。
1.1.4 ssh
目测是提交任务时候依赖,需要在~/.ssh 下面创建公钥、密钥同时把公钥备份重新命名才能让hadoop或spark使用到。
1.1.5 hive、spark、hadoop
需要解决的是账号密码、端口等配置,配置正确才能建立通讯。
1.2 Python 环境
1.2.1 miniforge3
python虚拟环境管理,因为公司不允许使用conda,所以用这个代替。 这个软件可以解决版本依赖冲突问题,同时管理python环境也很方便。 python开发环境和airflow 需要使用相同的python环境。
1.2.2 airflow
相当于python的一个组件,调用命令以后就能运行服务。python 代码里也会引用到这个组件。
写好的代码放到 airflow 组件的根目录下的 dags目录下就能被airflow识别。 代码文件复制过去后就会自动刷新调度任务。 可以在airflow上触发调度任务,验证执行结果。
1.2.3 python 开发环境
调试过程就能直接读到airflow的变量数据, 也可以调用pythonspark功能做调试。但是调试airflow不会把任务提交到airflow上。
所以验证要分两个阶段。
- 单独测试调度任务的逻辑 ,如果使用到了python 函数做任务的,参数需要自己设置一下传入。对使用xcom_push的还没实践过。
- 测试airflow dag代码逻辑。 验证就是运行有没有报错,变量取值是否正确。 任务依赖关系还得在airflow页面上查看。
2 安装步骤
经过反复调试成功,可能有些细节忘了。
如有遇到问题可以评论回复。或自行chat-gpt
有些服务启动会导致终端不能再输入指令了,command + T 创建新终端执行新指令,然后 source ~/.zprofile 更新环境变量即可
2.1 mac环境
2.1.1 homebrew
没有安装就用下面指令安装,打开终端
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
安装成功以后终端运行brew 有下面提示即可
2.1.2 ssh
- cd ~/.ssh
- ssh-keygen -t rsa -b 4096 -C “your_email@example.com” 创建公钥
- cat id_rsa.pub >> authorized_keys 复制公钥
- sudo systemsetup -setremotelogin on 启动ssh服务
2.1.3 安装java 1.8
- 执行指令 brew install openjdk@8
- export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) >> ~/.zprofile #这种方式不用自己去找java的目录
- source ~/.zprofile
- java -version #如果有打印java信息就安装成功了
2.1.4 安装postgres
- brew install postgresql@14 #指定版本吧,其他版本没试过
- 目录可能是/usr/local/var/postgresql@14、/opt/homebrew/opt/postgresql@14、/usr/local/opt/postgresql@14 验证一下即可,也可能没有@14,确认以后修改环境变量
- export PATH=“/opt/homebrew/opt/postgresql@14/bin:$PATH” >> ~/.zprofile
- source ~/.zprofile
- initdb /opt/homebrew/var/postgresql@14 初始化数据库, 可能没有@14,我装的都没有@14结尾
- brew services start postgresql@14 启动服务
- brew services list 验证服务是否启动
- psql postgres 登录数据库
- 创建hive用户信息
- CREATE DATABASE hive;
- CREATE USER hiveuser WITH PASSWORD ‘hivepassword’;
- GRANT ALL PRIVILEGES ON DATABASE hive TO hiveuser;
- \q 或者control