./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Dhadoop.version=3.4.0 -Pkubernetes
spark3.5.3 源码版本
./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes clean -DskipTests
./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes
./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes
wget https://cloud.r-project.org/src/base/R-4/R-4.4.1.tar.gz
sudo yum install gcc gcc-c++ make libcurl-devel libxml2-devel sqlite-devel -y
sudo yum install readline-devel libpng-devel libjpeg-devel libtiff-devel -y
说明:
在使用 ./configure 配置 R 的编译选项时,你可以根据需求添加多个参数。以下是一些常用的配置参数及其说明,适用于你提到的命令:
- 常用配置参数
--prefix=/usr/local/R
指定 R 安装的基础目录。在这个路径下将会创建 bin、lib 等子目录。
--enable-R-shlib=yes
启用共享库,这对于某些 R 包(特别是需要与其他语言接口的包)是必要的。
--with-tcltk
启用对 Tcl/Tk 的支持。这是为了能够使用 R 图形用户界面功能(如 tcltk 包)。
- 其他可用的配置选项
--with-blas
指定 BLAS (Basic Linear Algebra Subprograms) 的路径,以优化矩阵运算性能。例如:--with-blas=/usr/lib64/libblas.so。
--with-lapack
指定 LAPACK (Linear Algebra Package) 的路径,用于高级线性代数运算。例如:--with-lapack=/usr/lib64/liblapack.so。
--with-readline
启用 Readline 支持,允许在 R 命令行中使用更丰富的编辑功能。
--with-x
启用 X11 图形支持,允许使用 X11 窗口系统进行图形显示。
--with-jpeglib
启用 JPEG 图像支持。
--with-png
启用 PNG 图像支持。
--with-tiff
启用 TIFF 图像支持。
--with-dbi
启用 DBI 数据库接口。
--enable-memory-profiling
启用内存分析功能。
- 示例命令
./configure --enable-R-shlib=yes \
--with-tcltk \
--prefix=/usr/local/R \
--with-blas=/usr/lib64/libblas.so \
--with-lapack=/usr/lib64/liblapack.so \
--with-readline \
--with-x \
--with-jpeglib \
--with-png \
--with-tiff \
--with-dbi \
--enable-memory-profiling
问题1:configure: error: No Fortran compiler found
解决办法:sudo yum install gcc-gfortran -y
问题2:configure: error: BLAS was specified but not available
- 安装 BLAS 库
对于 CentOS 系统,可以通过以下命令安装 OpenBLAS 或 ATLAS:
安装 OpenBLAS
yum update -y
sudo yum install openblas-devel -y
或者安装 ATLAS
sudo yum install atlas-devel -y
- 指定 BLAS 路径
如果你安装了 BLAS,但仍然遇到问题,可能需要在配置时明确指定 BLAS 的路径。例如,如果安装了 OpenBLAS,你可以使用如下命令:
./configure --enable-R-shlib=yes \
--with-tcltk \
--prefix=/usr/local/R \
--with-blas=/usr/lib64/libblas.so \
--with-lapack=/usr/lib64/liblapack.so \
--with-readline \
--with-x \
--with-jpeglib \
--with-png \
--with-tiff \
--with-dbi \
--enable-memory-profiling -with-blas=/usr/lib64/libopenblas.so --with-lapack=/usr/lib64/liblapack.so
- 重新运行配置命令
安装完相应的 BLAS 库后,再次尝试运行 R 的配置命令
上面如果出现No package openblas-devel available
需要执行
sudo yum install epel-release -y
sudo yum install openblas-devel -y
再次执行./configure编译指令
问题3:configure: error: --with-x=yes (default) and X11 headers/libs are not available
sudo yum install libX11-devel libXt-devel -y
sudo yum install libXmu-devel libXrender-devel libXext-devel -y
问题4:checking whether bzip2 support suffices... configure: error: bzip2 library and headers are required
sudo yum install bzip2-devel -y
问题5:configure: error: PCRE2 library and headers are required, or use --with-pcre1 and PCRE >= 8.32 with UTF-8 support
sudo yum install pcre2-devel -y
安装make && make install
export MANAGE_LOCAL_HBASE=true
export MANAGE_LOCAL_SOLR=true
export ZK_HOME=/home/zookeeper
export HADOOP_HOME=/home/hadoop-3.4.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export ATLAS_HOME=/home/apache-atlas-2.3.0
export MYSQL_HOME=/home/mysql
export JAVA_HOME=/usr/java/jdk-17
export M2_HOME=/home/maven
export CLASSPATH=.:JAVA_HOME/lib:JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export SPARK_HOME=/home/spark-3.3.3-bin-hadoop3
#export KAFKA_HOME=/home/kafka
#export HBASE_HOME=/home/hbase-2.5.5-hadoop3
#export SOLR_HOME=/home/solr/server/solr
export SPARK_CONF_DIR=$SPARK_HOME/conf
export HIVE_HOME=/home/apache-hive-3.1.3-bin
export FLINK_HOME=/home/flink
export KYUUBI_HOME=/home/kyuubi-1.8.0
export R_HOME=/usr/local/R
export PATH=PATH:R_HOME/bin:R_HOME/lib64/R/bin:JAVA_HOME/bin:JAVA_HOME/jre/bin:M2_HOME/bin:ATLAS_HOME/bin:MYSQL_HOME/bin:SPARK_HOME/sbin:SPARK_HOME/bin:HIVE_HOME/bin:HADOOP_HOME/bin:HADOOP_HOME/sbin:FLINK_HOME/bin:KYUUBI_HOME/bin:ZK_HOME/bin
Downloading https://nodejs.org/dist/v12.22.1/node-v12.22.1-linux-x64.tar.gz to /home/maven/local/repo/com/github/eirslett/node/12.22.1/node-12.22.1-linux-x64.tar.gz
源码编译的生成目录
/home/hadoop-3.4.0/hadoop-dist/target
安装python3
wget https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tgz
yum -y install libffi-devel zlib zlib-dev zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel mysql-devel readline-devel tk-devel libffi libffi-devel gcc gcc-c++ make
make clean
./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/local/openssl --with-ensurepip=install --enable-shared --with-system-libmpdec --with-lto --enable-ipv6
make -j $(nproc) # 使用并行编译,便于加快速度
sudo make altinstall # 使用 altinstall 避免覆盖系统自带的 python
sudo ln -s /usr/local/python3/bin/python3.12 /usr/bin/python3
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
openssl version
遇到问题:./Modules/_decimal/_decimal.c:36:23: fatal error: mpdecimal.h: No such file or directory
#include "mpdecimal.h"
解决方法:
wget https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz
tar -xzf mpdecimal-2.5.1.tar.gz
cd mpdecimal-2.5.1
编译和安装
./configure
make
sudo make install
sudo yum groupinstall "Development Tools"
sudo yum install openssl-devel bzip2-devel readline-devel \
sqlite-devel libffi-devel xz-devel
make clean
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make -j $(nproc)
sudo make altinstall
install.packages("knitr")
install.packages("sass")
install.packages("rmarkdown")
install.packages("pandoc")
library(knitr)
library(rmarkdown)
library(pandoc)
install.packages("Cairo")
yum install -y gcc
yum install -y glibc-headers
yum install -y libreadline6-dev gfortran
yum install -y readline-devel
yum install -y wget libXt-devel
yum install -y fonts-chinese tcl tcl-devel tclx tk tk-devel
yum install -y mesa-libGLU mesa-libGLU-devel
yum install -y install bzip2-devel
yum install -y install xz-devel.x86_64
yum install -y install pcre-devel
yum install -y install libcurl
yum install -y install libcurl-devel
yum install -y texinfo.x86_64
yum install -y texlive-pdftex-doc.noarch
yum install -y texlive
sudo yum install cairo cairo-devel -y
update.packages(ask = FALSE)
install.packages("dplyr", dependencies = TRUE)
install.packages("tidyr", dependencies = TRUE)
install.packages("data.table", dependencies = TRUE)
install.packages("ggplot2", dependencies = TRUE)
install.packages("plotly", dependencies = TRUE)
install.packages("lmtest", dependencies = TRUE)
install.packages("caret", dependencies = TRUE)
install.packages("lubridate", dependencies = TRUE)
install.packages("forecast", dependencies = TRUE)
install.packages("httr", dependencies = TRUE)
install.packages("jsonlite", dependencies = TRUE)
install.packages("readr", dependencies = TRUE)
install.packages("openxlsx", dependencies = TRUE)
install.packages("stringr", dependencies = TRUE)
install.packages("magrittr", dependencies = TRUE)
install.packages(c("dplyr", "ggplot2", "tidyr", "caret"))
install.packages("Cairo", dependencies = TRUE)
install.packages("pandoc", dependencies = TRUE)
wget https://www.cairographics.org/releases/cairo-1.16.0.tar.xz
解压源码
tar -xvf cairo-1.16.0.tar.xz
cd cairo-1.16.0/
配置构建系统
./configure
编译
make
安装
sudo make install
sudo yum groupinstall "X Window System"
sudo yum install xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps
在 R 中使用 library(Cairo) 时,如果遇到问题,通常可以通过以下步骤进行排查和解决:
- 确认 Cairo 包是否已安装
首先,确保 Cairo 包已经成功安装。可以使用以下命令检查:
R
installed.packages()
如果没有找到 Cairo,请重新安装它:
R
install.packages("Cairo", dependencies = TRUE)
- 检查错误信息
运行 library(Cairo) 后,如果出现错误信息,请仔细查看这些错误提示。这些信息将有助于诊断问题的具体原因。
- 安装依赖项
确保所有必要的依赖项都已安装,特别是图形相关的库。可以通过以下命令安装可能缺失的库:
bash
sudo yum install cairo cairo-devel libjpeg-turbo-devel libpng-devel pango pango-devel libicu libicu-devel
- 检查 R 的版本
确保你的 R 版本是最新的,某些包可能与较旧的 R 版本不兼容。可以使用以下命令更新 R:
bash
sudo yum update R
- 更新其他 R 包
确保你的其他 R 包都是最新的,这有助于避免版本冲突:
R
update.packages()
- 验证 pkg-config
确保 pkg-config 正常工作,并能够找到 Cairo。你可以运行以下命令:
bash
pkg-config --cflags --libs cairo
如果有错误,请确保 Cairo 库正确安装,并且 PKG_CONFIG_PATH 环境变量设置正确。
- 重启 R 会话
在完成上述步骤后,重启 R 会话,然后再次尝试加载 Cairo 包:
R
library(Cairo)
- 从源代码安装(可选)
如果问题仍然存在,可以考虑从源代码编译 Cairo 和其他依赖。具体步骤参考之前的信息。
如果您仍然遇到问题,请提供具体的错误消息,以便进一步帮助您!
2024/9/28 23:38:53
library(Cairo)
没有任何输出是对的吗
2024/9/28 23:38:58
在 R 中,运行 library(Cairo) 如果没有任何输出,通常表示成功加载了该包。这是正常的行为,R 在加载包时并不一定会提供反馈,除非遇到错误。
检查包是否成功加载
你可以通过以下命令确认 Cairo 是否已成功加载:
R
search()
在返回的列表中,如果看到 package:Cairo,则说明包已经成功加载。
进行简单测试
为了确保 Cairo 正常工作,可以运行一个简单的绘图示例:
R
Cairo::CairoPNG("test.png")
plot(1:10, 1:10, main = "Test Plot")
dev.off()
这段代码将创建一个名为 test.png 的文件,其中包含一个简单的散点图。如果文件生成且图像正常,则说明 Cairo 包工作正常。
如果您有其他问题或需要进一步的帮助,请告诉我!
2024/9/28 23:39:50
> Cairo::CairoPNG("test.png")
> plot(1:10, 1:10, main = "Test Plot")
> dev.off()
null device
2024/9/28 23:39:53
在 R 中,dev.off() 返回 null device 是正常的,这表示图形设备已经成功关闭。整个过程看起来是正常的。
检查输出文件
请检查当前工作目录中是否生成了 test.png 文件。你可以使用以下命令确认当前工作目录:
R
getwd()
然后在该目录下查找 test.png 文件。如果文件存在且图像显示正常,则说明 Cairo 包正常工作。
如果没有找到文件
如果没有找到 test.png 文件,请确保你具有写入当前工作目录的权限,或者尝试指定一个完整的路径来保存文件,比如:
R
Cairo::CairoPNG("/path/to/your/directory/test.png")
请将 /path/to/your/directory/ 替换为你希望保存文件的实际路径。
错误信息 svg: Cairo-based devices are not available for this platform 通常表示在当前平台上无法使用基于 Cairo 的 SVG 设备。这可能与系统环境或 Cairo 库的安装有关。以下是一些解决步骤:
- 确认 Cairo 包是否正确安装
确保 Cairo 包及其依赖项已正确安装。可以通过以下命令重新安装:
R
install.packages("Cairo", dependencies = TRUE)
- 检查系统依赖项
确保你的系统中安装了正确的 Cairo 库及其开发文件。具体步骤因操作系统而异。
对于 Ubuntu/Debian 系统:
bash
sudo apt-get install libcairo2-dev libxt-dev
对于 Fedora/RHEL 系统:
bash
sudo yum install cairo-devel libX11-devel
- 确保 R 和包的版本兼容
确保你使用的 R 版本与 Cairo 包兼容。如果有较旧版本,考虑更新 R 和所有相关包:
R
update.packages()
- 使用其他图形设备
如果继续遇到问题,可以尝试使用其他图形设备,例如 PNG 或 PDF:
R
使用 PNG 设备
Cairo::CairoPNG("test.png")
plot(1:10, 1:10, main = "Test Plot")
dev.off()
使用 PDF 设备
Cairo::CairoPDF("test.pdf")
plot(1:10, 1:10, main = "Test Plot")
dev.off()
- 从源代码安装
如果问题仍然存在,可以尝试从源代码安装 Cairo 和其依赖库。根据你的操作系统,具体步骤会有所不同。
- 重新启动 R 会话
完成上述步骤后,建议重启 R 会话,然后再次尝试加载 Cairo 包并生成图形。
错误信息 unable to open connection to X11 display '' 通常发生在尝试在没有 X11 图形环境的系统上运行图形设备时。以下是一些可能的解决方法:
- 使用无头模式
如果你在一个没有图形用户界面的环境(例如服务器)上运行 R,可以使用无头模式来生成图形。例如,使用 PNG 或 PDF 设备,而不是依赖 X11:
R
使用 PNG 设备
png("output.png")
plot(1:10, main = "Test Plot")
dev.off()
或者使用 PDF 设备
pdf("output.pdf")
plot(1:10, main = "Test Plot")
dev.off()
- 设置 DISPLAY 环境变量
如果你确实需要在带有图形界面的环境中运行 R,但仍然遇到此错误,可以尝试设置 DISPLAY 环境变量。通常在终端中执行以下命令:
bash
export DISPLAY=:0
然后重新启动 R 会话。
- 检查 X11 是否安装和正在运行
确保你的系统上安装了 X11,并且 X 服务器正在运行。可以通过以下命令确认:
bash
sudo apt-get install xorg
然后启动 X 服务器。
- 使用 RStudio
如果你使用的是 RStudio,它会管理图形设备。因此,直接在 RStudio 中运行你的代码,通常不会遇到此类问题。
- 使用 VNC 或 SSH 转发
如果你希望使用图形界面,且在远程服务器上工作,可以通过 VNC 连接或使用 SSH 转发来实现:
SSH 转发:
bash
ssh -X user@hostname
这样就可以在 SSH 会话中打开 X11 应用程序。
- 检查权限
确保当前用户对 X11 服务器有访问权限,可以使用以下命令允许所有用户连接:
bash
xhost +
- 使用 Docker 容器
如果你在 Docker 容器中工作,确保容器能够访问主机的 X11 服务器,这可能涉及到运行容器时添加一些参数。
在 CentOS 7 上遇到 unable to open connection to X11 display '' 错误,通常是因为没有 X11 图形环境或配置不当。下面是一些解决步骤:
- 使用无头模式
如果你只需要生成图形文件(如 PNG 或 PDF),可以使用无头模式,不依赖于 X11:
R
使用 PNG 设备
png("output.png")
plot(1:10, main = "Test Plot")
dev.off()
或者使用 PDF 设备
pdf("output.pdf")
plot(1:10, main = "Test Plot")
dev.off()
- 确保 X11 已安装
如果需要在图形界面下运行 R,请确保已经安装了 X11 和相关库:
bash
sudo yum groupinstall "X Window System"
sudo yum install xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps
- 设置 DISPLAY 环境变量
在终端中运行以下命令设置 DISPLAY 环境变量:
bash
export DISPLAY=:0
- 检查 X11 服务器运行状态
确保你的 X11 服务器正在运行。可以使用以下命令查看:
bash
ps -e | grep X
如果没有看到相关进程,你可能需要启动 X11:
bash
startx
- 使用 SSH 转发(如果是远程连接)
如果你通过 SSH 连接到 CentOS 服务器,可以使用 X11 转发:
bash
ssh -X user@your_server_ip
确保在 SSH 配置文件(通常位于 /etc/ssh/sshd_config)中启用 X11Forwarding:
bash
X11Forwarding yes
然后重启 SSH 服务:
bash
sudo systemctl restart sshd
- 检查权限
如果你仍然遇到问题,请确保你对 X11 服务器有访问权限。在终端中运行:
bash
xhost +
这将允许所有用户连接到 X11 服务器。
- 使用 VNC
如果你需要一个图形界面,可以考虑安装和使用 VNC 服务器。这样即使在没有直接访问 X11 的情况下,也能通过 VNC 客户端进行远程图形操作。
- 使用 Docker(如果适用)
如果你在 Docker 容器中工作,确保容器能够访问主机的 X11 服务器,这可能涉及到在运行容器时添加一些参数。
总结
如果以上方法都不能解决问题,请提供更多上下文信息,例如你是如何运行 R 的,以及你的环境配置,以便进一步帮助你排查问题。
yum install -y libxkbcommon-x11
rstudio-2024.09.0-375-x86_64.rpm
设置R_HOME的环境变量
export MANAGE_LOCAL_HBASE=true
export MANAGE_LOCAL_SOLR=true
export ZK_HOME=/home/zookeeper
export HADOOP_HOME=/home/hadoop-3.4.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export ATLAS_HOME=/home/apache-atlas-2.3.0
export MYSQL_HOME=/home/mysql
export JAVA_HOME=/usr/java/jdk-17
export M2_HOME=/home/maven
export CLASSPATH=.:JAVA_HOME/lib:JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export SPARK_HOME=/home/spark-3.3.3-bin-hadoop3
#export KAFKA_HOME=/home/kafka
#export HBASE_HOME=/home/hbase-2.5.5-hadoop3
#export SOLR_HOME=/home/solr/server/solr
export SPARK_CONF_DIR=$SPARK_HOME/conf
export HIVE_HOME=/home/apache-hive-3.1.3-bin
export FLINK_HOME=/home/flink
export KYUUBI_HOME=/home/kyuubi-1.8.0
export R_HOME=/usr/local/R
export PATH=PATH:R_HOME/bin:R_HOME/lib64/R/bin:JAVA_HOME/bin:JAVA_HOME/jre/bin:M2_HOME/bin:ATLAS_HOME/bin:MYSQL_HOME/bin:SPARK_HOME/sbin:SPARK_HOME/bin:HIVE_HOME/bin:HADOOP_HOME/bin:HADOOP_HOME/sbin:FLINK_HOME/bin:KYUUBI_HOME/bin:ZK_HOME/bin
source /etc/profile