Cloudera Hadoop(CDH)安装步骤

Linux系统为CentOS 6,CDH版本为5.6.0。

  1. http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.6.0/RPMS/x86_64/ 下载jdk以及文件名包含el6的文件(el6表示centOS内核版本是6),这些都是Cloudera Manager,5.6.0版本可以修改
  2. http://archive-primary.cloudera.com/cdh5/parcels/5.6.0/ 下载Cloudera Hadoop组件,文件名包含el6的两个文件(要与Cloudera Manager文件的内核相同)以及manifest.json
  3. 安装大概步骤:操作系统环境配置→安装jdk、mysql、httpd→安装CDH&CM
  4. vi /etc/hosts维护所有集群的IP和别名,scp拷贝在所有机器上
  5. 关闭防火墙,先service iptables status查看防火墙状态,再service iptables stop关闭,再service iptables status查看防火墙是否重启也不会启动,再chkconfig iptables off
  6. ssh免登陆
  7. vi /etc/sysconfig/selinux将SELINUX改为disabled
  8. vi /etc/grub.conf在倒数第二行quiet后添加transparent_hugepage=never
  9. 配置NTP服务使集群时间同步
  10. 设置本地yum源:mount -o loop /dev/cdrom /mnt/cdrom把光驱中的CentOS光盘挂载,cd /etc/yum.repos.d进入yum源目录,将所有文件加上.bak后缀,使其失效,vi Centos.repo,内容如下

    [centos]
    name=redhat
    baseurl=file:///mnt/cdrom/
    enabled=true
    gpgcheck=false
    

    然后vi cdh.repo,内容如下

    [cdh]
    name=cdh
    baseurl=http://bigdata1/cm/
    enabled=true
    gpgcheck=false
    
  11. 将上一步的两个repo分发到其他机器

  12. yum -y install httpd安装httpd,httpd必须和CM安装在一台机器上,启动httpd,service httpd start
  13. 因为要做yum资源的打包,创建yum资源库文件,所以安装createrepo,yum install -y createrepo
  14. 把CDH和CM的安装文件放到/var/www/html下并使用createrepo打包,createrepo .将当前目录下文件打包,访问 http://bigdata1/cm/ ,看看行不行
  15. 安装jdk,rpm -qa|grep java rpm -e --nodeps xxx删掉现有jdk,rpm -ivh xxx安装jdk,配置环境变量vi /etc/profile最后加一行export PATH="/usr/java/jdk1.7.0_80/bin:$PATH",再source /etc/profile,再java -version看jdk是否安装成功,每台机器都要装
  16. 下载MySQL(el6的),安装MySQL,一台装即可,一般来说hive和MySQL不要装一台上,tar -xvf mysql-xxxxx.tar解包,rpm -qa|grep mysql看是否存在MySQL,存在就rpm -e --nodeps xxxx删掉,以MySQL5.5为例,先安装server再安装client再安装shared compact,然后设置开机启动chkconfig mysql on,然后开启服务service mysql start
  17. 配置MySQL,mysql_secure_installation,设置root密码,移除匿名用户,允许远程登录,移除测试库,重加载权限表,配置完成
  18. 为Hive做准备,mysql -u root --password='123456' -e 'create database metastore default character set utf8;'建立metastore数据库,mysql -u root -p进入MySQL,show databases;查看刚刚建立的metastore数据库,创建hive用户,mysql -u root -- password='123456' -e "create USER 'hive'@'%' identified by 'hive'; grant all privileges on metastore.* to 'hive'@'%';flush privileges;",@’%’表示在任意IP可用,此用户在metastore拥有所有权限,如果已经进入MySQL了,那么直接输入SQL语句即可,这种方式是不进入MySQL直接执行SQL,再创建cm数据库和cm用户,用于控制cloudera manager,mysql -u root --password='123456' -e "create database cm default character set utf8; create USER 'cm'@'%' identified by 'cm'; grant all privileges on cm.* to 'cm'@'%'; flush privileges;"
  19. 将MySQL的jdbc包移到/usr/share/java,为hive连接做准备
  20. 安装cm,进入cm安装包的目录/var/www/html/cm,yum install -y cloudera-manager-daemons-5.6.0-1.cm560.p0.54.el6.x86_64.rpm,-y的意思是如果安装过程中有需要输入y的情况会自动输入,yum install -y cloudera-manager-server-5.6.0-1.cm560.p0.54.el6.x86_64.rpmcd /usr/share/cmf/schema,输入./scm_prepare_database.sh -h bigdata1 mysql cm cm cm,-h指定hosts,然后service cloudera-scm-server status查看cm是否启动,如果没有启动,service cloudera-scm-server start启动,启动后,等待几分钟,用浏览器访问 http://bigdata1:7180/ 或IP地址访问,进入CM登陆页即CM安装成功
  21. 进入cm页面,admin/admin登陆,yes,继续,选择免费版,继续,继续,为集群指定主机,所有机器都要输入,继续,使用Parcel,点击更多选项,删掉所有远程Parcel存储库URL,添加 http://bigdata1/cdh/ ,更改cdh有个以sha1结尾的文件的文件名,去掉1,页面点确定,选择CDH版本,会自动认出,选择特定发行版,自定义存储库,输入 http://bigdata1/cm/ ,继续,不安装JDK,继续,不启用单用户模式,继续,填写SSH信息,继续,安装集群(如果脚本执行失败hostname变为bagon需要将Linux的DNS改为8.8.8.8),继续,安装Parcel,继续,检查主机,有叹号无所谓,完成,选择安装的服务,自定义服务,选择HDFS、YARN、Hive,继续,自定义角色分配,HDFS,如果多台机器,NameNode和DataNode选择不同机器,SecondaryNameNode和NameNode选择不同机器,Hive,去掉Gateway,Hive Metastore Server选择MySQL安装的那台机器,HiveServer2选择其他机器,YARN,NodeManager应放在DataNode机器上,继续,数据库设置,数据库类型MySQL,数据库名称metastore,用户名hive,密码hive,测试连接(测试jdbc包),继续,审核更改,DataNode数据目录可以设置多个,好处是一个目录满了可以继续用第二个目录,防止溢出,不过DN本身已经存了三份,不用再做RAID,NameNode数据目录,最好做RAID,一个本地目录,一个远程目录,这样本地挂了还有一个,继续,首次运行,等待安装,如果出现timeout错误就重试
  22. 多机器安装建议:namenode、resourcemanager、mysql、hive metastore在一台机器,secondnamenode、datanode、nodemanager、hive在一台机器,前者组raid,后者不用组
  23. 安装完成进入主页,若资源占用过高,可以停止监控,点击左侧Cloudera Management Service的下箭头,选择停止,停止后删除
  24. 分别进入HDFS、Hive、YARN页面,点击实例,查看启动情况
  25. 如果想添加服务,可以在Cluster1页面,点击右上角操作,添加服务
  26. HDFS不要上传小文件,会加重NameNode负担
  27. 虽然replication是3,但是单机单硬盘上并没有备份,因为没意义
  28. NameNode退出安全模式:hadoop dfsadmin -safemode leave