所需环境
三台Linux centOS 7 系统 16G 最好以上内存
设置主机系统固定IP:
192.168.1.190:Server+agent
192.168.1.191:agent
192.168.1.192:agent
需要下载的东西
cm:http://archive.cloudera.com/cm5/cm/5/
cdh:http://archive.cloudera.com/cdh5/parcels/5.10.1/ centos7 选择el7 x64
mysql conn:下载mysql驱动 https://dev.mysql.com/downloads/connector/j/
现在开始搭建CDH
-
主机和所有节点配置hostname和hosts
vim /etc/sysconfig/network
主机:HOSTNAME=cm 命令 hostnamectl set-hostname cm
节点1:HOSTNAME=cdh1 命令 hostnamectl set-hostname cdh1
节点2:HOSTNAME=cdh2 命令 hostnamectl set-hostname cdh2
所有节点 vim /etc/hosts
添加如下:
192.168.1.190 cm
192.168.1.191 cdh1
192.168.1.192 cdh2
重启让配置生效 service network restart
查看hostname :hostname
ping下各个节点主机名是否能ping通 -
配置ssh 主机到各个节点无命名连接
主机和各个节点都执行如下:
1、ssh-keygen -t rsa 回车 回车 回车
在主节点执行:
2、cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
主机执行如下:
scp ~/.ssh/authorized_keys root@cdh1:~/.ssh/
scp ~/.ssh/authorized_keys root@cdh2:~/.ssh/
修改权限:chmod 600 ~/.ssh/authorized_keys
ssh cdh1 测试免密码是否成功 -
主机和所有节点下载rpm jdk安装
jdk 下载地址
rpm -ivh jdk-7u80-linux-x64.rpm
java -version
配置环境变量echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment -
安装数据库
参考:http://www.cnblogs.com/ianduin/p/7679239.html
yum install mysql-server
启动服务: systemctl start mariadb.service
添加到开机启动: systemctl enable mariadb.service
可以查看mariadb的启动状况: systemctl status mariadb.service
设置root 用户密码:/usr/bin/mysqladmin -u root password 'root'
登录mysql: mysql -uroot -proot
设置root 用户登录权限:
grant all privileges on . to 'root'@'%' identified by 'root' with grant option;
FLUSH PRIVILEGES;
执行如下:
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database nav DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navms DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie_oozie_server DEFAULT CHARSET utf8 COLLATE utf8_general_ci; -
主节点关闭防火墙和selinux
service iptables stop #临时关闭
chkconfig iptables off #重启后生效
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl list-unit-files | grep firewalld.service #查看开机服务是否已关闭
set enforce 0 (临时生效) -
所有节点开启时间同步
参考:
http://www.cnblogs.com/tmeily/p/4422604.html
https://blog.csdn.net/chengqiuming/article/details/78735433 -
正式安装
mv cloudera-manager-el6-cm5.10.1_x86_64.tar.gz /opt/
cd /opt/
tar xzvf cloudera-manager-el6-cm5.10.1_x86_64.tar.gz
cp /mnt/soft/mysql-connector-java-5.1.41-bin.jar /opt/cm-5.10.1/share/cmf/lib/
cp /opt/cm-5.10.1/share/cmf/lib/mysql-connector-java-5.1.41-bin.jar /usr/share/java/mysql-connector-java.jar (这里可能没有share/java 文件可以自己创建,不然到后面会报错)
/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pCD@llxg520 --scm-host localhost scm CD@llxg520
格式是:scm_prepare_database.sh 数据库类型 数据库 服务器 用户名 密码 –scm-host Cloudera_Manager_Server所在的机器,后面那三个不知道代表什么,直接照抄官网的了。 因为我们用的是Mysql数据库,所以我们需要下载Mysql的JDBC驱动,本次从官网上下载最新稳定版:mysql-connector-java-5.1.30.tar.gz,解压之后找到mysql-connector-java-5.1.30-bin.jar放到/opt/cm-5.0.0/share/cmf/lib/目录下。 在后面安装其他组件的时候,它会从/usr/share/java目录下找驱动,然后自动cp,所以为保险起见,建议把mysql的驱动jar包也拷贝到agent节点的/usr/share/java下面(最好把版本和“”bin“”去掉,如mysql-connector-java.jar)
vim /opt/cm-5.10.1/etc/cloudera-scm-agent/config.ini 修改为主节点的主机名 这里是cm
拷贝到各个节点:
scp -r /opt/cm-5.10.1/ root@cdh1:/opt/
scp -r /opt/cm-5.10.1/ root@cdh2:/opt/
主节点和所有节点添加用户:
useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
将CDH包放入正确目录:
将下载的文件.parcel .parcel.sha1 和manifest.json 拷贝到对应目录
.sha1 改为.sha 不然不生效
mv /mnt/soft/CDH-5.10.1-1.cdh5.10.1.p0.10-el6.* /opt/cloudera/parcel-repo/
启用错误:yum -y install psmisc 行102: pstree: 未找到命令
开启服务:/opt/cm-5.10.1/etc/init.d/cloudera-scm-server start
开启节点服务:/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start
查看server日志:tail -f /opt/cm-5.10.1/log/cloudera-scm-server/cloudera-scm-server.log
查看节点日志: tail -f /opt/cm-5.10.1/log/cloudera-scm-agent/cloudera-scm-agent.log
假如先启动的server后放入的cdh包需要重启下不然安装的时候会重新下载 -
开始配置节点
http://192.168.1.190:7180 默认用户名密码为admin
9、碰到的提示
1、cdh[1-2]: IOException thrown while collecting data from host: No route to host
2、Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf,以在重启后保存该设置。您可以继续进行安装,但 Cloudera Manager 可能会报告您的主机由于交换而运行状况不良。以下主机将受到影响:
cm
1解决,关闭1-2的防火墙
2解决,echo 10 >/proc/sys/vm/swappiness
10、运行碰到问题
(1)hdfs启动碰到:java.io.FileNotFoundException: /dfs/nn/current/VERSION (Permission denied)
解决:chown hdfs:root -R /dfs/nn/
(2)报错 Canary 测试无法在目录 /tmp/.cloudera_health_monitoring_canary_files 中创建文件。
解决:sudo -uhdfs hdfs dfsadmin -safemode leave
已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”和“echo never > /sys/kernel/mm/transparent_hugepage/enabled”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。以下主机将受到影响:
运行
echo 10 >/proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
配置离线存储:
http://archive-primary.cloudera.com/cm5/repo-as-tarball/5.10.1/
http://archive-primary.cloudera.com/cdh5/repo-as-tarball/5.10.1/
解压出来: tar -xvf
cm机器配置本地服务:python -m SimpleHTTPServer 8910
访问测试:http://cm:8910/cm/5.10.1/
在安装集群的时候选离线存储安装,因为在线安装很慢
网友评论