1、环境准备
系统:CentOS 6.5版本,64位 内存:24GB 硬盘:60GB CPU:10核
1、检查服务器资源
# free -m # df -h //查看物理cpu个数 # cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l//每个物理cup的核数
# cat /proc/cpuinfo| grep "cpu cores"| uniq 上面两个结果相乘=cup总核数 //结果一共有几核cpu # cat /proc/cpuinfo| grep "processor"| wc -l 结果一共有几核cpu2、配置ip、hostname、映射 (所有服务器)
1)查看文件信息并且追加信息 # vi /etc/sysconfig/network HOSTNAME=cdh1 i插入修改,esc退出,:wq保存退出,:w保存不退出,:q!强制退出 2)重启生效 # service network restart 3)验证 # hostname 4)查看文件信息并且追加信息(所有机器) # vi /etc/hosts 172.23.201.91 cdh1 172.23.201.92 cdh2 172.23.201.93 cdh3 5)验证 # ping www.baidu.com # ping cdh1 6)检查映射是否配好 3、禁用ipv6 1)查看文件信息并且追加信息 vi /etc/modprobe.d/dist.conf # echo "alias net-pf-10 off">>/etc/modprobe.d/dist.conf # echo "alias ipv6 off">>/etc/modprobe.d/dist.conf 2)重启生效 ip a 验证是否成功4、禁用selinux 和关闭防火墙
1)禁用selinux # getenforce 查看selinux状态 # vi /etc/sysconfig/selinux SELINUX=disabled 重启生效 验证:[root@bigdata01 ~]# getenforce Disabled 2)关闭防火墙: # service iptables stop # 设置成开机不启动 # chkconfig iptables off5、JDK安装(所有机器)
1)卸载系统自带的相关安装包 # rpm -qa | grep java # rpm -e --nodeps tzdata-java-2012j-1.el6.noarch java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64 2)创建目录,上传解压jdk # mkdir -p /opt/modules # mkdir -p /opt/softwares # tar zxf jdk-7u67-linux-x64.tar.gz -C /opt/modules 3)配置java环境变量(所有机器) # vi /etc/profile export JAVA_HOME=/opt/modules/jdk1.7.0_67 export PATH=$PATH:$JAVA_HOME/bin 4)配置生效(所有机器) # source /etc/profile 5)拷贝给其他服务器(所有机器) [root@bigdata01 modules]# scp -r ./ root@cdh2:/opt/modules/ [root@bigdata01 modules]# scp -r ./ root@cdh3:/opt/modules/ 6)验证 # java -version6、ssh免密码登录 (所有服务器)
0)ssh 针对用户,并且首先保证ssh localhost正常通畅 ssh localhost 1) 在每台服务器上生成公私密钥 ssh-keygen 2)分发公钥(注意:每次ssh登录后,事情做完后,记得exit) ssh-copy-id -i ~/.ssh/id_rsa.pub localhost ssh localhost exitssh-copy-id -i ~/.ssh/id_rsa.pub cdh1
ssh cdh1 exit ssh-copy-id -i ~/.ssh/id_rsa.pub cdh2 ssh cdh2 exit ssh-copy-id -i ~/.ssh/id_rsa.pub cdh3 ssh cdh3 exit 2)验证: # ssh cdh2 注意:每次ssh登录后,事情做完后,记得exit6、集群系统的时间同步
1)启动ntpd进程服务 service ntpd start chkconfig ntpd on chkconfig --list | grep ntpd 2)修改时间服务器的配置文件 # vi /etc/ntp.conf 注释打开,然后修改为本集群的网段 18 # restrict 172.23.201.0 mask 255.255.255.0 nomodify notrap 注释掉 22 #server 0.centos.pool.ntp.org 23 #server 1.centos.pool.ntp.org 24 #server 2.centos.pool.ntp.org 注释打开,如果系统没有下面信息,需要手动添加 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 3)所有机器启动并且配置开机时启动 # service ntpd start && chkconfig ntpd on && chkconfig --list | grep ntpd 4)更新本地时间 [root@bigdata01 java]# ntpdate -u 202.120.2.101 24 Feb 15:24:11 ntpdate[2408]: step time server 202.112.10.60 offset 4.004597 sec ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址) s1a.time.edu.cn 北京邮电大学 s1b.time.edu.cn 清华大学7、设置用户能打开的文件最大数量、进程最大数据、能使用的内存量 (所有服务器)(soft:警告;hard:停机)
1)查看文件信息并且修改 # vi /etc/security/limits.conf * soft nofile 32728 * hard nofile 1024567 * soft nproc 65535 * hard nproc unlimited * soft memlock unlimited * hard memlock unlimited 2)bigdata01复制limits.conf到其他各台机器 # scp /etc/security/limits.conf root@cdh2.com:/etc/security/limits.conf # scp /etc/security/limits.conf root@cdh3.com:/etc/security/limits.conf 3)重启生效 验证: # ulimit -a注:强调该文件,严格按照格式来改最好通过复制修改,如果limits.conf配置错误,linux重启不能进入,解决办法是单用户进入修改《Linux进入单用户模式.pdf》
==========================系统基本配置结束==============================
一、准备三台机器
cdh1 内存6g cm server db server agent
cdh2 内存2g agent
cdh3 内存2g agent
二、cm的安装
1、分别修改三台机器的hostname 如下图
2、通过 service network restart 重启网络服务生效
3、分别修改三台机器的 ip 与主机名的对应关系
vi /etc/hosts
4、配置cdh1到cdh2和cdh3的ssh免密码登陆
生成无密码密钥对 命令 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cdh1 上分别执行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/id_dsa.pub cdh2:~/.ssh/authorized_keys
scp ~/.ssh/id_dsa.pub cdh3:~/.ssh/authorized_keys
5、所有机器都要关闭防火墙
临时关闭:
service iptables stop 重启后生效: chkconfig iptables off6、所有机器都要关闭 SELINUX
临时关闭:
setenforce 0 修改配置文件/etc/selinux/config(重启生效): 将 SELINUX=enforcing 改为 SELINUX=disabled 查看 SELINUX 状态: 1、/usr/sbin/sestatus –v SELinux status: enabled(enabled:开启;disabled:关闭) 2、使用命令:getenforce7、所有机器都要重启机器 命令reboot
8、所有机器都要安装jdk
1、检查liunx自带的jdk 命令 rpm -qa|grep java
2、卸载liunx自带的jdk
rpm --nodeps -e java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.i686
rpm --nodeps -e java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.i686
rpm --nodeps -e tzdata-java-2012j-1.el6.noarch
3、安装jdk(1)、在/usr/local/下新建一个java文件夹 命令mkdir /usr/local/java。
(2)、解压jdk-7u80-linux-x64.tar.gz 命令 tar -zxvf jdk-7u80-linux-x64.tar.gz
(3)、删除压缩文件 命令 rm jdk-7u80-linux-x64.tar.gz
(4)、修改文件名 命令 mv jdk1.7.0_80/ jdk
(5)、配置java环境变量 命令 vi /etc/profile 添加内容
export JAVA_HOME=/usr/local/java/jdk
export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOMdE/lib/dt.jar:$JAVA_HOME/lib/tools.jar保存退出 让刚才的设置立即生效 命令 source /etc/profile。
(6)、把jdk软连接到/usr/java/default首先查看是否有/usr/java目录,没有的话新建此目录:mkdir /usr/java。然后添加软连接到/usr/java/default,命令如下:ln -s /usr/local/java/jdk /usr/java/default
为什么要添加软连接到/usr/java/default?这是因为有些软件,不会去找环境变量的java,而是找/usr/java下的,比如说cloudera manager在部署最后的spark时,一直报“上的客户端配置 (id=3) 已使用 1 退出,而预期值为 0”这个错误,其中一个原因就是访问java访问不到,参考:cloudera manager报错“客户端配置 (id=3) 已使用 1 退出,而预期值为 0”9、所有机器都要设置ntp时间同步
所有节点安装 NTP:
yum -y install ntp 配置开机启动: chkconfig ntpd on 检查是否设置成功: chkconfig --list ntpd (2-5 为 on 状态则成功) 设置同步: ntpdate -u ntp.sjtu.edu.cn(时钟服务器根据实际环境设置、本文采用 210.72.145.44-国家授时 中心服务器 IP 地址)10、在cdh1上安装 MySql
rpm -qa | grep mysql 查看机器上的mysql信息
rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps 删除已安装的mysql
rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm --force --nodeps 安装mysql 服务端
rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm --force --nodeps 安装mysql 客户端
mysql> use mysql;
mysql> UPDATE user SET password=password("root") WHERE user='root'; 修改mysql密码
mysql>GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 允许用mysql客户端远程登陆mysql服务
mysql> flush privileges;
mysql> exit;
登陆mysql
mysql -u root -proot
也可以通过yum install -y mysql-server mysql mysql-devel安装
安装好后通过service mysqld restart 启动mysql服务
如果启动失败 尝试下面方法
- rm -fr /var/lib/mysql/*
- m /var/lock/subsys/mysqld
- killall mysqld
- 在重启 service mysqld start
- yum的方式安装mysql第一次没有密码
11、所有机器都要下载依赖包
yum -y install chkconfig
yum -y install python (2.6 required for CDH 5) yum -y install bind-utils yum -y install psmisc yum -y install libxslt yum -y install zlib yum -y install sqlite yum -y install cyrus-sasl-plain yum -y install cyrus-sasl-gssapi yum -y install fuse yum -y install portmap yum -y install fuse-libs yum -y install redhat-lsb12、Cloudera Manager Server和Agent
(1) 、 安装 Cloudera Manager Server&Agent
拷贝 cloudera-manager-el6-cm5.4.3_x86_64.tar.gz 到所有 Server、Agent 节点
创建 cm 目录: mkdir /opt/cloudera-manager 解压 cm 压缩包: tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager(2) 、 创建用户 cloudera-scm ( 所有节点)
执行: useradd --system --home=/opt/cloudera-manager/cm-5.4.3/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm(3)、 配置 CM Agent
修改所有机器文件/opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini 中
server_host 以及 server_port(4)、 在cdh1上 配置 CM Server 的 数据库
• 拷贝mysql jar文件到目录 /usr/share/java/
• 注意jar包名称要修改为mysql-connector-java.jar • 在mysql客户端上mysql库执行grant all on *.* to 'temp'@'%' identified by 'temp' with grant option; 来创建一个临时账户 表示 允许任意机器用temp用户的temp密码来登录mysql数据库 • cd /opt/cloudera-manager/cm-5.4.3/share/cmf/schema/ • ./scm_prepare_database.sh mysql temp -h cdh1 -uroot -proot --scm-host cdh1 scm scm scm • 格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器出现如下图表示配置成功
• drop user 'temp'@'%';(5)、 创建 Parcel 目录
在server端(cdh1) 节点创建目录/opt/cloudera/parcel-repo,执行:
mkdir -p /opt/cloudera/parcel-repo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo 将下载好的文件(CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel、CDH-5.4.0-1.cdh5.4.0.p0.27- el6.parcel.sha、manifest.json)拷贝到该目录下。CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha 这个文件下载下来的时候是CDH-5.4.0-1.cdh5.4.0.p0.27-
el6.parcel.sha1 要把后面的1去掉如果没有CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha这个文件需要制作 制作方法如下
制作CDH本地源
• 下载好文件CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel以及manifest.json,将这两个文件放到server节点的 /opt/cloudera/parcel-repo下。 • 打开manifest.json文件,里面是json格式的配置,找到与下载版本相对应的hash码,新建文件,文件名与你的 parel包名一致,并加上.sha后缀,将hash码复制到文件中保存。 Agent (所有机器)节点创建目录/opt/cloudera/parcels,执行: mkdir -p /opt/cloudera/parcels chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels(6)、 启动 CM Manager和Agent
执行:
Server端(cdh1):/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-server start查看日志文件/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server/cloudera-scm-server.log
出现如下图表示server启动成功 Agents端(所有节点):/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-agent start 访问:http://192.168.52.151:7180,若可以访问(用户名、密码:admin),则安装成功。Manager 启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。
三、CDH5 5
1、免费版本的 CM5 已经去除 50 个节点数量的限制。
通过在所有机器上执行命令echo 0 > /proc/sys/vm/swappiness 即可解决上面的问题。
在点击问题解决
选择要添加的组件
根据自己需要分配主机
一直点继续
安装完成后,就可以进入集群界面看一下集群的当前状况了
四、cdh 安装hive
1、添加服务
2、选择hive
3、选择hive的依赖
4、选择在哪个机器上安装hive
5、添加数据库
create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO 'root'@'%' IDENTIFIED BY 'root';6、选择 hive的仓库目录
7、检查环境
8、出现如下界面表示安装成功