Cloudera Manager5.12.1+CDH5.12.1集群离线部署及Spark2重新编译

这篇CM+CDH的搭建流程一直以文档的形式在电脑里边存着,搭建的时候也参考了网上的一些博客,现在拿出来分享一下,步骤相对来说还是比较详细的,有错误的地方欢迎大家指出

 

注:以下操作为root用户

1、相关包下载

1.1、Cloudera Manager5.12.1下载

http://archive.cloudera.com/cm5/cm/5/

1.2、CDH5.12.1下载

http://archive.cloudera.com/cdh5/parcels/5.12.1/

 

2、网络配置

2.1、所有节点修改IP地址和主机名的映射关系

vi /etc/hosts

2.2、各节点修改主机名

vi /etc/sysconfig/network

hostnamectl set-hostname "主机名"

2.3、刷新重启

service network restart

 

3、关闭防火墙、Selinux

3.1、关闭防火墙

#直接关闭:systemctl stop firewalld.service

#禁止开机启动:systemctl disable firewalld

#查看防火墙状态:systemctl status firewalld

3.2、关闭Selinux

3.2.1、永久关闭

vi /etc/selinux/config

SELINUX=disabled

#重启后生效

3.2.2、暂时关闭

setenforce 0

 

4、查看IP

ip addr<ifconfig不可用,需安装net-tools>

 

5、配置SSH

5.1、主节点

cd ~/.ssh

ssh-keygen -t rsa<一路回车>

chmod -R 700 ~/.ssh

#创建各节点公钥存放目录

mkdir ~/.ssh/cdh01

mkdir ~/.ssh/cdh02

mkdir ~/.ssh/cdh03

cp ~/.ssh/id_rsa.pub ~/.ssh/cdh01

cat ~/.ssh/cdh01/id_rsa.pub>> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

5.2、其它节点

cd

ssh-keygen -t rsa

chmod -R 700 ~/.ssh

#把其它节点下的id_rsa.pub复制到主节点的对应目录下

scp ~/.ssh/id_rsa.pub root@cdh01:~/.ssh/cdh02

5.3、主节点

#将对应目录其它节点公钥追加到授权文件

cat ~/.ssh/cdh02/id_rsa.pub>> ~/.ssh/authorized_keys

#将授权文件发送到其它节点

scp ~/.ssh/authorized_keys root@cdh02:~/.ssh/

#检查授权文件<所有节点>

cat ~/.ssh/authorized_keys

#重启SSH服务<所有节点>

/bin/systemctl restart sshd.service

#免密码登陆校验

ssh cdh02

exit

 

6、配置NTP时间同步

6.1、每个节点安装NTP

6.1.1、离线安装

自行下载ntp的RPM包

6.1.2、离线安装遇到的问题

find / -name 'libcrypto*'<如下为没有安装>

问题

find / -name 'libopts*'<如下为没有安装>

find / -name 'ntpdate*'<如下为没有安装>

6.1.3、离线安装成功

6.2、每个节点配置NTP

将原有/etc/ntp.conf做备份为/etc/ntp.conf.backup

cp /etc/ntp.conf /etc/ntp.conf.backup

6.2.1、修改/etc/ntp.conf

master配置

slave配置

6.3、启动服务

systemctl start ntpd.service

6.4、检查是否成功

ntpstat

注意:如显示如下需等待几分钟

 

7、设置swap空间

Cloudera建议将交换空间设置为0,过多交换空间

echo "vm.swappiness = 0" >> /etc/sysctl.conf

 

8、关闭大页面压缩

echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo never > /sys/kernel/mm/transparent_hugepage/defrag

 

9、安装MySQL

9.1、创建mysql系统目录

mkdir -p /home/mysql/software/mysql

mkdir -p /home/mysql/data/mysql

mkdir -p /home/mysql/data/log/mysql

9.2、下载安装mysql

http://dev.mysql.com/downloads/mysql/

上传mysql安装包到/home/mysql/software/mysql

解压缩到/usr/local/目录下

tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

cd /usr/local/

改名

mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

9.3、创建mysql用户用户组及目录

groupadd mysql

useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql

cd /usr/local/mysql

chown -R mysql .

chgrp -R mysql .

chown -R mysql:mysql /home/mysql/data/mysql/

chown -R mysql:mysql /home/mysql/data/log/

9.4、初始化mysql

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data/mysql

如下为成功,拷贝下初始化密码

然后再执行

./bin/mysql_ssl_rsa_setup --datadir=/home/mysql/data/mysql

进入support-files目录

cp mysql.server /etc/init.d/mysql

vi /etc/init.d/mysql

vi /etc/my.cnf

[client]

port=3306

socket=/usr/local/mysql/mysql.sock

 

[mysql]

no-auto-rehash

default-character-set=utf8

 

[mysqld]

datadir=/home/mysql/data/mysql

socket=/usr/local/mysql/mysql.sock

basedir=/usr/local/mysql

max_allowed_packet=64M

explicit_defaults_for_timestamp=true

skip-ssl

secure-file-priv=NULL

lower_case_table_names=1

back_log=300

max_connections=3000

max_connect_errors=100

table_open_cache=4096

external-locking=FALSE

max_allowed_packet=64M

sort_buffer_size=32M

join_buffer_size=32M

thread_cache_size=16

query_cache_size=128M

query_cache_limit=4M

thread_stack=512K

transaction_isolation=REPEATABLE-READ

tmp_table_size=128M

max_heap_table_size=128M

character-set-server=utf8

long_query_time=6

slow_query_log_file=/home/mysql/data/log/mysql/slow.log

# Disabling symbolic-links is recommended to prevent assorted security risks

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

 

[mysqld_safe]

open-files-limit=8192

log-error=/home/mysql/data/log/mysql/mysql_3306.err

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

#

# include all files from the config directory

#

9.5、运行mysql

cd /home/mysql/data/log/mysql/

touch mysql_3306.err

chown -R mysql:mysql mysql_3306.err

chmod -R 755 mysql_3306.err

cd /usr/local/mysql

./bin/mysqld_safe --user=mysql &

./bin/mysql --user=root -p

密码使用上边拷贝好的初始密码

mysql> set password=password('123456');<修改密码>

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';<允许远程访问>

mysql> flush privileges;<刷新授权表>

9.6、创建CM用的数据库

<hive数据库>

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

<集群监控数据库>

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

9.7、配置环境变量

vi /etc/profile

添加

export PATH=/usr/local/mysql/bin:$PATH

执行

source /etc/profile

9.8、配置开机启动

chmod 755 /etc/init.d/mysql

chkconfig --add mysql<将MySQL添加为受chkconfig管理的服务>

chkconfig --level 345 mysql on<在级别3和5上设定服务为”on”>

 

10、安装Java

首先要卸载自带的OpenJdk,有些Linux会自带较低版本的jdk

rpm -qa | grep java<查询>

rpm -e 包 --nodeps<有则卸载>

10.1、所有节点

cd /usr

mkdir java

cd java<上传java安装包>

rpm -ivh rpm包

设置全局变量

echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment

验证

java -version

 

11、正式安装CM+CDH

11.1、主节点配置

cd /home

mkdir cm

cd cm

tar -zxvf cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz

mv cloudera /opt/

mv cm-5.12.1 /opt/

上传mysql-connector-java-5.1.46.tar.gz到/home/mysql/目录下并解压

cd mysql-connector-java-5.1.46

cp ./mysql-connector-java-5.1.46-bin.jar /opt/cm-5.12.1/share/cmf/lib/

主节点初始化CM5的数据库

/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm

修改/opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini

修改server_host为主节点主机名

同步至其它节点

scp -r /opt/cm-5.12.1 其它IP:/opt/

11.2、所有节点

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

11.3、主节点

将提前下载好的文件上传到/opt/cloudera/parcel-repo/目录中

注:

sha1结尾文件一定要改为sha结尾,否则系统会重新下载

11.4、启动

11.4.1、启动服务端<主节点>

/opt/cm-5.12.1/etc/init.d/cloudera-scm-server start

查看启动日志

tail -f /opt/cm-5.12.1/log/cloudera-scm-server/cloudera-scm-server.log

出现如下为成功

INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

11.4.2、启动Agent服务<所有节点>

/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start

查看启动日志

tail -f /opt/cm-5.12.1/log/cloudera-scm-agent/cloudera-scm-agent.log

11.4.3、7180登陆

初始用户名密码都是:admin

11.4.4、CDH安装

最终用户许可条款和条件

继续

选择部署免费版本

继续

继续

指定主机

继续

选择存储库

继续

安装选定Parcel

问题

 

所有节点执行以下操作

临时解决:

通过echo 0 > /proc/sys/vm/swappiness即可解决

永久解决:

sysctl -w vm.swappiness=0

echo vm.swappiness = 0 >> /etc/sysctl.conf

选择需要安装组件

群集组件分配

继续

群集数据库设置

问题

解决办法:

mysql -u root -p

grant all privileges on hive.* to 'hive'@'%' identified by '123456';

继续

群集设置

mkdir -p /home/dfs/nn

mkdir -p /home/dfs/dn

mkdir -p /home/dfs/snn

mkdir -p /home/yarn/nm

继续

首次运行

问题一

解决方法

所有节点下载安装perl

下载地址

http://www.perl.org/get.html#unix_like

将tar.gz上传至自定目录如/home目录并解压

cd至解压过的目录

执行

./Configure -de

出现如下

下载安装gcc

cd /home

mkdir gcc

执行安装

rpm -ivh *.rpm --nodeps --force

安装成功验证

继续perl安装

cd至perl解压过的目录

执行

make<有问题再执行./Configure -de>

make test

make install

问题二

如果报NameNode初始化失败,那么需要切换为hdfs用户进行初始化

执行

hadoop namenode -format

问题三

Hive启动失败

解决方法

将mysql-connector-java-5.1.46-bin.jar放到Hive目录lib目录下

问题四

解决方法

su hdfs

hdfs dfs -mkdir /user/spark

hdfs dfs -mkdir /user/spark/applicationHistory

hdfs dfs -chown -R spark:spark /user/spark

hdfs dfs -chmod 1777 /user/spark/applicationHistory

问题五

解决方法

问题六

解决方法

问题七

解决方法

root用户

cd /opt/cloudera/parcels/CDH/lib/hive/bin

./schematool -dbType mysql -initSchema

hive --service metastore &

问题八

解决方法

ALTER DATABASE hive CHARACTER SET latin1;

ALTER DATABASE mysql CHARACTER SET latin1;

问题九

Can't open cm-5.12.1/run/cloudera-scm-agent/process NODEMANAGER : 权限不够

解决方法:

cd /opt/cm-5.12.1/run/cloudera-scm-agent/process/**-hdfs-NAMENODE

chmod 666 supervisor.conf

不行再执行下边这条

chmod +020 supervisor.conf

 

12、Spark重新编译、HA及Hive升级配置

12.1、Scala安装

由于Spark依赖Scala,需要在每个节点安装Scala2.11.X

所有节点执行如下

cd /home

mkdir scala

上传Scala Tar包并解压

配置环境变量

vi /etc/profile

添加

export PATH=/home/scala/scala-2.11.8/bin:$PATH

执行刷新命令

source /etc/profile

12.2、Spark2安装

需要四个文件

http://archive.cloudera.com/spark2/csd/

http://archive.cloudera.com/spark2/parcels/2.2.0.cloudera2/

所有节点执行如下

创建/opt/cloudera/csd,将SPARK2_ON_YARN-2.2.0.cloudera2.jar移至该目录下

修改所属用户

chown cloudera-scm:cloudera-scm SPARK2_ON_YARN-2.2.0.cloudera2.jar

Master节点操作如下

将/opt/cloudera/parcel-repo目录下的原有manifest.json重命名

将以下三个文件上传

SPARK2-2.2.0.cloudera2-1.cdh5.12.0.p0.232957-el7.parcel

SPARK2-2.2.0.cloudera2-1.cdh5.12.0.p0.232957-el7.parcel.sha1(结尾sha1改为sha)

manifest.json

执行/opt/cm-5.12.1/etc/init.d/cloudera-scm-server restart

所有节点执行如下

/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent restart

重启

配置Spark2.2的parcel库地址

12.3、配置NameNode的HA

进入HDFS页面

12.4、CDH支持SparkSQL

12.4.1、下载安装Scala

12.4.2、下载Maven

上传并解压apache-maven-3.3.9-bin.tar.gz

配置环境变量

vi /etc/profile

添加如下

MAVEN_HOME=/home/maven/apache-maven-3.3.9

export MAVEN_HOME

export PATH=${PATH}:${MAVEN_HOME}/bin

刷新环境变量

source /etc/profile

验证

mvn -v

设置Maven编译所占空间

cd /apache-maven-3.3.9/bin

编辑mvn添加

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

修改Maven库

vi apache-maven-3.3.9/conf/settings.xml

改为

<mirror>

<id>nexus-aliyun</id>

<mirrorOf>*,!cloudera</mirrorOf>

<name>Nexus aliyun</name>

<url>http://maven.aliyun.com/nexus/content/groups/public</url>

</mirror>

12.4.3、环境变量

Java:

export JAVA_HOME=/usr/java/default

Maven:

export MAVEN_HOME=/home/maven/apache-maven-3.3.9

Scala:

export SCALA_HOME=/home/scala/scala-2.11.8

总的:

export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$SCALA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

12.4.4、Spark2.2

上传并解压spark-2.2.0.tgz

cd spark-2.2.0

mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -DskipTests clean package

mvn -Pyarn -Phive -Phive-thriftserver -DskipTests clean package

mvn -Pyarn -Dscala-2.11 -DskipTests clean package

修改spark-2.2.0目录下的pom文件

改为

  <repositories>

    <repository>

      <id>cloudera</id>

      <!-- This should be at top, it makes maven try the central repo first and then others and hence faster dep resolution -->

      <name>Maven Repository</name>

      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>

      <releases>

        <enabled>true</enabled>

      </releases>

      <snapshots>

        <enabled>false</enabled>

      </snapshots>

    </repository>

  </repositories>

再执行

./dev/make-distribution.sh --name 2.6.0-cdh5.12.1 --tgz -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.12.1 -Phive -Phive-thriftserver

编译出spark-2.2.0-bin-2.6.0-cdh5.12.1.tgz

配置Spark环境变量

export SPARK_HOME=/opt/cloudera/parcels/SPARK2/lib/spark2

export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME

进入cloudera/parcels/SPARK2/lib/spark2目录

mv jar jar000

cp -r spark-2.2.0/spark-2.2.0-bin-2.6.0-cdh5.12.1/jars cloudera/parcels/SPARK2/lib/spark2/

cp cloudera/parcels/CDH/lib/hive/conf/hive-site.xml cloudera/parcels/SPARK2/lib/spark2/conf/

cp spark-2.2.0/bin/spark-sql cloudera/parcels/SPARK2/lib/spark2/bin/

支持beeline

复制编译的sbin目录下的

cp spark-2.2.0/sbin/start-thriftserver.sh cloudera/parcels/SPARK2/lib/spark2/sbin/

cp spark-2.2.0/sbin/stop-thriftserver.sh cloudera/parcels/SPARK2/lib/spark2/sbin/

cp spark-2.2.0/bin/beeline cloudera/parcels/SPARK2/lib/spark2/bin/

启动

./start-thriftserver.sh --master yarn --hiveconf hive.server2.thrift.port=10001 --executor-memory 2g --num-executors 10

启动失败:

找到cloudera/parcels/SPARK2/lib/spark2/bin/load-spark-env.sh

注释掉文件最底部<如下>

再次启动还报错

进入cloudera/parcels/SPARK2/lib/spark2目录创建logs目录

赋权限chmod 777 logs/

完成

连接

./beeline -u jdbc:hive2://IP:10001/default -n hdfs -p hdfs

12.5、Hive升级

​​​​​​​

问题

启动元数据库报错

mysql> use hive

mysql> show tables;

mysql> select * from VERSION;

mysql> update VERSION set SCHEMA_VERSION='2.1.0' where VER_ID=1;

mysql> flush privileges;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值