CDH6的RPM包地址:
下载CM6.1的安装包
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/allkeys.asc
下载CDH6.1的安装包
https://archive.cloudera.com/cdh6/6.1.0/parcels/CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel
https://archive.cloudera.com/cdh6/6.1.0/parcels/CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256
https://archive.cloudera.com/cdh6/6.1.0/parcels/manifest.json
1、修改主机名称 (hostnamectl 查看主机名称)
/etc/hosts
/etc/hostname 这里面不要放IP
/etc/sysconfig/network 这里面不要放IP
nc -w id 7182
2、防火墙一些端口放开(生产上不会关闭防火墙,所以放开特定端口)
3306/tcp 7180/tcp 7182/tcp 36929/tcp 123/tcp 123/udp 80/tcp 9000/tcp 9001/tcp
systemctl start firewalld 开启防火墙
重新载入:firewall-cmd --reload (你放开端口之后,要重新载入)
firewall-cmd --permanent --zone=public --add-port=3306/tcp
3、关闭selinux
vim /etc/selinux/config
SELINUX=disabled
4、ntp的安装和启动 (时钟同步)
#server安装
rpm -ivh ntp-4.2.6p5-28.el7.centos.x86_64.rpm
ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm
libopts-5.18.12-alt2.x86_64.rpm
vi /etc/ntp.conf
添加
server 127.127.1.0 iburst local clock
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
systemctl start ntpd
systemctl status ntpd
#slave安装
rpm -ivh ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm --nodeps --force
ntpdate ip
这里有问题可能是ntpdate的问题找到进程杀掉
创建定时任务,每隔10分钟同步一次时间
crontab -e
*/10 * * * * /usr/sbin/ntpdate IP
这里可能会出现问题,ntpdate和ntp一起会有问题,所以你启动ntp之后看下状态,可以把ntpdate的进程杀掉(ps -ef|grep ntpdate)
5、安装JDK(不要用原生的,原生是坑)每个节点都要
jdk-8u181-linux-x64.tar.gz
mkdir /usr/java
tar -zxvf jdk-8u45-linux-x64.gz -C /usr/java
cd /usr/java/
ll
chown -R root:root /usr/java/jdk1.8.0_45
这里最好把java目录及其子目录改成755或者777 后面启动主节点的时候启动不了,还不在指定CM输出日志,看系统日志找不到JDK或者java下面某个文件没权限访问
vi /etc/profile
添加
export JAVA_HOME=/usr/java/jdk1.8.0_45
export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
{JAVA_HOME}/bin:
JAVAHOME/bin:{PATH}
source /etc/profile
which java
在/usr/share/java路径下放入mysql的驱动包mysql-connector-java-5.1.47.jar 记得改名字 (改成mysql-connector-java.jar)
6、SSH免密码登录
ssh-keygen -t rsa 每个节点都要
ssh-copy-id 主节点名称 后面需要输入密码 所有节点都要
scp /root/.ssh/authorized_keys node02.hadoop.com:/root/.ssh/ 第一台机器分发其他节点
7、mysql安装
安装好之后,数据库的创建
grant all privileges on . to ‘root’@’%’ identified by ‘123456’;
create database scm default character set utf8 default collate utf8_general_ci; 这个是CM的库后面设置会用到
grant all on scm.* to ‘scm’@’%’ identified by ‘123456’;
create database amon default character set utf8 default collate utf8_general_ci; 这个是集群监控数据库 zookeeper
grant all on amon.* to ‘amon’@’%’ identified by ‘123456’;
create database rman default character set utf8 default collate utf8_general_ci;
grant all on rman.* to ‘rman’@’%’ identified by ‘123456’;
create database hue default character set utf8 default collate utf8_general_ci; hue的数据库
grant all on hue.* to ‘hue’@’%’ identified by ‘123456’;
create database metastore default character set utf8 default collate utf8_general_ci;
grant all on metastore.* to ‘hive’@’%’ identified by ‘123456’; hive的数据库
create database sentry default character set utf8 default collate utf8_general_ci;
grant all on sentry.* to ‘sentry’@’%’ identified by ‘123456’;
create database nav default character set utf8 default collate utf8_general_ci;
grant all on nav.* to ‘nav’@’%’ identified by ‘123456’;
create database oozie default character set utf8 default collate utf8_general_ci;
grant all on oozie.* to ‘oozie’@’%’ identified by ‘123456’; oozie的数据库
flush privileges;
8、解除linux系统打开文件最大数量的限制
vi /etc/security/limits.conf
- soft noproc 11000
- hard noproc 11000
- soft nofile 65535
- hard nofile 65535
9、设置linux交换区内存
两台机器都要执行
执行命令
echo 10 > /proc/sys/vm/swappiness
并编辑文件sysctl.conf:
vim /etc/sysctl.conf
添加或修改
vm.swappiness = 0 (新增)
两台机器都要执行:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
并编辑文件rc.local :
vim /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
10、CDH开始
server:
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force 安装rpm包 一定不要忘记–nodeps --force (很多网上没有用这个,后面会报缺少依赖,这是巨坑)
cd /etc/cloudera-scm-server/
vi db.properties 配置
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=node01
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=123456
com.cloudera.cmf.db.setupType=EXTERNAL
vi /etc/cloudera-scm-agent/config.ini 修改server_host=node01
agent:
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
vi /etc/cloudera-scm-agent/config.ini 修改server_host=node01(这里是主节点的名称)
安装完之后,把parcel的3个文件做成本地源 需要httpd(安装),放入/var/www/html下面(记得修改sha这个包的名称)
如果访问页面
这里没有CDH的版本,你可以把parcel的3个文件放入到
如果CDH版本还不出来,sha1sum /opt/cloudera/parcel-repo/CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel 得出的数字复制到.sha 文件中重新启动就好了
安装好之后就是页面的选择,页面选择hdfs的时候需要指定磁盘、(后面没截图了)
hive和hadoop 环境搭建好之后,不能在hive插入数据,原因其实是root不是hadoop的超级用户,su hdfs 进入hdfs超级用户 hadoop fs -chmod -R 777 /user 给这下面所有文件赋权限(可以在访问hadoop的页面去清楚看到权限)
执行hive查询的时候出现卡是(kill command不动):去设置yarn的内存,直接在yarn里面输入内存,修改容器内存,这里的“容器内存”这个解释误很坑,开始我以为这个参数是设置每个container容器的内存大小,于是没有管,后来发现这个参数是设置集群中某个计算节点分配给nodemanager的最大可用内存,这个最大可用内存不是该节点最大内存,而是该节点最大内存划分出来的给nodemanager使用的内存。把这个参数增大到20G,hive查询可以顺利执行
增加节点发现的问题:
1、java目录没权限访问,把整个目录权限修改成755
2、通过hive建表的时候涉及json格式的时候出现报错(org.openx.data.jsonserde.JsonSerDe和org.apache.hive.hcatalog.data.JsonSerDe这2个报错),有2个问题
需要把hive 目录下jars的这个目录下hive-hcatalog-core-xx.jar包放入到hadoop的yarn目录,hive、mapreduce和spark的lib下
把hive-hcatalog-core-xx.jar和json-serde-1.3.7-jar-with-dependencies.jar(网上下载)这个jar包放到hive的aulib目录下(记得修改权限为755)
然后关于内存分配: