https://blog.csdn.net/qq_22946601/article/details/82382931html
1.虚拟机准备,网络配置,host配置,无秘配置,防御墙关闭,ntp服务java
cdh-node1 192.168.128.221node
cdh-node2 192.168.128.222mysql
cdh-node3 192.168.128.223linux
yum install httpdsql
或者你能够直接输入命令数据库
yum install -y httpdubuntu
设置Apache开机启动vim
chkconfig httpd oncentos
启动httpd服务
service httpd start
3.Linux swappiness参数(全部节点)
为了不服务器使用swap功能而影响服务器性能,通常都会把vm.swappiness修改成0(cloudera建议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
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卸载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';
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.server中basedir的相关路径,改成自定义的路径,默认路径是/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 Manager包yum源(主节点)
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安装)
选择服务安装节点(namenode与secondaryNameNode尽可能不要放在一个节点,我这里当时比较随意没注意,后续能够迁移)
填入以前建立的库名用户密码,测试链接success后continue
各项配置
初次运行
完成
安装过程当中可能遇到的问题:
须要使用sha1sum校验parcel包生成校验文件,否则parcel包不识别
allkeys.asc 文件忘记下载,安装Agents会报错
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
官方安装手册
http://www.cloudera.com/documentation/enterprise/6/latest/topics/installation.html
Hdfs参数调优
修改后
二、设置DataNode平衡带宽
a、展开DataNode默认组(DataNode Default Group) > 性能(Performance)类别;
b、根据你的磁盘和网络性能配置DataNode平衡带宽(DataNode Balancing Bandwidth);
c、点击保存更改(Save Changes)提交更改。
三、提升依据迭代设置复制工做乘数器的数值(默认值是2,然而推荐值是10)
a、展开NameNode默认组(NameNode Default Group) >高级(Advanced)类别;
b、将配置依据迭代设置复制工做乘数器(Replication Work Multiplier Per Iteration)设置为10;
c、点击保存更改(Save Changes)提交更改。
四、增长复制的最大线程数和最大复制线程的限制数
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参数调整
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 |
参数 |
解释 |
值 |
Hive Metastore Server 的 Java 堆栈大小(字节) |
Java 进程堆栈内存的最大大小,改Java进程主要是:为hive、impala、kudu提供元数据管理 |
1.5GB |
HiveServer2 的 Java 堆栈大小 |
因为咱们的系统没有使用到hiveserver2,因此设置小的值,同时能够将它中止 |
1GB |
参数 |
解释 |
值 |
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 |
参数 |
解释 |
值 |
Java Heap Size of Broker |
kafka broker java 进程堆栈内存的最大大小 |
至少1GB |
参数 |
解释 |
值 |
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 |
参数 |
解释 |
值 |
Java Heap Size of History Server in Bytes |
spark history server java 进程堆栈内存的最大大小 |
至少512MB |
参数 |
解释 |
值 |
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 Server 的 Java 堆栈大小 |
java 进程堆栈内存的最大大小 |
至少512MB |
参数 |
解释 |
值 |
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 |
改后
改后
改后