修改主机名,并使之生效; 修改:vim etc/sysconfig/network
统一设置集群host(修改集群中每个节点的hosts文件):vim /etc/hosts
less /etc/localtime检查时区看最后一行是否是CST-8,如果不是,执行以下命令修改。
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
因为hdp中有服务需要集群的时间同步,所以集群中的每一个机器需要安装启动ntp服务保证集群时间的一致,安装启动如下所示:
for host in node{1,2,3};do ssh root@$host yum install ntp -y; ssh root@$host; done
配置NTP同步:
服务端:
node1作为ntp server,其他节点与其同步
ntpdate -u 202.112.10.36 //可不执行,目的是与网络同步
修改时间:date -s "2018-3-1 15:58:00" //当前时间
写入硬件:clock -w
配置服务端:
vi /etc/ntp.conf
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
在# Please consider joining the pool (http://www.pool.ntp.org/join.html)后添加两行:
server 127.127.1.0
fudge 127.127.1.0 stratum 10 #后面的数字在0-15之间都可以,这样就将该机器作为ntp服务器提供给客户端
service ntpd start 或者 /etc/init.d/ntpd start
chkconfig ntpd on #设置为自启动
检查端口是否开启:如果正常可以看见123端口
netstat -unlp
客户端:
vi /etc/ntp.conf
在# Please consider joining the pool (http://www.pool.ntp.org/join.html) 后面添加:
server node1
保存
ntpdate node1 #client端ntp服务未启动时执行
service ntpd start 或者 /etc/init.d/ntpd start
chkconfig ntpd on #设置为自启动
因为集群中的线程之间需要互相通信,所以需要合理配置防火墙,最简单的方式是直接关闭防火墙。操作如下所示:
for host in node{1,2,3};do ssh root@$host /etc/init.d/iptables stop; ssh root@$host chkconfig iptables off; done
或者:
service iptables stop
service ip6tables stop
设置成始终保持关闭:
chkconfig iptables off
chkconfig ip6tables off
因为在ambari和hdp部署过程中,ambari和hdp部署的节点都有可能互相访问,所以建议四个节点中的每个节点之间都可以ssh无密码登录,包括它们自己登录到自己。
在Node1机器上执行如下操作,首先查看该用户根目录下的.ssh文件夹中是否有id_rsa文件,如果没有执行ssh-keygen命令,一路回车,然后查看生成的文件,为了避免之后的麻烦,建议将该目录下所有文件的权限修改成600,本文档部署在ambari机器上的操作如下所示,其他机器类似:
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
当所有节点都执行完以上命令后,在node1机器上执行如下将命令
for host in node{2,3};do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
在node2机器上执行如下将命令
for host in node{1,3};do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
在node3机器上执行如下将命令
for host in node{1,2};do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
查看有哪些jdk包:
rpm -qa|grep java
卸载自带的openJDK
rpm -e --nodeps tzdata-java-2017b-1.el6.noarch
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.144-0.b01.el6_9.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.144-0.b01.el6_9.x86_64
rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.144-0.b01.el6_9.x86_64
下载OracleJDK并上传至/usr/java目录下
tar -zxvf jdk-----.tar.gz
配置环境变量
vi /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_60
PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java -version
rpm -qa|grep perl
yum install perl
[root@cdh opt]# cat /proc/sys/vm/swappiness
60
在/etc/sysctl.conf 文件里添加如下参数:
vm.swappiness=10
或者:[root@cdh opt]# echo 'vm.swappiness=10'>> /etc/sysctl.conf
[root@cdh opt]# cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
[always] madvise never
修改/etc/rc.local文件并添加以下两行
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html#CM5.14.0
解压tar包:tar -zxvf cloudera-manager-el6-cm5.13.1_x86_64.tar.gz
解压后有cloudera和cm-5.13.1两个目录
移动这两个目录到安装目录下,如/opt: mv cloudera cm-5.13.1 /opt/
地址:http://archive.cloudera.com/cdh5/parcels/latest/
把安装包放到/opt/cloudera/parcel-repo/目录下:`mv CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha manifest.json /opt/cloudera/parcel-repo/`
并修改CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1名称为CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha,否则识别不到,选择CDH版本的时候看不到:`mv CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1 CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha`
官网:https://dev.mysql.com/downloads/connector
下载:`wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz`
解压:`tar -zxvf mysql-connector-java-5.1.45.tar.gz`
放到/usr/share/java目录下(先查看目录是存在,不存在先创建目录):`cp mysql-connector-java-5.1.45-bin.jar /usr/share/java/mysql-connector-java.jar`
或者放到目录/opt/cm-5.13.1/share/cmf/lib/下。
前者安装hive的时候可以直接使用,后者会找不到,需要再执行一次命令:`cp /opt/cm-5.13.1/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/hive/lib/`
vim /opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini
server_host为cm server的主机名或ip
server_port为server的通讯端口,默认为7182
scp -r /opt/cm-5.13.1 IP:/opt
useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
8.1 在mysql上新建数据库:cmf(cloudera manage数据库)、hive(hive数据库)、amon(cloudera Acrivity Monitor使用)、rman(cloudera Reports Manager使用)
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database cmf DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database hive_monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
8.2 设置cmf连接信息:`/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh mysql -hhost29 --scm-host host28 cmf usrname password`
命令说明:/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh 数据库类型 -h数据库主机 --scm-host cm主机 数据库名称 用户名 密码
具体参数可参看官网[https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_installing_configuring_dbs.html#concept_i2r_m3m_hn__section_qjj_pyp_bm][3]
8.3 查看配置文件,发现信息已写入:`vim /opt/cm-5.13.1/etc/cloudera-scm-server/db.properties`
启动server: /opt/cm-5.13.1/etc/init.d/cloudera-scm-server start (只启动主节点上的一个server)
启动agent: /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start
在浏览器输入http://IP:7180登录cm(ip替换为cm server主机ip,端口为server的http服务端口,默认为7180),用户名密码均为admin
选择免费或者试用版都可以,如果没有用到高级功能 ,试用版到期也没什么影响,可继续使用。
各个节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择你要使用节点就可以了,基本上全选。
选择CDH版本这里会显示你放在/opt/cloudera/parcel-repo/下的parcel包,若未显示,则检查CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1是否名称未改为CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha,修改之后重启server服务和agent服务。
这里第一个和第二个警告,按页面提示的设置方法设置即可,第三个警告是jdk版本不对,不能使用openjdk,需要oracle jdk。
每个节点上都设置一下:
执行:`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`
若安装过程中中断,再次继续安装时,可能出现主机受管情况:
此时停止所有cm服务,删除cmf数据库,重新初始化cmf数据库即可。
删除数据库:进入mysql,执行drop database cmf;
create database cmf DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
卸载挂载点:umount cm-5.13.1/run/cloudera-scm-agent/process
清除所欲节点的agent uuid信息:rm -rf cm-5.13.1/lib/cloudera-scm-agent/*
注意:一定要先卸载挂载点,否则会提示无法删除:rm: 无法删除"cm-5.13.1/run/cloudera-scm-agent/process": 设备或资源忙
选择要安装的服务,可直接选择组安装,或自定义安装
填写事先建好的数据库信息
继续操作,保持默认选项即可。
注意: 若修改了hdfs的存储文件夹,一定要确定文件夹已经存在,并确保访问权限。否侧hdfs会无法启动,并且报错文件夹不存在。
1、No portmap or rpcbind service is running on this host. Please start portmap or rpcbind service before attempting to start the NFS Gateway role on this host.
在安装 NFS Gateway那个节点上安装rpcbind:
安装:`yum install rpcbind`
启动:`service rpcbind start`
在安装Hive Metastore Server服务的那台机器上操作:
cp /opt/cm-5.13.1/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/hive/lib/
Logon denied for user/password. Able to find the database server and database, but logon request wa
方法一:失败
设置root授权访问以上所有的数据库
mysql>grant all privileges on *.* to 'root'@'主机名' identified by 'msql密码' with grant option;
mysql>flush privileges;
方法二:成功
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user;
41:新密码,0:没有密码,16:旧密码
将为0的设置一下密码,连接即可
mysql>SET PASSWORD FOR 'root'@'127.0.0.1'=PASSWORD('123456');
mysql>flush privileges;
查看server日志:/opt/cm-5.13.2/log/cloudera-scm-server/cloudera-scm-server.log
解决办法:
安装 :yum install libxslt.so.1 -y 失败
安装:成功
yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel