本文为个人安装CDH时记录,不具普适性,仅供参考。建议对比官方文档阅读。
一 依赖检查
以centos7为例
1. 软件
https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_os_requirements.html
0. 常用软件安装
此步骤非必须
yum install -y bind-utils
1. python
使用2.7版本或以上版本,但不支持3
centos7 中默认已包含,如果有多版本需设置PYSPARK_PYTHON和
PYSPARK_DRIVER_PYTHON环境变量
# 查看版本
python --version
2. Perl
一般已安装
# 查看版本
perl -v
3. python-psycopg2
# 要先安装epel-release,,这个包包含了 EPEL 源的 gpg 密钥和软件源信息,该软件包会自动配置yum的软件仓库
# 否则下一步会提示:没有可用软件包 pip-python
yum -y install epel-release
# 安装pip
yum -y install python-pip
# 使用pip 安装 psycopg2
pip install psycopg2==2.7.5 --ignore-installed
2. 网络
禁用ipv6
https://www.jianshu.com/p/225d040d0b66
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
reboot
netstat -lnpt
配置hostname
https://docs.cloudera.com/documentation/enterprise/6/latest/topics/configure_network_names.html
用全称域名,如:paas-201.adp.com 而不是 paas-201
- 配置hostname
sudo hostnamectl set-hostname foo-1.example.com
- 编辑/ets/hosts(集群统一)
1.1.1.1 foo-1.example.com foo-1
2.2.2.2 foo-2.example.com foo-2
3.3.3.3 foo-3.example.com foo-3
4.4.4.4 foo-4.example.com foo-4
- 编辑/etc/sysconfig/network
echo "HOSTNAME=$HOSTNAME" >>/etc/sysconfig/network
关闭防火墙
# 保存规则
sudo iptables-save > ~/firewall.rules
# 关闭
sudo systemctl disable firewalld
sudo systemctl stop firewalld
3. 关闭SELinux
查看是否已经关闭
getenforce
关闭方法:
修改/etc/selinux/config
SELINUX=permissive
并执行 setenforce 0 立即生效
4. 启用ntp
安装后用以下命令进行验证
systemctl status chronyd.service
chronyc sources -v
chronyc sourcestats -v
二 安装
一. 配置本地仓库
1. 配置web服务器
- 安装
sudo yum install httpd
需保证/var/www磁盘空间足够,建议挂载,这里假设 /home/www 有足够的空间
mv /var/www /var/www2
mkdir /home/www
ln -s /home/www /var/www
mv /var/www2/* /var/www/
rm -rf /var/www2
ls /home/www
- 启动
sudo systemctl start httpd
2. 下载文件(clouderaManager和cdh)
sudo mkdir -p /var/www/html/cloudera-repos/cm6
tar xvfz cm6.3.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6 --strip-components=1
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6
- cdh
sudo mkdir -p /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cdh6/6.3.2/redhat7/ -P /var/www/html/cloudera-repos
sudo wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/gplextras6/6.3.2/redhat7/ -P /var/www/html/cloudera-repos
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/gplextras6
访问 http://
3. 配置使用本地存储库
创建/etc/yum.repos.d/cloudera-repo.repo
内容如下:
[cloudera-repo]
name=cloudera-repo
baseurl=http://paas-241/cloudera-repos/cm6
enabled=1
gpgcheck=0
三. 安装CDH
1. 安装java
yum install -y oracle-j2sdk1.8
2. 安装CM
yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
3. 安装数据库
假设使用mysql且已安装
在cm服务器上:
1. 安装jdbc驱动
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar zxvf mysql-connector-java-5.1.46.tar.gz
sudo mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
2. 创建数据库并授权
登录mysql进行配置:
mysql -u root -h 192.168.10.200 -p
执行以下命令:假设数据库为cdh 授权用户为root,密码为123456
CREATE DATABASE cdh DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON cdh.* TO 'root'@'%' IDENTIFIED BY '123456';
SHOW DATABASES;
SHOW GRANTS FOR 'root'@'%';
3. 执行创建脚本
/opt/cloudera/cm/schema/scm_prepare_database.sh -h 192.168.10.200 mysql cdh root 123456
四 启动
sudo systemctl enable cloudera-scm-server
sudo systemctl start cloudera-scm-server
sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
直到看到:
INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
则说明启动完成,打开
http://paas-241:7180 即可 admin/admin
注意配置自定义仓库:
http://192.168.10.241/cloudera-repos/cdh6/6.3.2/redhat7/yum/
方法是数据表
Q.E.D.