当前位置: 首页 > news >正文

青岛企业网站建设优化无锡谷歌推广

青岛企业网站建设优化,无锡谷歌推广,只做健康产品的网站,重庆建站公司官网1 环境介绍 本地安装可分为两个部分,mac软件环境, python开发环境 ps: 安装过程参考chatgpt、csdn文章 1.1 mac软件环境 目标安装的的软件是hive、apache-spark、hadoop,但是这三个软件又依赖java(spark依赖)、ssh&#xff08…

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上。
所以验证要分两个阶段。

  1. 单独测试调度任务的逻辑 ,如果使用到了python 函数做任务的,参数需要自己设置一下传入。对使用xcom_push的还没实践过。
  2. 测试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 + c 退出
  • psql -U hiveuser -d hive -h localhost -p 5432 登录hiveuser账号,查看

2.1.5 安装hadoop

  • brew install hadoop
  • export HADOOP_HOME=/opt/homebrew/opt/hadoop/libexec >> ~/.zprofile
  • export PATH= H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:PATH >> ~/.zprofile
  • 把下面环境变量写到 ~/.zprofile 文件里
export HADOOP_COMMON_HOME=/usr/local/opt/hadoop/libexec 或者 /opt/homebrew/opt/hadoop/libexec 看实际安装路径
export HADOOP_HOME=$HADOOP_COMMON_HOME
export HADOOP_HDFS_HOME=$HADOOP_COMMON_HOME
export HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME
export HADOOP_YARN_HOME=$HADOOP_COMMON_HOME
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# 指定用当前用户启动hdfs 就不用单独创建hdfs了
export HADOOP_NAMENODE_USER={mac登录用户的名字}
export HADOOP_DATANODE_USER={mac登录用户的名字}
  • source ~/.zprofile
  • hadoop version 查看安装情况
  • start-dfs.sh 启动hadoop组件
  • start-yarn.sh
  • jps 查看是否启动成功,应该有ResourceManager
  • HDFS Web 界面:http://localhost:9870
  • YARN Web 界面:http://localhost:8088
  • cd $HADOOP_HOME/etc/hadoop 进入到配置页面
  • vim core-site.xml 我是这样配置的
 <configuration>
<property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>
  • vim hdfs-site.xml
<configuration><property><name>dfs.namenode.name.dir</name><value>/Users/?自己的用户名?/hdfs/hadoop/tmp/dfs/name</value>
</property>
<property><name>dfs.datanode.data.dir</name><value>/Users/?自己的用户名?/hdfs/hadoop/tmp/dfs/data</value>
</property>
<property><name>dfs.namenode.http-address</name><value>localhost:9101</value>
</property>
<property><name>dfs.datanode.http.address</name><value>localhost:9102</value>
</property></configuration>
  • hdfs namenode 终端启动
  • hdfs datanode

2.1.6 安装hive

  • brew install apache-hive
  • export HIVE_HOME=/opt/homebrew/opt/apache-hive/libexec >> ~/.zprofile
  • export PATH= H I V E H O M E / b i n : HIVE_HOME/bin: HIVEHOME/bin:PATH >> ~/.zprofile
  • source ~/.zprofile
  • 下载postgres驱动 https://jdbc.postgresql.org/download/ 。我使用的是42.7.4-java8 版本。 拷贝到$HIVE_HOME/lib目录
  • 修改 $HIVE_HOME/conf/hive-site.xml 配置 使用postgres。 拷贝出来到文本编辑器里改方便。根据name来改
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:postgresql://localhost:5432/hive</value><description>JDBC connect string for a JDBC metastore.To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>org.postgresql.Driver</value><description>Driver class name for a JDBC metastore</description></property>
<property><name>javax.jdo.option.ConnectionUserName</name><value>hiveuser</value><description>Username to use against metastore database</description></property>
<property><name>javax.jdo.option.ConnectionPassword</name><value>hivepassword</value><description>The password for the database user.</description>
</property>
<property><name>hive.metastore.uris</name><value>thrift://localhost:9083</value><description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description></property>
  • schematool -dbType postgres -initSchema 初始化数据库
  • hive --service metastore 启动metastore服务
  • hive --version 查看安装成功
  • hive 启动, 如果hadoop的 namenode、datanode没启动会报错。
  • show databases; --如果正常就可以一顿操作了
  • PS: hive的xml配置可能有问题,需要手动删掉特殊字符,3215行

2.1.7 安装spark

  • brew install apache-spark
  • export SPARK_HOME=/opt/homebrew/opt/apache-spark/libexec >> ~/.zprofile
  • export PATH= S P A R K H O M E / b i n : SPARK_HOME/bin: SPARKHOME/bin:PATH >> ~/.zprofile
  • source ~/.zprofile
  • cp $HIVE_HOME/conf/hive-site.xml $SPARK_HOME/conf/ 把hive配置复制到spark
  • /usr/local/opt/apache-spark/libexec/sbin/stop-all.sh 停止spark
  • /usr/local/opt/apache-spark/libexec/sbin/start-all.sh 启动spark
  • spark-shell --version 验证安装
  • spark.sql(“SHOW TABLES”).show() 执行看看是否能查到hive表

2.1.8 启动服务查看

  • 终端输入jps 查看启动的服务有哪些
  • 也可通过网页查看spark、 hadoop的情况
  • 在这里插入图片描述

2.2 python环境安装

这个相对简单也独立

2.2.1 miniforge3

  • https://github.com/conda-forge/miniforge 可以自己下载安装,指定目录 我使用的是 ~/miniforge 好找
  • brew install miniforge 这个命令直接安装,之后复制/usr/local/miniforge3 到自己想要的目录。
  • echo ‘export PATH=“/usr/local/miniforge3/bin:$PATH”’ >> ~/.zprofile 这个命令把miniforge,如果修改了目录自己改下路径
  • source ~/.zprofile 更新环境变量
  • conda --version 查看是否安装成功
  • conda init zsh 初始化conda环境, 这个命令会把初始化代码放到~/.bashrc 或者 ~/.zshrc 里,复制出来到 ~/.zprofile
  • conda create -n data_dev python=3.8 创建一个3.8的环境 环境名字data_dev可以自己改
  • conda activate data_dev 激活环境,在这个环境里安装python组件

2.2.2 airflow 安装

  • conda install apache-airflow==1.10.12 安装指定版本airflow
  • airflow initdb db初始化,1.10x版本
  • airflow scheduler 启动调度
  • airflow webserver --port 8081 启动页面
  • http://localhost:8081 访问页面
  • 安装目录在: xxx /miniforge3/envs/data_dev/lib/python3.8/site-packages/airflow, data_dev跟conda创建的环境名一样
  • 写完的脚本放到${AIRFLOW_HOME}/dags/下。这里我配置的AIRFLOW_HOME=上一步的安装路径
  • ps 使用3.8 可以用conda 安装1.10.12的airflow,可能遇到itsdangerous版本问题,降级 conda install itsdangerous=1.1.0即可
  • ps airflow默认使用sqlite3的数据存储方式,似乎不需要安装这个数据库。

2.2.3 python环境

  • 指定xxx /miniforge3/envs/data_dev/ 目录下的python环境作为pycharm的python解释器
  • 再安装一个pyspark 就行
  • 可以直接运行python代码了

3 附录

3.1 启动服务指令

# 可以开启多个终端执行任务
#启动ssh hadoop依赖
# sudo launchctl stop com.openssh.sshd
# sudo launchctl start com.openssh.sshd
# 关闭ssh服务
sudo systemsetup -setremotelogin off 
# 开启ssh服务
sudo systemsetup -setremotelogin on#停止postgres
brew services stop postgresql 
#启用
brew services start postgresql # hadoop 集群服务
/usr/local/opt/hadoop/libexec/sbin/stop-dfs.sh 
/usr/local/opt/hadoop/libexec/sbin/stop-yarn.sh
/usr/local/opt/hadoop/libexec/sbin/start-dfs.sh 
/usr/local/opt/hadoop/libexec/sbin/start-yarn.sh#启动hdfs
hdfs namenode 
hdfs datanode  
#启动hive元数据管理
hive --service metastore 
# 启动spark
/usr/local/opt/apache-spark/libexec/sbin/stop-all.sh
/usr/local/opt/apache-spark/libexec/sbin/start-all.sh#启动airflow在 conda环境执行 data_dev
conda activate data_dev
pkill -f airflow
airflow scheduler 
airflow web --port 8081 #jps查看服务 运行的hadoop、hive
jps
#查看postgres服务
brew services list

3.2 环境变量配置

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
export HIVE_HOME=/Users/{mac登录用户的名字}/apache-hive-3.1.2-bin
export PATH=$HIVE_HOME/bin:$PATH
export JAVA_OPTS="-Djava.io.tmpdir=/Users/{mac登录用户的名字}/logs -Duser.name={mac登录用户的名字}"
export SPARK_HOME=/usr/local/opt/apache-spark/libexec
export PATH=$PATH:$SPARK_HOME/bin
export HADOOP_COMMON_HOME=/usr/local/opt/hadoop/libexec
export HADOOP_HOME=$HADOOP_COMMON_HOME
export HADOOP_HDFS_HOME=$HADOOP_COMMON_HOME
export HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME
export HADOOP_YARN_HOME=$HADOOP_COMMON_HOME
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# 指定用当前用户启动hdfs 就不用单独创建hdfs了
export HADOOP_NAMENODE_USER={mac登录用户的名字}
export HADOOP_DATANODE_USER={mac登录用户的名字}
#export SPARK_SUBMIT_OPTS="-Djava.security.manager=allow" # >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/{mac登录用户的名字}/miniforge3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/Users/{mac登录用户的名字}/miniforge3/etc/profile.d/conda.sh" ]; then. "/Users/yuwang.lin/miniforge3/etc/profile.d/conda.sh"elseexport PATH="/Users/{mac登录用户的名字}/miniforge3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<
#这个home因为会放cfg文件,所以不能配置为airflow所在目录
export AIRFLOW_DIR="/Users/{mac登录用户的名字}/miniforge3/envs/data_dev/lib/python3.8/site-packages/airflow"
export AIRFLOW_HOME="/Users/{mac登录用户的名字}/airflow"
export POSTGRESQL_HOME="/usr/local/var/postgresql@14"
export PATH=$POSTGRESQL_HOME/bin:$PATH
export PGDATA='/usr/local/pgsql/data'
~                                                                                                                                         
~                                             

4 参考文献

  • hdfs
  • ssh 启动
http://www.hrbkazy.com/news/25314.html

相关文章:

  • 网站策划设计招聘怎么去做推广
  • 河南为什么疫情突然严重了seo整站优化外包
  • 肥城网站建设推广百度平台商家客服
  • 二手交易网站建设的功能定位windows优化大师的特点
  • 互联网网站模板广告推广营销网站
  • 毕业设计做 什么网站好新冠疫情最新情况
  • 学做淘宝客网站百度搜索关键词推广
  • 常州制作网站信息百度账户托管
  • 做国际网站装修怎么打广告吸引客户
  • 12306网站做的好垃圾互动营销成功案例
  • 做网站建设销售工资百度云网页版入口
  • 视频网站开发项目微博关键词排名优化
  • 跨境电子商务网站建设免费域名服务器
  • 如何建立一个网站详细步骤seo关键词优化
  • 小学生信息科学做网站百度推广开户费
  • 做美女网站会百度人工智能
  • 上海网站开发有限公司属于网络营销特点的是
  • 做网站vpn多大内存郑州网络推广方案
  • 网站建设大德通众包南宁百度seo建议
  • 找晚上做的工作去哪个网站高端网站设计公司
  • 求职网站网页设计网站推广途径和推广要点有哪些?
  • 模板网的图片侵权关键词优化策略
  • 怎么做自助购物网站怎么宣传自己的店铺
  • 即墨网站优化免费seo推广公司
  • 网站平台内容建设提纲网络建站平台
  • h5个网站的区别百度关键词排名查询工具
  • 做试试彩网站人员广州seo招聘网
  • 红动中国设计网站官网现在有哪些网址
  • 网站建设动画教程郑州关键词排名公司电话
  • 网站制作 代码编辑企业百度推广怎么收费