Linux虚拟机搭建大数据集群

来源:互联网 发布:2017年全球数据总量 编辑:程序博客网 时间:2024/06/07 18:18

1.准备工具下载
a)VMware虚拟机: VMware Fusion851.dmg  

b)Linux系统:CentOS-6.5-x86_64-bin-DVD1.iso
c)CDH:cloudera-manager-el6-cm5.4.10_x86_64.tar.gz
d)CDH5:
 CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel
 CDH-5.4.10-1.cdh5.4.10.p0.16-el6.parcel.sha1
 manifest.json
e)jdk:jdk-7u79-linux-x64.tar.gz
f)ftp工具:FileZilla_3.26.2_macosx-x86.app.tar.bz2
g)mysql驱动包:mysql-connector-java-5.1.42-bin.jar 重命名  mysql-connector-java.jar 后面会用到


链接:http://pan.baidu.com/s/1pLz7q6f 密码:kdu4


2.安装虚拟机,可自行百度,http://www.jb51.net/os/239738.html  我安装的是CentOS-6.5 桌面版

master  4G 8G40G 

slave1  2G 4G20G 

slave2  2G 4G20G 

3.虚拟机设置

关掉SELINUX:vi /etc/selinux/config ,设置SELINUX=disable(可以不设置) PS:我的设置后虚拟机Linux系统无法启动,重装过N次


闭防火墙:
service iptables stop
chkconfig iptables off 
执行完毕后,调用 service iptables status,查看防火墙的状态

关闭ipv6
service ip6tables stop   #停止IPV6服务
chkconfig ip6tables off  #禁止IPV6开机启动


修改IP地址为静态地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0

我的网络设置是界面设置的,命令设置不能连外网   http://www.aboutyun.com/thread-6700-1-1.html
cat /etc/udev/rules.d/70-persistent-net.rules  查看mac地址,保证mac地址=HWADDR

附三台配置信息,我的机器不是克隆的(克隆老是失败),单独安装的  

192.168.122.1~192.168.122.255  我的虚拟机网段  192.168.122.1  本机ip,所以GATEWAY=192.168.122.2

IPADDR具体设置值要看虚拟机网段


DEVICE=eth0
TYPE=Ethernet
UUID=276594c1-3f57-4947-a542-59e28701167f
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.122.200
NETMASK=255.255.255.0
GATEWAY=192.168.122.2
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
DNS1=8.8.8.8
HWADDR=00:0C:29:71:25:15
LAST_CONNECT=1498341599


DEVICE=eth0
TYPE=Ethernet
UUID=e7f0b46b-b745-49fb-ba6a-5b9eed36bb01
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.122.201
PREFIX=24
GATEWAY=192.168.122.2
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=00:0C:29:CE:54:C9
LAST_CONNECT=1498344752


DEVICE=eth0
TYPE=Ethernet
UUID=8afcb5ed-6fdb-4e61-8533-57b7377f9898
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:4C:2D:F3
IPADDR=192.168.122.202
PREFIX=24
GATEWAY=192.168.122.2
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
LAST_CONNECT=1498345113


修改主机名称: vi /etc/sysconfig/network,3台分别修改
ETWORKING=yes
HOSTNAME=master


ETWORKING=yes
HOSTNAME=slave1


ETWORKING=yes
HOSTNAME=slave2


修改hosts映射:vi /etc/hosts

3台都添加

192.168.122.200 master
192.168.122.201 slave1
192.168.122.202 slave2


执行service network restart,重新启动网络

ping 主机名  #看集群网络能不能痛

ping www.baidu.com  #看外网通不通


安装jdk
输入rpm -qa|grep java查看,卸载自带jdk

卸载以上三个文件(版本可能不同)
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e --nodeps tzdata-java-2013g-1.el6.noarch


安装ftp 上传jdk-7u79-linux-x64.tar.gz  到/usr目录 (看个人习惯)

进入usr目录 。cd /usr

解压jdk,解压命令:tar -xvzf jdk-7u79-linux-x64.tar.gz


编辑~/.bashrc文件,vi ~/.bashrc
添加以下变量(如图六)
#JAVA_HOME
export JAVA_HOME=/usr/jdk1.7.0_79
export JAVA_BIN=$JAVA_HOME/bin
export JAVA_LIB=$JAVA_HOME/lib
export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar
export PATH=$JAVA_BIN:$PATH


:wq  保存退出

然后重新加载环境变量


source ~/.bashrc
使配置生效,之后可以执行 java -version 判断jdk是否已经配置成功


设置文件打开数量和用户最大进程数
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 32000

* hard nproc 32000


设置ntp时间同步
在master节点 (我的三台)vi /etc/ntp.conf
配置对客户端(192.168.122.2的网段)提供ntp服务
restrict 192.168.122.2 mask 255.255.255.0 nomodify notrap
注释掉这几个
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
并在下面添加

server  127.127.1.0
fudge  127.127.1.0 stratum 2


配置和运行NTP Server
NTP一般只会同步system clock. 但是如果我们也要同步RTC(hwclock)的话那么只需要把下面的选项打开就可以了


代码:
# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes


启动ntpd服务
service ntpd start
chkconfig ntpd on 


配置免密登录
如果 A机器链接B机器
在A机器输入 ssh-keygen -t rsa (一直回车)  生成密钥
在A机器输入 ssh-copy-id -i ~/.ssh/id_rsa.pub root@B机器Ip  把本机的公钥追到b机器中


ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2
三台机器互相配置免密登录

ssh master 测试是否成功


安装Mysql
查看CentOS自带mysql是否已安装。
输入:yum list installed | grep mysql


若有自带安装的mysql,如何卸载CentOS系统自带mysql数据库?
输入:yum -y remove mysql-libs.x86_64,若有多个依赖文件则依次卸载。
当结果显示为Complete!即卸载完毕。


查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)。
输入:yum list | grep mysql 或 yum -y list mysql*


使用yum安装mysql数据库。
输入:yum -y install mysql-server mysql mysql-devel ,命令将:mysql-server、mysql、mysql-devel都安装好,当结果显示为“Complete!”即安装完毕。
注:安装mysql只是安装了数据库,只有安装mysql-server才相当于安装了客户端。


查看刚安装mysql数据库版本信息。
输入:rpm -qi mysql-server


启动mysql   service mysqld start   (service mysqld status查看服务 service mysqld restart 重启服务)
设置开机启动   chkconfig mysqld on 
修改mysql密码,安装好mysql是没有密码的,需要进行设置
输入:mysql -uroot
mysql> use mysql;
mysql> update user set password=password('root') where user='root' and host='localhost';
mysql> flush privileges;
验证 mysql -uroot -proot
修改权限,设置root用户拥有cdhmaster上所有库的所有权限
mysql> use mysql;
mysql> update user set password=password('root') where user='root' and host='localhost';
mysql> flush privileges;
mysql> exit;

后面数据库无法连接时用
mysql> grant all on *.* TO 'root'@'master'IDENTIFIED BY 'root'; 

mysql> flush privileges;


根据需要创建数据库

#Hive
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#activity monitor安装监控用的
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#oozio安装oozie用的
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE reports DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE navigatoraudit DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE navigatormetadata DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


主节点解压安装 ftp上传cloudera-manager-el6-cm5.4.10_x86_64.tar.gz 到/opt目录
tar zxvf cloudera-manager-el6-cm5.4.10_x86_64.tar.gz -C /opt


FTP上传 mysql-connector-Java-5.1.39-bin.jar,放到/opt/cm-5.6.1/share/cmf/lib/中
重命名 mysql-connector-Java.jar   放到/usr/share/java

主节点初始化CM5数据库
/opt/cm-5.4.10/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm

agent配置
vi /opt/cm-5.4.10/etc/cloudera-scm-agent/config.ini  修改server_host为主节点主机名  server_host=cmaster

将agent分发到其他节点
scp -r /opt/cm-5.4.10 root@192.168.122.201:/opt/
scp -r /opt/cm-5.4.10 root@192.168.122.202:/opt/

在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.4.10/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

主节点准备parcels安装CDH5
CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel
CDH-5.4.10-1.cdh5.4.10.p0.16-el6.parcel.sha1
manifest.json
将以上三个文件放到/opt/cloudera/parcel-repo/中,如果parcel-repo不存在,手动创建
修改CDH-5.4.10-1.cdh5.4.10.p0.16-el6.parcel.sha1 CDH-5.4.10-1.cdh5.4.10.p0.16-el6.parcel.sha
检查CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel.sha中的数据是否和manifest.json的hash值一致


在主节点启动server
sh /opt/cm-5.4.10/etc/init.d/cloudera-scm-server start
sh /opt/cm-5.4.10/etc/init.d/cloudera-scm-server stop
sh /opt/cm-5.4.10/etc/init.d/cloudera-scm-server sretart


在所有节点启动agent
sh /opt/cm-5.4.10/etc/init.d/cloudera-scm-agent start
sh /opt/cm-5.4.10/etc/init.d/cloudera-scm-agent stop
sh /opt/cm-5.4.10/etc/init.d/cloudera-scm-agent restart


查看server是否启动成功
netstat -nltp  
浏览器访问 192.168.122.200:7180

至此集群安装结束

Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:


echo 'vm.swappiness=10'>> /etc/sysctl.conf
或者 echo 10 > /proc/sys/vm/swappiness
保存,重启,就生效了。


已启用“透明大页面”,它可能会导致重大的性能问题。版本为“CentOS release 6.5 (Final)”且发行版为“2.6.32-431.el6.x86_64”的 Kernel 已将 enabled 设置为“[always] madvise never”,并将 defrag 设置为“[always] madvise never”。请运行“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到一个 init 脚本中,如 /etc/rc.local,这样当系统重启时就会予以设置。或者,升级到 RHEL 6.5 或更新版本,它们不存在此错误。将会影响到以下主机: 
使用上面的配置后必须重启操作系统才能生效,你也可以运行下面命令不用重启操作系统。
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always madvise [never]




http://www.bubuko.com/infodetail-2084275.html