https://blog.csdn.net/qq_22946601/article/details/82382931

1.虚拟机准备,网络配置,host配置,无秘配置,防护墙关闭,ntp服务

cdh-node1 192.168.128.221

cdh-node2 192.168.128.222

cdh-node3 192.168.128.223

 

  1. 安装配置httpd(主节点)

yum install httpd

或者你可以直接输入命令

yum install -y httpd

设置Apache开机启动

chkconfig httpd on

启动httpd服务

service httpd start

 

3.Linux swappiness参数(所有节点)

为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0cloudera建议10以下)

echo 0 > /proc/sys/vm/swappiness

这样操作重启机器还是还原

修改配置文件,开机自动设置参数

编辑vi /etc/sysctl.conf

在最后添加vm.swappiness=0

 

4.禁用透明页(所有节点)

设置方法

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

 

  1. 安装配置jdk

JDK安装(所有节点)

卸载原有java

rpm -qa | grep java # 查询已安装的java

yum remove java* # 卸载

安装JDK以及配置环境变量

rpm -ivh /opt/JDK/jdk-8u144-linux-x64.rpm

vi /etc/profile

# 末尾添加

 

export JAVA_HOME=/usr/java/jdk1.8.0_144

export CLASSPATH=.:$CLASSPTAH:$JAVA_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin

 

source /etc/profile

 

  1. MYSQL安装(主节点)

1卸载mariadb

[root@cdh001 opt]# rpm -qa|grep mariadb

mariadb-libs-5.5.44-2.el7.x86_64

[root@cdh001 opt]# rpm -e mariadb-libs-5.5.44-2.el7.x86_64

error: Failed dependencies:

libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64

libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64

[root@cdh001 opt]# rpm -e postfix-2:2.10.1-6.el7.x86_64

[root@cdh001 opt]# rpm -e mariadb-libs-5.5.44-2.el7.x86_64

 

2 MYSQL安装

 

cd /opt/mysql/

tar -xvf ./mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar

 

rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm

报错

error: Failed dependencies:

    libc.so.6(GLIBC_2.14)(64bit) is needed by MySQL-client-advanced-5.6.22-1.el7.x86_64

    libc.so.6(GLIBC_2.17)(64bit) is needed by MySQL-client-advanced-5.6.22-1.el7.x86_6

解决方法

下载响应安装包:http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

解压: tar xvf glibc-2.14.tar.gz

进入glibc-2.14目录:cd glibc-2.14

创建build文件夹:mkdir build

进入build目录:cd build

执行:../configure --prefix=/opt/glibc-2.14

执行:make

执行:make instal

 

rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm

 

3 MYSQL配置

mysqld --initialize --user=mysql # 初始化mysql使mysql目录的拥有者为mysql用户

cat /var/log/mysqld.log # 最后一行将会有随机生成的密码

systemctl start mysqld.service # 设置mysql服务自启

mysql -uroot p

# 输入临时密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; # 修改密码

4 创建库(后续安装服务等使用)

CREATE DATABASE cmserver DEFAULT CHARACTER SET utf8;

GRANT ALL on cmserver.* TO 'cmserver'@'%' IDENTIFIED BY 'cmserver';

 

CREATE DATABASE hive DEFAULT CHARACTER SET utf8;

GRANT ALL on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

 

CREATE DATABASE amon DEFAULT CHARACTER SET utf8;

GRANT ALL on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';

 

CREATE DATABASE rman DEFAULT CHARACTER SET utf8;

GRANT ALL on rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';

 

CREATE DATABASE oozie DEFAULT CHARACTER SET utf8;

GRANT ALL on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';

 

CREATE DATABASE hue DEFAULT CHARACTER SET utf8;

GRANT ALL on hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';

 

  1. 安装mysql

inux下安装mysql5.7步骤

1.解压下载好的.tar.gz文件,并将解压后的文件拷贝到/usr/local/目录下,注意:-C,而不是小写的-c

tar -xzvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

2.进入/usr/local/目录下,修改已经解压的文件夹的名字,改为mysql

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

3.检查数据库文件是否有,若有便删除(linux系统自带的)

  检查:命令rpm -qa | grep mysql

  如果有则删除:命令rpm -e --nodeps mysql-libs-5.1.52.x86_64

4.检查mysql组和用户是否存在,如无则创建

检查:cat /etc/group | grep mysql;

     cat /etc/passwd |grep mysql;

创建:groupadd mysql;

     useradd -r -g mysql mysql

5.mysql目录下新建data目录

mkdir data

6.更改mysql目录下所有的目录及文件夹所属组和用户

[root@dbserver mysql]# cd /usr/local/

[root@dbserver local]# chown -R mysql mysql/

[root@dbserver local]# chgrp -R mysql mysql/

[root@dbserver local]# cd mysql/

[root@dbserver mysql]# ls -l

total 40

drwxr-xr-x.  2 mysql mysql  4096 Aug 31 16:45 bin

-rw-r--r--.  1 mysql mysql 17987 Jun 22 22:13 COPYING

drwxr-xr-x.  2 mysql mysql     6 Aug 31 16:48 data

drwxr-xr-x.  2 mysql mysql    52 Aug 31 16:45 docs

drwxr-xr-x.  3 mysql mysql  4096 Aug 31 16:44 include

drwxr-xr-x.  5 mysql mysql  4096 Aug 31 16:45 lib

drwxr-xr-x.  4 mysql mysql    28 Aug 31 16:45 man

-rw-r--r--.  1 mysql mysql  2478 Jun 22 22:13 README

drwxr-xr-x. 28 mysql mysql  4096 Aug 31 16:45 share

drwxr-xr-x.  2 mysql mysql    86 Aug 31 16:45 support-files

7.安装和初始化数据库

进入/usr/local/mysql/bin目录下,执行命令

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

如果提示错误:

[ERROR] Can't find error-message file '/usr/local/mysql/--datadir=/usr/local/mysql/data/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.2017-08-31T08:50:24.709286Z 0 [Warning] InnoDB: New log files created, LSN=45790

解决:

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

如果提示错误内容包含./mysqld: error while loading shared libraries: libnuma.so.1这样的描述错误,这是因为缺少numactl依赖共享库文件:

解决方案:

你的当前系统是Centos就执行命令:yum -y install numactl

你的当前系统是ubuntu就执行命令:sudo apt-get install numactl

如果提示:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

缺少libaio

执行yum install -y libaio

注意:安装成功后,最后一行有提示

例如我的A temporary password is generated for root@localhost: bke6OmP#<y(w

请务必记住冒号后面的字符串,这个是数据库root用户初始登录密码,请务必保存下来

8.配置my.cnf

进入/usr/local/mysql/support-files/目录下

查看是否存在my-default.cnf文件,如果存在直接copy/etc/my.cnf文件中:cp -a ./support-files/my-default.cnf /etc/my.cnf

如果不存在my-default.cnf文件,则在/etc/目录下创建my.cnf,并写入以下内容

[mysqld]  

basedir=/usr/local/mysql-5.7.12/

datadir=/usr/local/mysql-5.7.12/data/

[mysqld]

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,

NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,

NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

9.启动服务

进入已安装的mysql目录中的bin目录下执行命令: ./mysqld_safe --user=mysql &

注意:如果此步骤报错,可以忽略,不用管,继续往下执行下一步。

配置环境变量

vi /etc/profile

export MYSQL_HOME="/software/mysql-5.6.21"

export PATH="$PATH:$MYSQL_HOME/bin"

保存退出

. /etc/profile

 

6.添加自启动服务

chkconfig --add mysql

chkconfig mysql on

 

7.启动mysql

service mysql start

10.mysqld服务加入开机自启动项

将安装的mysql安装目录中的support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务,

否则就只能使用{mysql}/bin/mysqld_safe &命令来启动服务

还需要把mysql.serverbasedir的相关路径,改为自定义的路径,默认路径是/usr/local/mysql

执行命令:

拷贝:cp mysql.server /etc/init.d/mysql

给权限:chmod +x /etc/init.d/mysql

 

mysql注册为开机启动的服务,命令:chkconfig --add mysql

查看是否添加成功:chkconfig --list mysql

如果提示:mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off,则表示已设置开机启动服务项

 

11.启动服务

service mysql start

12.登录mysql

进入mysql安装的bin目录

cd /usr/local/mysql/bin

登录mysql命令:./mysql -u root -p

回车后输入密码:你第7步记录下来的密码

 

12.修改root初始密码

alter user 'root'@'localhost' identified by 'dawning';

回车后提示下面的内容,表示修改成功

Query OK, 0 rows affected, 1 warning (0.00 sec)

修改密码也可以使用sql执行:

update mysql.user set authentication_string=password("你的新密码") where User="用户名" and Host="%";

13.设置远程登录权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'dawning' WITH GRANT OPTION;

刷新

flush privileges;

mysql> quit

Bye

 

 

7.创建库(后续安装服务等使用)

CREATE DATABASE cmserver DEFAULT CHARACTER SET utf8;

GRANT ALL on cmserver.* TO 'cmserveruser'@'%' IDENTIFIED BY 'password';

 

CREATE DATABASE metastore DEFAULT CHARACTER SET utf8;

GRANT ALL on metastore.* TO 'hiveuser'@'%' IDENTIFIED BY 'password';

 

CREATE DATABASE amon DEFAULT CHARACTER SET utf8;

GRANT ALL on amon.* TO 'amonuser'@'%' IDENTIFIED BY 'password';

 

CREATE DATABASE rman DEFAULT CHARACTER SET utf8;

GRANT ALL on rman.* TO 'rmanuser'@'%' IDENTIFIED BY 'password';

 

CREATE DATABASE oozie DEFAULT CHARACTER SET utf8;

GRANT ALL on oozie.* TO 'oozieuser'@'%' IDENTIFIED BY 'password';

 

CREATE DATABASE hue DEFAULT CHARACTER SET utf8;

GRANT ALL on hue.* TO 'hueuser'@'%' IDENTIFIED BY 'password';

 

service cloudera-scm-server start

 

 

配置Cloudera Manageryum源(主节点)

 

mkdir -p /var/www/html/cloudera-repos

 

将下载的cm包文件移到此目录下

 

创建repodata

 

[root@cdh001 cm6]# createrepo .

 

创建.repo

 

[root@cdh001 cm6]# vim /etc/yum.repos.d/cloudera-manager.repo

 

[cloudera-manager]

 

name = Cloudera Manager, Version

 

baseurl = http://cdh001/cloudera-repos/cm6/

 

gpgcheck = 1

 

~

 

yum clean all

 

yum makecache

 

 

 

安装 Cloudera Manager(主节点)

 

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

 

#安装完CM/opt/ 下会出现cloudera目录

 

mv /opt/parcels/* /opt/cloudera/parcel-repo # parcel包移动到指定位置

 

/opt/cloudera/parcel-repo执行以下命令:

 

sha1sum CDH-6.0.0-1.cdh6.0.0.p0.537114-el6.parcel | awk '{ print $1 }' > CDH-6.0.0-1.cdh6.0.0.p0.537114-el6.parcel.sha

 

 

 

# 执行初始化脚本

 

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver cmserveruser password

 

 

 

 

 

# 打开server服务

 

service cloudera-scm-server start

 

top命令查看cpu占用大幅升高,cpu使用率下降后说明服务已起

 

 

查看CM页面是否已可以打开

 

http://192.168.128.221:7180

 

集群安装配置

 

 

 

 

 

Option1说明配置auto-tls

 

JAVA_HOME=/usr/java/jdk1.8.0_144 /opt/cloudera/cm-agent/bin/certmanager --location /opt/cloudera/CMCA setup --configure-services

 

service cloudera-scm-server restart

 

重启后打开7180自动跳转至7183

 

 

这里选择的cdh不然是在线安装

 

 

所有节点JDK已安装,这里不勾选

 

 

 

Agents安装

 

 

parcels分发

 

 

 检测

 

 

 

集群安装配置(可后续依需求单个服务安装,此处选择Essentials安装)

 

 

选择服务安装节点(namenodesecondaryNameNode尽量不要放在一个节点,我这里当时比较随意没注意,后续可以迁移)

 

 

填入之前创建的库名用户密码,测试连接successcontinue

 

 

各项配置

 

 

初次运行

 

 

完成

 

 

安装过程中可能遇到的问题:

 

需要使用sha1sum校验parcel包生成校验文件,不然parcel包不识别

 

allkeys.asc 文件忘记下载,安装Agents会报错

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

官方安装手册

 

http://www.cloudera.com/documentation/enterprise/6/latest/topics/installation.html

 

 

Hdfs参数调优

 

  1. 提高DataNode的堆栈大小。DataNode应该至少有4 GB的堆栈大小,以允许迭代的增加和最大的流

 

 

修改后

 

 

2、设置DataNode平衡带宽

    a、展开DataNode默认组(DataNode Default Group) > 性能(Performance)类别;

    b、根据你的磁盘和网络性能配置DataNode平衡带宽(DataNode Balancing Bandwidth

c、点击保存更改(Save Changes提交更改。

 

3、提高依据迭代设置复制工作乘数器的数值(默认值是2,然而推荐值是10)

    a、展开NameNode默认组(NameNode Default Group) >高级(Advanced)类别;

    b、将配置依据迭代设置复制工作乘数器(Replication Work Multiplier Per Iteration)设置为10

c、点击保存更改(Save Changes提交更改。

 

4、增加复制的最大线程数和最大复制线程的限制数

    a、展开NameNode默认组(NameNode Default Group) >高级(Advanced)类别;

    b、配置Datanode复制线程的最大数量(Maximumnumber of replication threads on a Datanode)和Datanod复制线程的数量的限制数(Hardlimit on the number of replication threads on a Datanod)分别为50和100;

    c、点击保存更改(Save Changes提交更改。

Yarn参数调整

  • mapreduce.map.memory.mbmap任务内存,cdh默认1G
  • mapreduce.map.cpu.vcoresmap任务虚拟CPU核数,cdh默认1
  • mapreduce.reduce.memory.mbreduce任务内存,cdh默认1G
  • mapreduce.reduce.cpu.vcoresreduce任务虚拟CPU核数,cdh默认1
  • yarn.nodemanager.resource.memory-mb,容器内存,cdh默认8G
  • yarn.nodemanager.resource.cpu-vcores,容器虚拟CPU核数,cdh默认8

 

cdh内存分配参考文档

2018年01月29日 16:54:05 adshiye 阅读数:1767

基于以下环境提供参考值: 5台内存32G、cpu8核的服务器,操作系统为centos6.8 
总内存: 160G 
总核数: 40核 
不同的环境可以根据自己环境的总内存以及总内核和这个参考值得出系数,那么:值= 推荐值 X 系数

参数

解释

NameNode 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:维护整个系统的的文件目录树,维护文件/目录的信息和每个文件对应的数据块列表,接受并处理用户的操作请求

至少1GB

dfs.datanode.max.locked.memory

一个DataNode将要用来被做HDFS缓存的内存的最大值

至少256MB

DataNode 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:周期性检测并向NameNode上报其管理的块信息,同时处理namenode给该Datanode的命令

512MB

Failover Controller 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:监控NameNode的健康状态,监控NameNode在zookeeper中的健康状态,监控之后管理NameNode的状态

至少256MB

JournalNode 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:实现两个NameNode的数据同步,active的NameNode做变更的时候,会通知JournalNode 进程,standby的NameNode心跳获取

至少256MB

  • hdfs
  • hive

参数

解释

Hive Metastore Server 的 Java 堆栈大小(字节)

Java 进程堆栈内存的最大大小,改Java进程主要是:为hive、impala、kudu提供元数据管理

1.5GB

HiveServer2 的 Java 堆栈大小

由于我们的系统没有使用到hiveserver2,所以设置小的值,同时可以将它停止

1GB

  • impala

参数

解释

Catalog Server 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:作为meta访问网关,从Hive Metastore等外部catalog中获取元数据信息,放到impala自己的catalog结构中,impalad执行ddl命令时通过catalogd由其代为执行,该更新则由statestored广播

最少256MB

Impala Daemon 内存限制

Java 进程堆栈内存的最大大小,改Java进程主要是:作为客户端,接受客户的查询请求,生成查询计划树,把查询计划分发给其他的Impala Daemon(包括自己),被分配的Impala Daemon读写数据进行查询,并返回改客户端

1GB

  • kafka

参数

解释

Java Heap Size of Broker

kafka broker java 进程堆栈内存的最大大小

至少1GB

  • kudu

参数

解释

Kudu Tablet Server Hard Memory Limit

kudu tablet server最大能使用的内存,kudu写入数据的时候,是将数据先缓存到内存,然后保存到磁盘,如何设置过低,会影响写入的性能

3GB

Kudu Tablet Server Block Cache Capacity

kudu tablet 块缓存的最大内存量

2GB

maintenance_manager_num_threads

kudu对数据管理的时候最大显成熟

4

  • spark

参数

解释

Java Heap Size of History Server in Bytes

spark history server java 进程堆栈内存的最大大小

至少512MB

  • yarn

参数

解释

JobHistory Server 的 Java 堆栈大小

java 进程堆栈内存的最大大小

512MB

NodeManager 的 Java 堆栈

java 进程堆栈内存的最大大小

512MB

容器内存

每个nodemanager为最大可分配的内存

9GB

ResourceManager 的 Java 堆栈大小

java 进程堆栈内存的最大大小

512MB

最小容器内存

单个任务可申请的最少内存量

1GB

容器内存增量

单个任务可申请的内存的增量

512MB

最大容器内存

单个任务可申请的最大内存量

6GB

容器虚拟 CPU 内核

每个nodemanager为最大可分配的内核数量

6

最小容器虚拟 CPU 内核数量

单个任务可申请的最小内核数量

1

容器虚拟 CPU 内核增量

单个任务申请的内核增量

1

最大容器虚拟 CPU 内核数量

单个任务可申请的最大内核数量

1

  • zookeeper

参数

解释

ZooKeeper Server 的 Java 堆栈大小

java 进程堆栈内存的最大大小

至少512MB

  • Cloudera Management Service

参数

解释

Activity Monitor 的 Java 堆栈大小

 

至少1GB

Alert Publisher 的 Java 堆栈

 

至少256MB

EventServer 的 Java 堆栈大小

 

至少1GB

Host Monitor 的 Java 堆栈大小

 

至少1GB

Host Monitor 的最大非 Java 内存

 

至少1.5GB

Service Monitor 的 Java 堆栈大小

 

至少1GB

Service Monitor 的最大非 Java 内存

 

至少1.5GB

 

 

改后

 

 

改后

 

 

改后

 

posted on 2018-12-05 19:59  小人物-烟火  阅读(650)  评论(0编辑  收藏  举报