专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Centos7使用CDH6.3.0安装大数据集群

所有节点,环境依赖安装:

yum -y install vim
yum list installed vim*
yum install -y lrzsz
yum search ifconfig
yum -y install net-tools.x86_64
yum install wget -y
yum install gcc -y
yum install unzip -y
yum install lsof
yum install -y perl
yum install -y bind-utils psmisc libxslt cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs httpd mod_ssl openssl-devel python-psycopg2 MySQL-python /lib/lsb/init-functions libpq.so.5

修改网络和主机名

cdh6-master

[root@cdh6-master ~]# hostnamectl set-hostname cdh6-master

[root@cdh6-master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bdf6fb11-50f4-403a-8ba6-b9dca61a591e
DEVICE=ens33
ONBOOT=yes

IPADDR=192.168.200.125
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=8.8.8.8

cdh6-slave1

[root@cdh6-slave1 ~]# hostnamectl set-hostname cdh6-slave1

[root@cdh6-slave1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=e2b4e53e-5a4d-4b20-b6ff-39a67539214a
DEVICE=ens33
ONBOOT=yes

IPADDR=192.168.200.126
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=8.8.8.8

cdh6-slave2

[root@cdh6-slave2 ~]# hostnamectl set-hostname cdh6-slave2

[root@cdh6-slave2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a15136a1-c83b-4750-9ff3-2ca779e39818
DEVICE=ens33
ONBOOT=yes

IPADDR=192.168.200.127
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=8.8.8.8

关闭防火墙和SELinux

vi /etc/hosts

192.168.200.125        cdh6-master
192.168.200.126        cdh6-slave1
192.168.200.127        cdh6-slave2
# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机自启
systemctl disable firewalld
# 临时生效
setenforce 0
# 永久生效
修改 /etc/selinux/config 下的 SELINUX=disabled 

SSH免密登陆

cdh6-master节点(只需要主节点能免密登陆其它节点以及自己就可以了):

# 输入之后一直回车
ssh-keygen    

# 赋值秘钥到其它节点包括自己
ssh-copy-id   cdh6-master
ssh-copy-id   cdh6-slave1
ssh-copy-id   cdh6-slave2

注意事项:如果出现 ssh-copy-id: command not found 需要执行该命令(yum -y install openssh-clients

集群时间同步

修改时区(改为中国标准时区)ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

安装ntp yum -y install ntp ntp

主机配置 vim /etc/ntp.conf

master节点

driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 10.1.32.246 nomodify notrap nopeer noquery #本机ip
restrict 127.0.0.1
restrict ::1
restrict 10.1.32.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor

node节点

driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 10.1.32.247 nomodify notrap nopeer noquery #本机ip
restrict 127.0.0.1
restrict ::1
server 10.1.32.246 #master ip地址
Fudge 10.1.32.246 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor

重新启动 ntp 服务:service ntpd restart

设置开机自启:systemctl enable ntpd.service

查看与时间同步服务器的时间偏差:ntpdc -c loopinfo

查看当前同步的时间服务器:ntpq -p

查看状态:ntpstat

安装repo、GPG key、jdk

所有节点。

# 安装repo,如果没有wget就yum install -y wget
wget https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/

# 导入GPG key
rpm --import https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPM-GPG-KEY-cloudera

# 安装jdk
yum install -y oracle-j2sdk1.8
# 配置java环境变量
vi /etc/profile
# 最后面加上
export JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
export PATH=$PATH:$JAVA_HOME/bin
# 生效环境变量
source /etc/profile

在cdh6-slave1安装MySQL

cdh-slave1节点。

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum update

yum install -y mysql-server

systemctl start mysqld

systemctl enable mysqld
###初始化Mysql

/usr/bin/mysql_secure_installation
回车
[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
All done!

安装MySQL JDBC Driver

所有节点。

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz

tar -zxvf mysql-connector-java-5.1.46.tar.gz

mkdir -p /usr/share/java/

cd mysql-connector-java-5.1.46

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

注意:

一定要将mysql-connector-java-5.1.46-bin.jar改名为mysql-connector-java.jar,不然初始化cm的时候无法识别。

创建数据库

在安装MySQL数据库的 cdh6-slave1节点。

需要建的库有scm、amon、rman、hue、metastore、sentry、nav、navms、oozie

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

开放远程权限:

mysql> use mysql;

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

mysql> grant all privileges on *.* to 'scm'@'master.cdh6' identified by '123456' with grant option;

mysql> flush privileges;

离线安装cdh

下载安装包

CM

CDH

注意:

CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha256重命名为CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha,这点必须注意否则,系统会重新下载。

archive.cloudera.com/…

然后,CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha中的秘钥修改为对应版本的秘钥。

我选的这个版本的秘钥:archive.cloudera.com/…

上传到安装包 将服务安装包上传到每台机器目录/opt/cloudera-manager下,没有的创建 #

mkdir /opt/cloudera-manager

解压CM安装包

环境依赖安装:

yum -y install vim
yum list installed vim*
yum install -y lrzsz
yum search ifconfig
yum -y install net-tools.x86_64
yum install wget -y
yum install gcc -y
yum install unzip -y
yum install lsof
yum install -y perl
yum install -y bind-utils psmisc libxslt cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs httpd mod_ssl openssl-devel python-psycopg2 MySQL-python /lib/lsb/init-functions libpq.so.5

所有节点:

rpm -ivh cloudera-manager-daemons-6.3.0-1281944.el7.x86_64.rpm

rpm -ivh cloudera-manager-agent-6.3.0-1281944.el7.x86_64.rpm

仅仅在master节点:

rpm -ivh cloudera-manager-server-6.3.0-1281944.el7.x86_64.rpm

初始化数据库

我这里MySQL安装在 cdh6-slave1节点,cm-server安装在 cdh6-master节点。

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh6-slave1 --scm-host cdh6-master scm scm

注意事项,如果MySQL和cm-server在一台服务器上:

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

修改所有节点的CM主机指向

vi /etc/cloudera-scm-agent/config.ini
# 将server_host修改为CM-Server所在的主机名
server_host=cdh6-master

启动cdh6-master节点的cloudera-scm-server:

systemctl start cloudera-scm-server

等待server启动完毕之后,再启动所有节点的cloudera-scm-agent

systemctl start cloudera-scm-agent

安装大数据组件

可能会遇到的问题

虚拟内存设置

Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:

临时解决

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

永久解决

sysctl -w vm.swappiness=0

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

大内存设置

大内存页禁用

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

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

升级软件依赖版本

Starting with CDH 6, PostgreSQL-backed Hue requires the Psycopg2 version to be at least 2.5.4, see the documentation for more information. This warning can be ignored if hosts will not run CDH 6, or will not run Hue with PostgreSQL. The following hosts have an incompatible Psycopg2 version of '2.5.1'

解决方法:可以忽略。

yum install python-pip

pip install --upgrade psycopg2

安装Parcel提示主机运行状况不良

解决方法

删除agent目录下面的cm_guid文件,并重启失败节点的agent服务恢复。

find / -name cm_guid
/var/lib/cloudera-scm-agent/cm_guid

删除它/var/lib/cloudera-scm-agent/cm_guid

###重启agent
systemctl cloudera-scm-agent restart

CDH安装hdfs后Permission denied: user=root, access=WRITE, inode=”/”:hdfs:supergroup:drwxr-xr-x 的解决方法

方法一、

使用指定的用户去执行

sudo -u hdfs hadoop fs -mkdir /newFile

sudo -u hdfs yarn jar hadoop-examples.jar pi 3 100

方法二、进入root用户,再su hdfs 进入hdfs用户去执行

110_1.png

方法三、在hdfs-site.xml中添加设置

这种方法可让所有用户访问hdfs了,不用进入hdfs用户再执行命令

下面是默认的配置

110_2.png

CDH中没有这个配置需要自己加进去,步骤如下:

1、找到hdfs-site.xml 的 HDFS 服务高级配置代码段(安全阀)110_3.png

2、添加这个,保存更改,重启hdfs

dfs.permissions.enabled 的值设置为false

110_4.png

配置hive on spark,添加2个jar到spark

ln -s /opt/cloudera/parcels/CDH/lib/hive/lib/hive-hbase-handler-2.1.1-cdh6.3.2.jar /opt/cloudera/parcels/CDH/lib/spark/jars/hive-hbase-handler-2.1.1-cdh6.3.2.jar

ln -s /opt/cloudera/parcels/CDH/lib/hive/lib/hive-exec-2.1.1-cdh6.3.2.jar /opt/cloudera/parcels/CDH/lib/spark/jars/hive-exec-2.1.1-cdh6.3.2.jar

参考文档

在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离。ResourceManager将某个NodeManager上资源分配给任务(这就是所谓的“资源调度”)后,NodeManager需按照要求为任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证,这就是所谓的资源隔离。YARN允许用户配置每个节点上可用的物理内存资源,注意,这里是“可用的”,因为一个节点上的内存会被若干个服务共享,比如一部分给YARN,一部分给HDFS,一部分给HBase等,YARN配置的只是自己可以使用的,配置参数如下:

(1)yarn.nodemanager.resource.memory-mb

表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。

(2)yarn.nodemanager.vmem-pmem-ratio

任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1。

(3) yarn.nodemanager.pmem-check-enabled

是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。

(4) yarn.nodemanager.vmem-check-enabled

是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。

(5)yarn.scheduler.minimum-allocation-mb

单个任务可申请的最少物理内存量,默认是1024(MB),如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数。

(6)yarn.scheduler.maximum-allocation-mb

单个任务可申请的最多物理内存量,默认是8192(MB)。

默认情况下,YARN采用了线程监控的方法判断任务是否超量使用内存,一旦发现超量,则直接将其杀死。由于Cgroups对内存的控制缺乏灵活性(即任务任何时刻不能超过内存上限,如果超过,则直接将其杀死或者报OOM),而Java进程在创建瞬间内存将翻倍,之后骤降到正常值,这种情况下,采用线程监控的方式更加灵活(当发现进程树内存瞬间翻倍超过设定值时,可认为是正常现象,不会将任务杀死),因此YARN未提供Cgroups内存隔离机制。

文章永久链接:https://tech.souyunku.com/41618

未经允许不得转载:搜云库技术团队 » Centos7使用CDH6.3.0安装大数据集群

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们