您的位置:首页 > 大数据

虚拟机上5台服务器cloudrea manager5.12大数据平台搭建(持续更新)

2018-03-31 22:35 489 查看
前言

操作步骤
VirtualBox528

CentOS69

节点网络配置

ssh配置

cloudrea以及JDK以及Mysql版本选择必读

其他注意事项

JDK安装

mysql57安装

- 刷新权限命令如下
防火墙

正题

CDH集群安装

虚拟机扩容

参考

前言

全文共1.2w字(仅安装整个大数据平台,关于cdh manager管理,会单独记录)。相比有的地方几十页的文档已经少了不少,但是还真的比较多。强烈建议多看官方文档,写得特别详细,是的,确实有些多。一定要耐心,一定要仔细仔细再仔细。相信我,至少,这比你手动搭建一个完整的大数据集群平台要来得快。

第一次搭建完全分布式大数据组件是初学大数据时,手动搭建的,破机器上3虚拟机折腾了一周。

之后用了半年的HDP,ambari搭建的大数据平台,现在有个项目,需要在十台真实机器上搭建平台。考虑之后,决定使用CDH,cloudrea manager搭建。

因为这两天会在10台左右的真实机器上搭建大数据平台,为了在那时做出更少的错误决策,决定先用6台虚拟机模拟一下。

建议每台虚拟机给20G,我就是只给了8G,后悔死了。扩容也失败,删除又搭了一次。

操作步骤

注:以下内容已经第二次安装实践修改(第一次的因为种种问题,删除了)

VirtualBox5.2.8

安装,略

CentOS6.9

建议带中文的组件统统不要

Desktop:基本的桌面系统,包括常用的桌面软件,如文档查看工具

Minimal Desktop:基本的桌面系统,包含的软件更少

Minimal:基本的系统,不包含任何可选的软件包

Basic Server:安装的基本系统的平台支持,不包含桌面

Database Server:基本系统平台,加上MySQL和PostgreSQL数据库的客户端,无桌面

Web Server:基本系统平台,加上PHP,Web server,还有MySQL和PostgreSQL数据库的客户端,无桌面

Virtual Host:基本系统加虚拟化平台

Software Development Workstation:包含的软泥吉安包较多,基本系统,虚拟化平台桌面环境,开发工具

【可参考:http://www.runoob.com/linux/linux-install.html

建议为每台虚拟机复制一个镜像。

简述:

5台CentOS6.9,除namenode2.5G内存,其他每台1.5G;

硬盘VDI,每台20G【我就是只给了8G,后悔死了】,固定,自定义路径。

网卡全为桥接。

选择下载的minimal镜像考虑到后来下载依赖包时的网络问题,用DVD镜像把;Install or upgrade an existing system 安装或升级现有的系统;Skip

语言选英文;us键盘;basic;忽略所有数据;然后进行网络设置(很重要)。

选择时区(之后要保证每台机器时间相同);

修改分区(添加home);格式化;修改写入磁盘;host5为Minimal Desktop(其他三台Basic Server),重启



Cloudrea产品文档首页

节点网络配置

强烈安利一款炸裂的工具软件:MobaXterm。我用过SecureCRT、XShell,这两款工具相比MobaXterm,真的差距太大。不多说,不知道的朋友去感受下。

注意,对所有机器都执行以下步骤

vi /etc/sysconfig/network 修改hostname(如果创建每一个虚拟机时都指定了名称,可略过);添加与宿主机同样的网关GATEWAY

配置ip地址:

vi /etc/sysconfig/network-scripts/ifcfg-eth0【修1加3】

BOOTPROTO=static      #static,静态ip,而不是dhcp,自动获取ip地址。

IPADDR=**********  #设置我想用的静态ip地址,要和物理主机在同一网段,但又不能相同。

NETMASK=**********  #子网掩码,和物理主机一样就可以了。

GETWAY=**********     #和本机一样


配置DNS

vi /etc/resolv.conf

nameserver=********

nameserver=********


修改hosts文件

service network restart

ssh配置

A若想无密码访问B,就需要把公钥发送给B(需要输入B的密码),B把A发来的公钥添加到自己的授权文件里。

在Hadoop启动以后,namenode是通过SSH(Secure Shell)来启动和停止各个节点上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用无密码公钥认证的方式。

如果cloudrea server与namenode不是同一台机器,其也需要对所有客户端免密登录

1. vi /etc/ssh/sshd_config

  找到以下内容,并去掉注释符”#“

  RSAAuthentication yes # 启用 RSA 认证

  PubkeyAuthentication yes # 启用公钥私钥配对认证方式

  AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径

2. service sshd restart

3. ssh-keygen -t rsa (生成其无密码密钥对)

4. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (把id_rsa.pub追加到授权的key里面去)

5. chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys(修改文件”authorized_keys”权限,这步骤很重要,很多莫名其妙的错误有可能就是权限的问题)

我感觉1、2步骤是非必须的。

下面是把公钥复制到所有的slave节点上去

最简单的方法:

ssh-copy-id -i ~/.ssh/id_rsa.pub 你准备免密登录的机器的IP

子节点创建.ssh文件夹

vi /etc/ssh/sshd_config(修改ssh配置文件,和上面master节点配置方式一样)

scp ~/.ssh/id_rsa.pub root@host1:/tmp/

cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys【注意是发送maser的公钥给子节点,如果没有.ssh文件则手动创建】

chmod 600 ~/.ssh/authorized_keys

cloudrea以及JDK以及Mysql版本选择【必读】

必须考虑不同版本的Cloudera Manager和CDH之间的兼容性,特别是在执行安装/升级过程时。

集群中的所有节点都必须运行相同的主JDK版本。Cloudera仅支持Oracle提供的JDK 。

Cloudera Manager次要版本必须始终等于或大于CDH次要版本。较早版本的Cloudera Manager可能不支持较新版本的CDH中的功能。

RHEL / CentOS / OL 6.9在5.8和更高版本中受支持

运行Cloudera Manager代理的SLES主机必须使用SLES S一DK 11 SP1。

5.10.X之前不支持MySQL5.7

任何Cloudera Manager或CDH版本均不支持Oracle JDK 9。

Cloudera Manager 5和CDH 5均支持 Oracle JDK 7. Oracle JDK 8

包含在CDH 5.13中的Kafka 3.0需要JDK 8. Kafka 3.0和更高版本不支持JDK 7。

Cloudera Manager仓包含Oracle JDK 1.7.0_67,并且可以在全新安装或升级期间自动安装。【不知道离线安装会不会也安装1.7.0_67,但是我认为这不会影响本地的JDK1.8】

支持的JDK8的版本(高于JDK-8u144的暂时不支持)



点击了解更多的关于各个版本区别的信息

最新的是5.14,我选择了5.13;JDK选择的JDK-8u131

其他注意事项

用于访问Cloudrea manager的7180端口必须打开

cloudrea manager 的数据库要定期备份(You must schedule and maintain regular backups of the Cloudera Manager database to recover the cluster in the event of the loss of this database.)

JDK安装

卸载自带的JDK,安装下载的JDK-8u131

【可用工具的多终端共用命令的功能】

1. rpm -qa|grep jdk(由于虚拟机minimal安装,无自带jdk)【有则卸载:使用rpm -e –nodeps 包名卸载之。】

2. rpm -ivh 包名及版本安装

3. vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin


4.source /etc/profile

mysql5.7安装

先得查看是否有旧的mysql或者mariadb

rpm -qa | grep -i mysql

yum -y remove mysql-libs-5.1.73-1.el6.x86_64

这里提示下:

EL6软件包用于在RedHat6.x,CentOS6.x

EL7软件包用于在RedHat7.x,CentOS7.x

注:rpm-bundle.tar包安装过程中需要安装依赖,yum install 依赖一直报错,但是我是能ping同外网的,最后去下载的少是glibc.tar版本的

tar 解压(tar -xvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz)

mv mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql

groupadd mysql

useradd -r -g mysql mysql

mv /etc/my.cnf /etc/my.cnf.bak

cp ./mysql/support-files/my-default.cnf /etc/my.cnf

以下是我的配置:【注意生产环境的机器更好,可以酌情加大一些buffer的值】

>

[mysqld]
character_set_server=utf8
transaction-isolation = READ-COMMITTED
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
#log_bin should be on a disk with enough free space. Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your system
#and chown the specified folder to the mysql user.
log_bin=/usr/local/mysql/data/mysql_binary_log

# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server_id = 1
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 8M
read_buffer_size = 2M
sort_buffer_size = 16M
read_rnd_buffer_size = 16M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/usr/local/mysql/data/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid

sql_mode=STRICT_ALL_TABLES


赋权限:

chown -R mysql:mysql mysql/

安装mysql,命令如下:(记录随机密码)

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

开启mysql服务,命令如下:

./support-files/mysql.server start

将mysql进程放入系统进程中,命令如下:

cp support-files/mysql.server /etc/init.d/mysqld

重新启动mysql服务,命令如下:

service mysqld restart

创建软连接

ln -s /usr/local/mysql/bin/mysql /usr/bin

使用随机密码登录mysql数据库,命令如下:

mysql -u root -p

进入mysql操作行,为root用户设置新密码:

alter user ‘root’@’localhost’ identified by ‘**‘;

- 刷新权限,命令如下:

flush privileges;

chkconfig mysqld on

验证chkconfig –list mysqld

其他

mkdir -p /usr/share/java/

cp mysql-connector-java-5.1.45-bin.jar /usr/share/java/mysql-connector-java.jar

可参考:https://www.cnblogs.com/coderls/p/6848873.htmlhttps://blog.csdn.net/qq_31154765/article/details/70755774https://www.iyunv.com/thread-383432-1-1.html

【第二次安装,搭建了本地yum源】



全部关机,虚拟机设置中挂载镜像

umount /dev/sr1 先卸载

midkr /mnt/cdrom //创建cdrom挂载点

mount /dev/sr1 /mnt/cdrom 将光盘挂载到刚才创建的cdrom

df-h 查看当前挂载

重命名Base.repo(mv CentOS-Base.repo CentOS-Base.repo.bak)

添加自己的repo文件并设置(vi /etc/yum.repos.d/CentOS-Local.repo)

(可以不用设置开机自动挂载了)

yum clean all,yum makecache

yum -y install安装所有依赖(-y参数不进行询问)



防火墙

临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。

每台机器的防火墙都临时关闭service iptables stop

ntp配置机器时间同步

官网说No blocking is done by SELinux(所以我先不关闭SELinux了)

正题

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_path_c.html

所有机器安装依赖包(网不好的使用本地yum源,参考https://jingyan.baidu.com/article/f3e34a12a4abd6f5eb65353a.html)【全部关机,虚拟机设置中挂载镜像,重命名/etc/yum.repos.d/下的base.repo,添加自己的repo文件并设置,yum clean all,yum makecache,yum -y install安装所有依赖(-y参数不进行询问)】、



依赖列表

yum -y install bind-utils chkconfig cyrus-sasl-gssapi cyrus-sasl-plain fuse fuse-libs gcc httpd init-functions libxslt mod_ssl MySQL-python openssl openssl-devel openssl-devel perl portmap postgresql-server psmisc python python-devel python-psycopg2 python-setuptools sed service sqlite swig useradd zlib

下载Cloudera Manager的安装包【trusty、Xenial是Ubuntu的;Jessie是Debian的】

这里我下载的是cloudera-manager-el6-cm5.13.2_x86_64.tar.gz

执行以下代命令:

mkdir /opt/cloudera-manager

tar xzvf /home/cloudera-manager-el6-cm5.13.2_x86_64.tar.gz -C /opt/cloudera-manager

To create user cloudera-scm, use a command such as the following:

useradd –system –home=/opt/cloudera-manager/cm-5.13.2/run/cloudera-scm-server –no-create-home –shell=/bin/false –comment “Cloudera SCM User” cloudera-scm

注:注意home后的版本,如果添加错误:cat /etc/group查看,userdel删除

管理员账户

mkdir /var/lib/cloudera-scm-server

改权限

chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server

所有的agents的cloudera-scm-agent/config.ini文件中(server不做客户端就不用填注意,不要把namenode和DataNode的概念用在这,不做客户端就真的什么都不安装):

server_host和server_port(默认7182)

pwd:/opt/cloudera-manager/cm-5.13.2/etc/cloudera-scm-agent

2018/3/31补充

装mysql的机器一定要设为agent

准备mysql connector,放到/usr/shara/java目录下(先查看目录是存在,不存在先创建目录);或者放到目录/opt/cm-5.13.1/share/cmf/lib/下。

数据库建立:https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_mysql.html#cmig_topic_5_5_2

在mysql上新建数据库:cmf(cloudera manage数据库)、hive(hive数据库)、amon(cloudera Acrivity Monitor使用)、rman(cloudera Reports Manager使用)

create database amon DEFAULT CHARACTER SET utf8;

create database rman DEFAULT CHARACTER SET utf8;

create database metastore DEFAULT CHARACTER SET utf8;

create database sentry DEFAULT CHARACTER SET utf8;

create database nav DEFAULT CHARACTER SET utf8;

create database navms DEFAULT CHARACTER SET utf8;

然后,为上面每个数据库配置类似的:

grant all on database.* TO ‘user’@’%’ IDENTIFIED BY ‘pass’;

设置cmf连接信息:

cd /opt/cloudera-manager/cm-5.13.2/share/cmf/schema/

./scm_prepare_database.sh 数据库类型数据库名 用户 密码

详情–help见该脚本的语法(数据库提前建立)



验证/opt/cloudera-manager/cm-5.13.2/etc/cloudera-scm-server/下面的db.properties文件看是否写入成

server上Create Parcel Directories:

mkdir -p /opt/cloudera/parcel-repo【离线本地yum源】

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

所有节点:

mkdir -p /opt/cloudera/parcels【分发软件用】

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

下载图示三个文件,并拷贝到上面新建的/opt/cloudera/parcel-repo文件夹中:http://archive.cloudera.com/cdh5/parcels/



注意:有网友说将sha1后缀改为sha【cdh对应版本的hash值】,我照做了,没报错

Start the Cloudera Manager Server

root用户:/opt/cloudera-manager/cm-5.13.2/etc/init.d/cloudera-scm-server start

开机自启——如果是centos:cp /opt/cloudera-manager/cm-5.13.2/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server

chkconfig cloudera-scm-server on

修改一行

On the Cloudera Manager Server host, open the /etc/init.d/cloudera-scm-server file and change the value of CMF_DEFAULTS from ${CMF_DEFAULTS:-/etc/default} to $CMF_DEFAULTS/etc/default.

去掉图中的“:-{}”,注意是4个符号,图上没圈完整



启动客户端

在每个客户端执行:(启动后就会与server产生联系)

init.d/cloudera-scm-agent start

cp /opt/cloudera-manager/cm-5.13.2/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent

chkconfig cloudera-scm-agent on

On each Agent, open the $CMF_DEFAULTS/etc/init.d/cloudera-scm-agent file and change the value of CMF_DEFAULTS from ${CMF_DEFAULTS:-/etc/default} to $CMF_DEFAULTS/etc/default.

访问7180端口:【长舒一口气。。。】



注意:初始账户以及密码都为admin,账户名不允许修改,密码可以改。

虚拟机保存快照,必须的

CDH集群安装

自动显示之前设置的agent(我这里server没有设为agent,不知道会不会不让在server上安装节点?是的,不会。后来我关闭安装,回去加上了agent)

是的,刚备份完,作用就凸显了,哈哈。

尴尬,server机器加了agent,还是三台。。。暂时就这样吧,再折腾就没意思了

不行,后面要使用数据库,数据库再server上,发觉我没启动server上的客户端。启动后就ok了。





之后我可能会尝试扩展节点

总的步骤

全部勾选后继续,点击红框确定查找Parcel路径是否符合你的路径



可以看到已经在安装软件包了,server会分发软件安装到/opt/cloudera.parcel-repo目录下



2个警告:



解决办法,针对所有机器执行:

echo 10 > /proc/sys/vm/swappiness

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

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





默认spark版本为1.6【改天记录下升级2.1



我这里的分配是:

zookeeper全装;

namenode在server也就是host5上,不装datanode,host5性能最优;cloudrea manager相关的服务全放server上;

HBASE相关的也没有放在namenode上,都放在了host6;

Activity Monitor要选择装数据库的机器,我这里是host5;

spark相关放在host7

yarn相关放在host8





之前说的数据库测试



namenode格式化失败

可是我机器明明都是重装的啊

试了4次,都是这样。。。

有人说内存不足,好吧,第五次我就只装hdfs和spark

还是这样。

就这样暂时结束吧。。。



神奇的事情发生了,继续按钮不起作用。。。

又重启虚拟机:VBOX_E_FILE_ERROR (0x80BB0004



原来备份是要存储的,我以为只是记录一些关键信息。。。

手动修改时间:

date -s ‘2018-03-31 16:45:34’

11.

虚拟机扩容

virtualBox

【提示:最终未成功】

查看需要扩容的UUID:

VBoxManage list hdds

创建一个空的vdi虚拟机介质:

VBoxManage.exe createhd -filename “C:\Users\Administrator\VirtualBox VMs\host0\host0_1” -size 11920 -format VDI -variant Standard

合并(克隆命令):

VBoxManage.exe clonehd be0b6dd7-c118-4715-be45-23e7ece0b946 7cf52f66-ea8d-4741-941f-876360fcfdab –existing

查看:



添加硬盘硬盘(点击红框,选择弹出的“选择一个虚拟硬盘”)

没成功。。。

参考

cloudera manager5.13.1离线安装记录

本地yum源

本地yum源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: