*0.前言*

CDH搭建方式是使用Cloudera Manager进行一键式搭建hadoop集群,Cloudera Manager里面集成了hadoop组件的管理功能,并且提供了hadoop组件的静态资源parcel,可以实现一键安装、配置,统一管理。非常节省时间。
不推荐初学者学习CDH方式搭建,初学者建议以apache传统方式搭建,方便学习hadoop组件的工作原理。

*1.前置操作*

准备了四台虚拟机。root密码自己设置,我图方便都用root了

*修改hosts文件*

在四台节点上修改hosts文件,并且最好更改自己的hostname。

映射命名如下。

vim /etc/hosts
10.3.69.80 cdh00

10.3.69.81 cdh01

10.3.69.82 cdh02

10.3.69.83 cdh03
hostnamectl set-hostname cdh00

hostnamectl set-hostname cdh01

hostnamectl set-hostname cdh02

hostnamectl set-hostname cdh03

*配置清华的yum源*

清华yum官方配置教学

*其他应用安装*

ifconfig不能用?

yum install net-tools -y

vi没颜色不好看,弄个vim。

yum install vim -y

节点之间要保证时间同步。

yum install ntp -y

ntpdate ntp6.aliyun.com

节点之间要经常通信,输密码很烦,先生成一对密钥

ssh-keygen

三个回车,不需要内容直接回车就行。

然后把密钥发送给其他节点

ssh-copy-id cdh00

关闭selinux

修改配置文件(重启生效)

vim /etc/selinux/config

将SELINUX=enforcing 改为SELINUX=disabled

下载其他第三方依赖

yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb httpd mod_ssl

*2.安装mysql*

虚拟机里默认有了jdk1.8,接下来安装mysql,理论上来讲只需要server节点安装,所以只在cdh00节点中安装mysql即可,其余例如hive之类的组件都依赖于cdh00的MySQL。

rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpmyum repolist enabled | grep "mysql.*-community.*"
yum -y install mysql-community-server
systemctl enable mysqld
systemctl start mysqld

默认没有root密码,直接mysql -uroot登录登录进去以后修改mysql密码。

update mysql.user set password=PASSword('root') where user='root';

最后设置一下mysql的远程连接

mysqladmin -u root -proot登录后 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql

检查一下user表中是否有空项,根据表内容不同,给空值填入密码。

set password for root@localhost = password('root');

quit;

退出以后,重启mysql服务,登录。

systemctl restart mysqld
mysql -uroot -proot

在****cdh00****中创建CM所需要的数据库。

(1)集群监控数据库
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;  
(2)hive数据库 
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 
(3)oozie数据库
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
(4)hue数据库
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

最后别忘了给所有节点导入一下mysql的驱动jar,不管哪个版本都要统一名称。

/usr/share/java/mysql-connector-java.jar

*3.安装jdk*

java -version

先查看一下jdk的版本。

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_02

自带的openjdk没有jps,很难受,卸载掉安装自己的jdk。

yum -y remove java-1.8.0-open*

rz上传jdk1.8的安装包,安装包去oracle官网下载,或者直接wget也可。

tar -xzvf解压,mv jdk1.8.0_151 /usr/jdk1.8.0_151

因为需要所有用户都能访问,所以不能图省事放在/root里了。

vim /etc/profile

在最后一行添加:wq保存退出

export JAVA_HOME=/usr/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin

路径根据自己的jdk解压名配置,然后a重新载入环境变量。

source /etc/profile

测试一下配置。

java -version

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_03

CDH5默认的jdk路径是/usr/java/default,要么你把路径迁过去再修改环境变量,也可以做一个软连接。

mkdir -p /usr/java/default

ln -s /usr/jdk1.8.0_151/* /usr/java/default/

*4.CM安装5.14.0*

结果官网提供了个龟速链接,8kb/s速度2G的内容。注意下载的时候需要版本对应,el567分别对应centos5,centos6,centos7。版本不对必定安装失败。

*解压*

rz上传安装包至CDH00。tar -xzvf cloudera-manager-el6-cm5.14.0_x86_64.tar.gz解压。

把文件夹移动到/opt下,方便其他用户使用mv cm-5.14.0/ /opt/cloudera-manager/

*配置CMAgent*

vim /opt/cloudera-manager/etc/cloudera-scm-agent/config.ini

修改以下两条内容,将CM服务器设置为cdh00,端口号7182。

[General]server_host=cdh00server_port=7182

*配置CM数据库*

进入cd /usr/share/java目录下,rz导入mysql的驱动包,我这里使用的是5.1.40版本。

驱动包改名为

mv /usr/share/java/mysql-connector-java-5.1.40-bin.jar /usr/share/java/mysql-connector-java.jar

在mysql中创建CM库。

/opt/cloudera-manager/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-hostcdh00 scm scm scm

这里使用localhost是因为scm只有localhost的连接权限,使用cdh00需要重新配置权限比较麻烦。

分发安装包

scp -r /opt/cloudera-manager/ cdh01:/opt/

scp -r /opt/cloudera-manager/ cdh02:/opt/

scp -r /opt/cloudera-manager/ cdh03:/opt/

*所有节点创建用户*

useradd --system --home=/opt/cloudera-manager/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

*在Server节点下配置Parcel-repo 目录*

mkdir /opt/cloudera/

mkdir /opt/cloudera/parcel-repo

给创建的cloudera-scm用户权限

chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

*导入静态资源包*

cd /opt/cloudera/parcel-repo/

rz命令导入静态资源,懒得导入也可以

wget https://archive.cloudera.com/cdh5/parcels/5.14.0/CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel &后台慢慢下载。

*注意资源名称最后的el7是兼容的centos版本,我是centos7.6,所以需要el7版本的。*

manifest.json

CDH-5.12.1-1.cdh5.14.0.p0.24-el7.parcel

CDH-5.12.1-1.cdh5.14.0.p0.24-el7.parcel.sha1

并将改名为

mv CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha

在所有agent节点上创建文件夹并授予权限

mkdir -p /opt/cloudera/parcels

chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

*启动CM服务*

*直接启动*

在Server节点(cdh00)上

/opt/cloudera-manager/etc/init.d/cloudera-scm-server start

在工作节点上(所有节点)

/opt/cloudera-manager/etc/init.d/cloudera-scm-agent start

显示启动失败,查看一下日志文件

/opt/cloudera-manager/log/cloudera-scm-agent/

提示/usr/bin/env: python2.6: No such file or directory

Python -V查看一下python的版本,发现默认安装了2.7.5。

可以选择2.6和2.7两个版本共存,也可以直接卸载2.7.5(不推荐)

*出大问题*

若想卸载现有的版本

rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps

然后清除依赖

whereis python |xargs rm -frv

验证一下,如果无结果说明卸载干净

whereis python

在卸载前没有注意环境没有gcc编译,下载了python包以后不能编译,然后没有python又不能进行yum安装gcc,陷入了死循环。

解决方法:

卸载全部python和yum,下载rpm安装包重新安装。

mkdir /opt/site_package
mkdir /opt/site_package/python3
cd /opt/site_package/python3
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-libs-2.7.5-68.el7.x86_64.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-ipaddress-1.0.16-2.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-backports-1.0-8.el7.x86_64.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-2.7.5-68.el7.x86_64.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-pycurl-7.19.0-19.el7.x86_64.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-urlgrabber-3.10-8.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-setuptools-0.9.8-7.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-kitchen-1.1.1-5.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/python-chardet-2.2.1-1.el7_1.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/rpm-python-4.11.3-32.el7.x86_64.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/yum-utils-1.1.31-45.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/yum-3.4.3-158.el7.centos.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/yum-plugin-aliases-1.1.31-45.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/yum-plugin-protectbase-1.1.31-45.el7.noarch.rpm
wget http://vault.centos.org/7.5.1804/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
rpm -Uvh --replacepkgs python*.rpm
rpm -aq|grep yum|xargs rpm -e --nodeps
 rpm -Uvh --replacepkgs rpm-python*.rpm  yum*.rpm --force --nodeps

然后进行更新yum源

yum makecache yum update

然后进行yum安装的时候有可能会报错

GPG key retrieval failed: [Errno 14] curl#37 - 

"Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-7"

缺少key装一个就可以了

rpm --import /etc/pki/rpm-gpg/RPM*

然后我们开始编译python

先安装相关的依赖包

yum groupinstall "Development tools" -y
yum install zlib-devel -y
yum install bzip2-devel -y
yum install openssl-devel -y
yum install ncurses-devel -y
yum install sqlite-devel-y
yum install gcc -y

从官网下载pyhton2.6.8的包,官网比较慢需要等。

wget https://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz //下载
tar -xzvf Python-2.6.8.tgz //解压
cd Python-2.6.8 //进入目录
./configure //配置源码
make //编译
make altinstall //安装

默认安装在/usr/local/bin/python2.6

最后配置一下python的链接

ln -sf /usr/local/bin/python2.6 /usr/bin/python

python -V查看一下版本

如果需要python2.7则可以python2.7 -V

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_04

*再次启动*

发现还是faild,再次查看日志文件。

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_05

嗯,这个问题是下载错了包,没看清下载了cloudera-manager-el6-cm5.14.0_x86_64.tar.gz是centos6的版本,重新下载CentOS版本就好了(╯‵□′)╯︵┻━┻,还是要从官网龟速下载,一切重来。

hadoop 云平台搭建 cloudera hadoop集群搭建_python_06

集群启动成功。

*配置集群*

访问cdh00:7180进入管理web,账号/密码:admin/admin

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_07

登录后选择免费模式,并进行集群加载。注意这里如果是再次安装的时候需要先把主机从其他集群中删除,点击logo->主机->从集群中删除

*安装节点*

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_08

*配置静态资源*

选择已经下载好的parcel包,并且要求版本兼容。

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_09

在集群安装过程中,有可能会出现某个节点主机运行不良,这种情况先停止掉该主机的agent服务,再进入CM的安装文件目录,删除/opt/cloudera-manager/lib/cloudera-scm-agent/cm-guid,再重新启动agent

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_10

别问,问就是全都要。

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_11

*集群的进程分配*

主要思路就是负载均衡,cdh00要支持CM还要负责mysql数据存储,所以尽量不分配主进程。

进程

cdh00

cdh01

cdh02

cdh03

Hbase

Regionserver

Regionserver

Regionserver

Regionserver

HMaster

HDFS

Datanode

Datanode

Datanode

Datanode

Namenode

Balancer

Secondarynamenode

Hive

Gateway

Gateway

Gateway

Gateway

Hiveserver2

Hivemetastoreserver

Hue

Hueserver

Loadbalancer

Impala

Catalogserver

Statestore

Daemon

Daemon

Daemon

Daemon

KVStoreindexer

LilyIndexer

CMServer

Monitor

Publisher

Oozie

OozieServer

Solr

SolrServer

Spark

historyServer

Gateway

Gateway

Gateway

Gateway

Yarn

Resourcemanager

JobHistoryServer

NodeManager

NodeManager

NodeManager

NodeManager

Zookeeper

Server

Server

Server

Server

*进程WEB访问表*

CM

cdh00:7180

HDFS

cdh01:50070

Yarn

cdh00:8088

Hbase

cdh02:60010

Oozie

cdh03:11000

Hue

cdh01:8888

*数据库配置*

在之前安装mysql的时候我们就已经创建好了,按照配置好的名称写入,注意mysql只在cdh00中安装过。

如果提示jdbc问题就是jar包未找到,确认一下是否导入jar包或者名字是否正确。其他错误具体问题具体分析。

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_12

集群配置没什么需要修改的,统一默认情况就可以。

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_13

*等待集群启动*

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_14

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_15

这里注意yarn默认只给1G配置内存,spark要求至少2G,所以需要修改配置

Yarn->配置->搜索->

yarn.scheduler.maximum-allocation-mb->5G

yarn.app.mapreduce.am.resource.mb->5G

yarn.nodemanager.resource.memory-mb->5G

理论上大于2吉字节即可,根据集群性能自行调配。修改配置之后需要重启yarn集群。

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_16

*测试集群*

*本地测试*

集群启动成功,运行spark程序测试,apache的sparkexample不能用的,需要使用CDH版的sparkexample。

spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local \
/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/spark/examples/lib/spark-examples-1.6.0-cdh5.14.0-hadoop2.6.0-cdh5.14.0.jar

这里的目录是CDHspark的安装目录,一般都在pacels目录里。

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_17

有可能会出现这种错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream

这个说明spark自动生成的配置文件有问题,需要自己配置。修改前记得备份,万一改错了还能还原。

cd /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/spark/conf

cp spark-env.sh spark-env.sh.ex

vim /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/spark/conf/spark-env.sh

//以下是自动生成的默认配置,检查目录是否错误

//以下是自动生成的默认配置,检查目录是否错误
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:$SPARK_LIBRARY_PATH/spark-assembly.jar"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hadoop/lib/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hadoop/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hadoop-hdfs/lib/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hadoop-hdfs/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hadoop-mapreduce/lib/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hadoop-mapreduce/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hadoop-yarn/lib/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hadoop-yarn/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/hive/lib/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/flume-ng/lib/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/parquet/lib/*"
SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/usr/lib/avro/*"

主要检查这个命令行,发现这些目录都不是hadoop组件的安装目录,实际安装目录在/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/下,改成实际安装目录即可。

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_18

*Yarn测试*

再换用yarn模式启动一下。

spark-submit \--class org.apache.spark.examples.SparkPi \--master yarn \/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/spark/examples/lib/spark-examples-1.6.0-cdh5.14.0-hadoop2.6.0-cdh5.14.0.jar
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

他报了个文件权限的问题,/user目录root用户无权限访问,果断给个hadoop fs -chmod 777 /user

结果说我root用户无权更改?????

没事,先登录cdh01:50070查看一下哪个用户敢拒绝我root的访问。

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_19

是这个叫hdfs的东西,那就su hdfs切换用户,再hadoop fs -chmod 777 /user,完美。

如果报yarn.scheduler.maximum-allocation-mb之类的错误就是前面提到的内存分配太小,更改配置以后重启yarn。

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_20

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_21

集群正常运行,在web端会报异常,程序员都知道异常等于正常,我这里hue的Load balancer报错了,负载均衡的进程罢了,问题不大不影响使用。如果觉得异常不好看可以选择抑制。

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_22

这样就不再监测这个问题,抑制几个不重要的异常无所谓,重要异常不可以忽略。

*5.安装kafka*

*下载静态parcel包*

Parcel中默认是没有kafka的,需要安装集群后手动安装。

CDH提供的kafka链接很慢,建议自行下载安装。CDH自带的下载链接:

*CDH提供的链接*

点击主机->parcel->KAFKA->下载

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_23

*自行下载安装*

yum install httpd -y //安装httpd服务

systemctl start httpd

systemctl enable httpd

移动到httpd的资源目录下

cd /var/www/html

mkdir kafka_parcel

cd kafka_parcel

在目录下进行kafka的下载,也可以提前下载好rz导入。

wget http://archive.cloudera.com/kafka/parcels/4.1.0/KAFKA-4.1.0-1.4.1.0.p0.4-el7.parcel &wget http://archive.cloudera.com/kafka/parcels/4.1.0/KAFKA-4.1.0-1.4.1.0.p0.4-el7.parcel.sha1 &wget http://archive.cloudera.com/kafka/parcels/4.1.0/manifest.json &

别忘了把sha1改成sha

*配置本地链接库*

访问http://cdh00:80/kafka_parcel/查看资源目录

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_24

点击主机->Parcel->配置->添加url,把httpd的资源目录粘贴进去。

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_25


hadoop 云平台搭建 cloudera hadoop集群搭建_python_26

然后再资源列表中就可以看到kafka,点击下载->分配->激活

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_27

*安装分配*

点击主logo->添加服务

分配4个broker即可

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_28

在zookeeper中添加kafka的数据节点,其余默认。

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_29

Kafka安装有可能报错deploy client configuration fail,这有可能是JAVA_HOME的问题,重新配置一下,或者也有可能是软连接没设置好,CDH去默认路径找jdk没找到,重新设置一下jdk软连接。

Kafka启动失败Service has only 0 Kafka Broker roles running instead of minimum required 1解决不了,mdzz,我选择手动安装。

hadoop 云平台搭建 cloudera hadoop集群搭建_hadoop 云平台搭建_30

最新发现解决方案,有可能是配置的JVM虚拟内存不够,配置搜索memory,修改java heap size of broker为1G。

hadoop 云平台搭建 cloudera hadoop集群搭建_cloudera_31

点击logo返回主页->kafka->配置->搜索memory,确实默认分配的太小,改为1G。点击实例->全选->启动。

hadoop 云平台搭建 cloudera hadoop集群搭建_mysql_32

*6.总结*

啊这,没想到我被JVM内存难倒了一整天。

然后其他的组件就根据自己需要自行安装了,大部分的大数据组件在parcel静态资源下都有,CDH相对比apache方式安装省事了很多,除了下载速度慢以外,其他都是一键配置,不需要繁琐的授权、修改配置文件之类的复杂、机械化操作,节省了很多时间。Apache模式安装的问题主要出在配置上,手工配置容易出错,使用CDH安装主要问题出在版本匹配上,务必注意系统和CDH的版本是否匹配,版本兼容问题解决以后,其他问题基本都迎刃而解。