centos7 安装CDH 6

黎东
L、先森
2019-05-29 0 4320

PART1 安装前准备

step1: 修改主机名(所有节点,重启有效)

修改 vi /etc/hostname文件或者通过命令修改

# master
hostnamectl set-hostname master
# slave01
hostnamectl set-hostname slave01
# slave02
hostnamectl set-hostname slave02

设置映射主机名,将以下内容添加到 /etc/hosts 文件:

192.168.26.247 cm
192.168.26.248 master
192.168.23.237 slave1
192.168.23.238 slave2

各节点编辑 /etc/sysconfig/network, 填入各自的主机名。比如 master:

HOSTNAME=master

step2: 关闭防火墙(所有节点)

#查看防火墙
systemctl status firewalld.service


#执行关闭命令
systemctl stop firewalld.service

#执行开机禁用防火墙命令 
systemctl disable firewalld.service

step3: 关闭 SELINUX (所有节点)

vi /etc/sysconfig/selinux

将 SELINUX=enforcing 改为 SELINUX=disabled

step4: 启用ntp (所有节点)

安装 ntp

yum install ntp

启动 ntp

systemctl enable ntpd
systemctl start ntpd

编辑 /etc/ntp.conf 文件添加 NTP 服务器

server 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org

step5: 配置从 master 到所有 slave 的 ssh 免密登录

先在 master 上执行:

ssh-keygen -t rsa   #一路回车到完成

cat  ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
#赋予权限
chmod 600 ~/.ssh/authorized_keys

再在所有 slave 上分别执行:

ssh-keygen -t rsa   #一路回车到完成

ssh-copy-id -i master   #将公钥拷贝到master的authorized_keys上

在 master 上,将 authorized_keys 分发到其他节点服务器:

scp ~/.ssh/authorized_keys slave01:/root/.ssh/

step6: 禁用透明大页面压缩(所有节点)

缺省启用:[always] --- 表明启用了透明大页

[root@master redhat_transparent_hugepage]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

禁用状态:

[root@master redhat_transparent_hugepage]# cat /sys/kernel/mm/transparent_hugepage/enabled  
always madvise [never]

执行以后命令

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

并将上面的两条命令写入开机自启动

vi /etc/rc.local

如果没有权限,赋予权限,否则无法执行

chmod +x /etc/rc.d/rc.local

step6: 优化虚拟内存(所有节点)

检查虚拟内存需求率
# cat /proc/sys/vm/swappiness
显示如下:
 30
临时降低虚拟内存需求率
# sysctl vm.swappiness=10
永久降低虚拟内存需求率
# echo 'vm.swappiness = 0' > /etc/sysctl.d/swappiness.conf
并运行如下命令使生效
# sysctl -p

PART2 安装 Cloudera Manager 和 CDH

step1: 配置Cloudera Manager yum库

  • CM6 RPM:https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/

  • ASC文件: https://archive.cloudera.com/cm6/6.1.0/allkeys.asc

├── allkeys.asc 
├── cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
├── cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
├── cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
└── cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm
  • CDH6 Parcels:https://archive.cloudera.com/cdh6/6.1.0/parcels/
    需要下载CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel和manifest.json这两个文件

  • MySQL JDBC驱动,要求使用5.1.26以上版本的jdbc驱动,可点击这里直接下载mysql-connector-java-5.1.47.tar.gz

安装httpd和createrepo:

yum -y install httpd createrepo

启动httpd服务并设置开机自启动:

systemctl start httpd

然后进入到前面准备好的存放Cloudera Manager RPM包的目录cloudera-repos下:
生成RPM元数据:

[root@cm cloudera-repos]# createrepo .
Spawning worker 0 with 2 pkgs
Spawning worker 1 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

然后将cloudera-repos目录移动到httpd的html目录下:

mv cloudera-repos /var/www/html/

确保可以通过浏览器查看到这些RPM包:
接着在Cloudera Manager Server主机上创建cm6的repo文件(要把哪个节点作为Cloudera Manager Server节点,就在这个节点上创建repo文件):

cd /etc/yum.repos.d
vi cloudera-manager.repo

添加如下内容:

[cloudera-manager]
name=Cloudera Manager 6.1.0
baseurl=http://192.168.26.247/cloudera-repos/
gpgcheck=0
enabled=1

保存,退出,然后执行yum clean all && yum makecache命令

step2: 安装 JDK 并写入环境变量(所有节点)

安装jdk

rpm -ivh oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm

写入环境变量:
/etc/profile 末尾添加以下内容

#set jdk environment
export JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

配置mysql jdbc驱动
从前面下载好的mysql-connector-java-5.1.47.tar.gz包中解压出mysql-connector-java-5.1.47-bin.jar文件,将mysql-connector-java-5.1.47-bin.jar文件上传至CM Server节点上的/usr/share/java/目录下并重命名为mysql-connector-java.jar(如果/usr/share/java/目录不存在,需要手动创建):

tar zxvf mysql-connector-java-5.1.47.tar.gz
mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

step3: 安装数据库(MySQL)

yum install mariadb-server mariadb 

systemctl start mariadb  #启动MariaDB

systemctl stop mariadb  #停止MariaDB

systemctl restart mariadb  #重启MariaDB

systemctl enable mariadb  #设置开机启动
#设置密码
/usr/bin/mysqladmin -u root password '123456'

step4: 安装 Cloudera Manager 软件包*

这一步只需要在CM Server节点上操作。
执行下面的命令:

yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

step5: 设置 Cloudera Manager 数据库

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm -h localhost -uroot -p123456 --scm-host localhost scm scm scm

step6: 配置本地Parcel存储库

Cloudera Manager Server安装完成后,进入到本地Parcel存储库目录:

cd /opt/cloudera/parcel-repo

将第一部分下载的CDH Parcel文件(CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel和manifest.json)上传至该目录下,然后执行命令生成sha文件:

sha1sum CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel | awk '{ print $1 }' > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha

然后执行下面的命令修改文件所有者:

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

step6: 启动Cloudera Manager Server服务

systemctl start cloudera-scm-server
#查看错误
journalctl -xe

查看启动日志:

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

step7: 安装组件

登录 cloudera manager
访问 http://192.168.26.247:7180
登录帐号密码:admin admin

添加搜索主机

192.168.26.247,192.168.26.248, 192.168.23.237,192.168.23.238

自定义存储库

http://192.168.26.247/cloudera-repos/

ssh登录凭证

安装agent

检查主机

需要修改的选项如下

HDFS 根目录 /data/hbase

DataNode 数据目录 /data/dfs/dn

NameNode 数据目录 /data/dfs/nn

HDFS 检查点目录 /data/dfs/snn

Impala Daemon 暂存目录 /data/impala/impalad

Kudu Master WAL Directory /data/kudu/master/wal

Kudu Master Data Directories /data/kudu/master/data

Kudu Tablet Server WAL Directory /data/kudu/server/wal

Kudu Tablet Server Data Directories /data/kudu/server/data

NodeManager 本地目录 /data/yarn/nm

警报:邮件收件人

注意:关于/solr的目录不要修改,不然后面会报错


大数据