首先在PC机里面安装好VMWare,xshell,xftp
确保电脑的虚拟化技术已开启,Virtualization Technology(VT),中文译为虚拟化技术,英特尔(Intel)和AMD的大部分CPU均支持此技术,名称分别为VT-x、AMD-V。进入BIOS可以查看。
然后打开VMWare软件
|
cdh1 |
cdh2 |
cdh3 |
内存 |
10g/8g |
2g/1.5g |
2g/1.5g |
磁盘 |
>=30g |
>=30g |
>=30g |
已上是配置cdh的基本配置参数,内存分配8-1.5-1.5是最小分配,对应电脑内存12g。
实际生产环境中cdh1 一般配置64g内存
关键步骤见下面截图
ISO系统文件同样在云盘中:http://pan.baidu.com/s/1i5FI1hj
安装好后一开始Xshell外部客户端是连接不进去的,通过VMWare来操作Centos配置网络
下图不是必须用223网段,只是需要记住你自己的网段就好,方便后面在Linux中配置网络
就多加NETMASK、GATEWAY、IPADDR
vi /etc/sysconfig/network-scripts/ifcfg-eth0
配置好网卡重启服务:
service network restart
vi /etc/resolv.conf
nameserver 192.168.223.99
nameserver 8.8.8.8
ping 192.168.223.99
ping www.baidu.com
以上两条命令确保网络设置OK
ping命令退出 ctrl+c
service iptables stop
chkconfig iptables off
vi /etc/hosts
192.168.223.11 cdh1
192.168.223.12 cdh2
192.168.223.13 cdh3
为了方便后面搭建各种集群
vi编辑器:
进入后输入是i,保存退出是 按住esc,然后shift+: ,wq 回车
挂载镜像到/mnt目录下: mount/dev/cdrom /mnt
尝试yum安装: yum -y installtelnet
测试网络连接: ping www.baidu.com
修改nameserver: vi/etc/resolv.conf
nameserver 192.168.1.1
配置本地源: vi/etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=file:///mnt/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
如上注释mirrorlist,将baseurl修改为红色内容,其它配置可全部删除。保存退出后执行下面两条命令:
yum makecache
yum -y install telnet
成功yum安装telnet后安装man手册和vim编辑器: yum -yinstall man vim
上传rpm包到虚拟机并安装:rpm -ivh jdk-7u67-linux-x64.rpm
(安装和我一样的cdh版本请使用jdk-7u67-linux-x64.rpm,网盘地址:http://pan.baidu.com/s/1o7FXZ54)
查看java版本: java –version
不用去修改vi /etc/profile,全局的环境变量
对应在公司一台服务器可以会有多人使用,所以我们通常要修改
如果全局,就放到/etc/profile.d/jdk.sh
vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
如果局部,就放到用户的~/.bash_profile
vi ~/.bash_profile
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
执行命令使配置立即生效: source ~/.bash_profile
已上配置红色的default是软链接指向latest,latest再指向jdk1.7.0_67
安装ntp服务:yum -y installntp
设置开机自启动:chkconfig ntpd on
启动ntp服务:service ntpdstart
同步时间:ntpdate -u 1.cn.pool.ntp.org
-u是使用一个非特权端口发送数据包,防火墙问题。但是主动向外产生相关包默认不链接。
配置自动同步的服务:vi /etc/ntp.conf
server 1.cn.pool.ntp.org
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
在创建一台虚拟机后,修改网络,以及安装完JDK后,克隆其他节点只是不到一分钟的事情
虚拟机关闭状态下右击-管理-克隆
vi/etc/sysconfig/network-scripts/ifcfg-eth0
需要再次修改网卡,(这次删除UUID以及HWADDR两行)修改IPADDR的值
删除之前的mac
rm -rf /etc/udev/rules.d/70-persistent-net.rules
修改节点名称
vi /etc/sysconfig/network
init 6 或者 reboot 重启即可
然后还是PING命令确保可以上网
在每一台机器上执行:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
配置cdh1免密钥登录到cdh2:在cdh1上:
scp ~/.ssh/id_dsa.pub root@cdh2:/home
按提示输入yes和cdh2的root登录密码,拷贝成功后在cdh2上执行:
cat /home/id_dsa.pub >>~/.ssh/authorized_keys
在cdh1机器上测试:ssh cdh2
同理配置cdh1到cdh3免密钥登录等。。
此处适合建立快照
vim /etc/selinux/config
SELINUX=disabled
yum 安装或者,rpm安装,percona公司的也行
cdh1上安装mysql
# yum -y install mysql-server mysql
# chkconfig mysqld on
# service mysqld start
可以使用
/usr/bin/mysql_secure_installation
执行此命令时注意disallow root login 时输入 n,
# mysql 测试一下
mysql> grant all on *.* to 'cdh'@'%'identified by 'cdh' with grant option;
mysql> flush privileges;
cdh是mysql中带授权的用户
# mysql -u cdh -p
所有节点都安装
yum -y install chkconfig python bind-utilspsmisc libxslt zlib sqlite fuse fuse-libs redhat-lsb cyrus-sasl-plaincyrus-sasl-gssapi
本地yum源
ok,可以开始安装了
NAT模式
192.168.223.11 cdh1
192.168.223.12 cdh2
192.168.223.13 cdh3
|
cdh1 |
cdh2 |
cdh3 |
内存 |
10g/8g |
2g/1.5g |
2g/1.5g |
磁盘 |
>=30g |
>=30g |
>=30g |
# cd /tmp (上传cloudera-manager-el6-cm5.4.3_x86_64.tar.gz到/tmp目录下)
# mkdir -p /opt/cloudera-manager
# tar xfcloudera-manager-el6-cm5.4.3_x86_64.tar.gz -C /opt/cloudera-manager
scp的时候注意相对路径
# cd /opt
# scp -r * cdh2:/opt
# scp -r * cdh3:`pwd`
在cdh1、cdh2、cdh3上增加用户
# useradd -r -d/opt/cloudera-manager/cm-5.4.3/run/cloudera-scm-server -M -c "Cloudera SCMUser" cloudera-scm
# id cloudera-scm (查看用户)
在cdh1、cdh2、cdh3上配置
# cd/opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/
修改server_host为cdh1,都指向cm,即cdh1
[General]
# Hostname of the CM server.
server_host=cdh1
或使用sed修改
# sed -i's/server_host=.*/server_host=cdh1/'/opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini
在cdh1上准备mysql的jar包
# mkdir -p /usr/share/java
/usr/share/java中放入jar包,将jar包的名字修改为mysql-connector-java.jar,把它放到下面的目录中。当然这一步放在cdh1上做。
准备数据库、表
在/opt/cloudera-manager/cm-5.4.3/share/cmf/schema/下有scm_prepare_database.sh --help
解释如下:
scm_prepare_database.sh [options](postgresql|mysql|oracle) database username [password]
-u是创建scm数据库的用户;username是创建了scm库后访问它的用户
# cd/opt/cloudera-manager/cm-5.4.3/share/cmf/schema/
# ./scm_prepare_database.sh-h192.168.223.11 -P3306 -ucdh -pcdh --scm-host cdh1 mysql scm scmuser scmpwd
使用密码为cdh的cdh数据库用户,Scm主机是cdh1,数据库类型是mysql,库名为scm,用户名为scmuser,密码为scmpwd
准备仓库目录,在cdh1上
# mkdir -p /opt/cloudera/parcel-repo
# chown cloudera-scm:cloudera-scm/opt/cloudera/parcel-repo
cdh1、cdh2、cdh3都需要准备存储parcel的目录
# mkdir -p /opt/cloudera/parcels
# chown cloudera-scm:cloudera-scm/opt/cloudera/parcels
制作本地CDH源
安装包
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对应的hash码和CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha的一样
cdh1上
# cd /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到/opt/cloudera/parcel-repo/中
至此,准备工作完成。准备启动服务
启动前,再次确认时间同步问题。
建议此处有快照。
# cd /opt/cloudera-manager/cm-5.4.3/etc/init.d/
# ./cloudera-scm-server start
第一次慢,初始化数据库的表和数据,开启7180端口,可以使用命令查看日志 # tail -f/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server/cloudera-scm-server.log
开始启动客户端
# ./cloudera-scm-agent start
9000端口,python的
http://192.168.223.11:7180
admin/admin
登录后,做到选择主机处就可以停。
选择免费版
/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server下面的log
/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-agent下面的log
/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-agent start
2016-08-20 12:53:25,455 INFOWebServerImpl:org.mortbay.log: jetty-6.1.26.cloudera.4
2016-08-20 12:53:25,470 INFOWebServerImpl:org.mortbay.log: Started [email protected]:7180
2016-08-20 12:53:25,470 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl:Started Jetty server.
2016-08-20 12:53:44,056 ERRORParcelUpdateService:com.cloudera.parcel.components.ParcelDownloaderImpl: Unableto retrieve remote parcel repository manifest
这个是没有联网导致的,不要紧,本次使用离线安装的方式
选择本地源:
出现下图需要等待较长时间
如上图,安装到这里报错,按提示修改2:
1、时间同步问题
2、swappiness问题
# echo "vm.swappiness = 0">> /etc/sysctl.conf
# sysctl -p
# cat /proc/sys/vm/swappiness
echo "vm.swappiness = 0" >>/etc/sysctl.conf ;sysctl -p;cat /proc/sys/vm/swappiness
命令执行完在浏览器点击重新运行,主机正确性全部通过,点击完成按钮
如上图,选择“自定义服务”自定义安装:选择 HDFS、YARN、ZooKeeper
如上图红色部分:
HDFS中SecondaryNameNode不用关心,后面做成高可用HA
DataNode选择所有主机
ZooKeeper中选择所有主机
默认配置即可
如上图,配置完成后有红框所标记的应用以及右边所示图表
刚进入页面时会有错误,下图所示的绿色圆灯可能全是红色,稍等几分钟之后会变为绿色(长时间为红色请点击查看日志,并确认机器的时间是否一致)
上图所示先在mysql中创建hive库:用户名hive,密码hive:
create databasehive DEFAULT CHARACTER SET utf8;
grant all onhive.* to 'hive'@'%' IDENTIFIED by 'hive';
flush PRIVILEGES;
服务添加完毕返回主页集群中出现hive
上图所示先在mysql中创建oozie库:用户名oozie,密码oozie
create databaseoozie DEFAULT CHARACTER SET utf8;
grant all onoozie.* to 'oozie'@'%' IDENTIFIED by 'oozie';
flush PRIVILEGES;
提供一些方便的脚本~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scm.sh
#!/bin/bash
# create by xw 20160315
[ $# -ne 1 ] && exit 100
ACTION=$1
/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-server$ACTION
sagent.sh
#!/bin/bash
# create by xw 20160315
[ $# -ne 1 ] && exit 100
ACTION=$1
for x in {1..3}
do
ssh root@cdh${x} /opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-agent$ACTION
if [ $? -eq 0 ] ;then
echo "cdh${x} Agent $ACTION ok"
else
echo "cdh${x} Agent $ACTION failed"
fi
done
sdate
#!/bin/bash
# created by xw 20160315
for x in {1..3}
do
echo"======== cdh $x time ========="
ssh root@cdh${x} date
done
sjps
#!/bin/bash
# created by xw 20160315
for x in {1..3}
do
echo -e "====cdh${x}'s jps info===="
ssh root@cdh$x jps
result=`ssh cdh$x jps | wc -l`
echo $(($result-1))
done
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~