ZEPPELIN部署接入华为云MRS
- 安装zeppelin
- 配置Spark连接
- 常见问题
- 连接pg报错 Py4JJavaError: An error occurred while calling o779.load. : org.postgresql.util.PSQLException: The authentication type 5 is not supported. Check that you have configured the pg_hba.conf file to include the client's IP address or subnet, and that it is using an authentication scheme supported by the driver.
- Zeppelin 无法正常运行本地Python环境
安装zeppelin
在网址https://zeppelin.apache.org/download.html下载安装包,
解压后,设置安装新的安装目录/opt/zeppelin
tar -zxvf zeppelin-0.10.1-bin-all.tgz
mv zeppelin-0.10.1-bin-all /opt/zeppelin
配置zeppelin环境变量,在profile文件中加入环境变量
vi /etc/profile
export ZEPPELIN_HOME=/opt/zeppelin
export PATH=$ZEPPELIN_HOME/bin:$PATH
source /etc/profile
编辑zeppelin-env.sh文件,加入JAVA_HOME,位置/opt/zeppelin/conf
cd /opt/zeppelin/conf/
cp zeppelin-env.sh.template zeppelin-env.sh
source /opt/client/bigdata_env
echo $JAVA_HOME
echo "export JAVA_HOME=/opt/client/JDK/jdk1.8.0_302">>zeppelin-env.sh
编辑zeppelin-site.xml文件,修改以下配置
cd /opt/zeppelin/conf
cp zeppelin-site.xml.template zeppelin-site.xml
vi zeppelin-site.xml
<property>
<name>zeppelin.server.addr</name>
<value>192.168.22.157</value>
<description>Server binding address</description>
</property>
<property>
<name>zeppelin.server.port</name>
<value>8081</value>
<description>Server port.</description>
</property>
<property>
<name>zeppelin.ssl</name>
<value>true</value>
<description>Should SSL be used by the servers?</description>
</property>
在conf目录下生成keystore文件
keytool -keystore keystore -alias zeppelin -genkey -keyalg RSA -sigalg SHA256withRSA -validity 365
编辑shiro.ini文件,位置/opt/zeppelin/conf/shiro.ini,增加用户developuser
cp shiro.ini.template shiro.ini
vi shiro.ini
[users]下增加用户developuser,密码Huawei@123,权限admin
developuser = Huawei@123, admin
运行zeppelin(并检查启动参数)
zeppelin-daemon.sh start
ps -elf | grep zeppelin
关闭防火墙,允许端口8443(此为测试环境,生产环境建议采取更安全措施) systtemctl stop firewalld
在浏览器中输入地址https://zeppelin_ip:8443,用developuser登陆。zeppelin_ip为安装zeppelin的HD客户端IP
配置Spark连接
对接Spark前,确认客户端工具spark-beeline能连接Spark
source /opt/client/bigdata_env
kinit -kt admin
spark-beeline
将/opt/client/Spark2x/spark/jars路径下所有的jar包拷贝至/opt/zeppelin/interpreter/spark
cp /opt/client/Spark2x/spark/jars/*.jar /opt/zeppelin/interpreter/spark/
编辑zeppelin-env.sh文件,位置/opt/zeppelin/conf,加入以下内容
export JAVA_HOME=/opt/client/JDK/jdk-8u201
export MASTER=yarn-client
export SPARK_HOME=/opt/client/Spark2x/spark
export HADOOP_CONF_DIR=/opt/client/HDFS/hadoop/etc/hadoop
关闭防火墙(提交spark任务时,能方便访问Spark Driver所在节点的端口)
systemctl stop firewalld
登陆Zeppelin,选择右上角菜单中的 Interpreter
选择Spark,点击 edit 编辑,将 master 参数改为 yarn-client,并且检查zeppelin.spark.useHiveContext项,使其值为false,点击 save 保存
使用yarn-client模式,还需要将客户端的主机名与IP的映射关系添加到Yarn ResourceManager节点(本文即HD的3台主机节点)的hosts文件中。(另一种方式是在ZEPPELIN_INTP_JAVA_OPTS中添加-Dspark.driver.host=172.168.X.X)
echo "172.168.X.X 172-168-X-X">>/etc/hosts
- 重启zeppelin。
source /opt/client/bigdata_env
kinit –kt developuser
zeppelin-daemon.sh restart
常见问题
连接pg报错 Py4JJavaError: An error occurred while calling o779.load. : org.postgresql.util.PSQLException: The authentication type 5 is not supported. Check that you have configured the pg_hba.conf file to include the client’s IP address or subnet, and that it is using an authentication scheme supported by the driver.
1、移除Spark中的“gsjdbc4-VXXXRXXXCXXSPCXXX.jar”,由于Spark运行不依赖该jar包,因此将该jar包移动到其他目录(例如,移动到“/tmp”目录,不建议直接删除)不会影响Spark正常运行。
- 登录Spark服务端主机,移除“${BIGDATA_HOME}/FusionInsight_Spark2x_8.1.0.1/install/FusionInsight-Spark2x-*/spark/jars”路径下的“gsjdbc4-VXXXRXXXCXXSPCXXX.jar”。
- 登录Spark客户端主机,移除“/opt/client/Spark2x/spark/jars”路径下的“gsjdbc4-VXXXRXXXCXXSPCXXX.jar”。
2、更新存储在HDFS中的“/user/spark2x/jars/8.1.0.1/spark-archive-2x.zip”压缩包。
说明:
此处版本号8.1.0.1为示例,具体以实际环境的版本号为准。
- 使用客户端安装用户登录客户端所在节点。执行命令切换到客户端安装目录,例如“/opt/client”。
- 执行以下命令配置环境变量。
source bigdata_env
- 如果集群为安全模式,执行以下命令获得认证。
kinit 组件业务用户
- 新建临时文件./tmp,并从HDFS获取“spark-archive-2x.zip”并解压到tmp目录,命令如下:
mkdir tmp
hdfs dfs -get /user/spark2x/jars/8.1.0.1/spark-archive-2x.zip ./
unzip spark-archive-2x.zip -d ./tmp
- 切换到tmp目录,删除“gsjdbc4-VXXXRXXXCXXSPCXXX.jar”文件,并将MPPDB Driver文件“gsjdbc4.jar”上传到tmp目录中,然后执行以下命令重新打包。
zip -r spark-archive-2x.zip *.jar
- 删除HDFS上的“spark-archive-2x.zip”,将步骤3.e中新生成的压缩包“spark-archive-2x.zip”更新至HDFS的“/user/spark2x/jars/8.1.0.1/”路径下。
hdfs dfs -rm /user/spark2x/jars/8.1.0.1/spark-archive-2x.zip
hdfs dfs -put ./spark-archive-2x.zip /user/spark2x/jars/8.1.0.1
Zeppelin 无法正常运行本地Python环境
在华为云客户端的目录下找到spark-defaults.conf加入指向运行主机IP的配置
vim /opt/client/Spark2x/spark/conf/spark-defaults.conf
spark.driver.host = 192.168.x.x #客户端IP