1.1 准备三个节点

序号 主机名 内存 CPU IP地址 角色
1 cdh1 8G 8核心 192.168.5.78 cloudera-scm-server,mysql
2 cdh2     4G 8核心 192.168.5.79 cloudera-scm-agent
3 cdh2 4G 8核心 192.168.5.80 cloudera-scm-agent

1.2 软件版本信息

OS:RedHat EL 6.5
CDH: 5.6.0
Java:1.7
MySQL:5.6
 

2 主机环境准备

 
说明: 以下操作默认在节点1上面, 如果在节点2和节点3上操作会特别说明。
 

2.1 搭建yum源

(1)、挂载系统镜像
  1. [root@hadoop1 ~]# mount /dev/cdrom /mnt
CDH集群安装
(2)、配置yum源
编辑/etc/yum.repos.d/rhel-source.repo配置文件:
  1. [root@hadoop1 yum.repos.d]# cat rhel-source.repo
  2. [rhel-source]
  3. name=RedHat
  4. baseurl=file:///mnt
  5. enabled=1
  6. gpgcheck=0
 
CDH集群安装
 
(3)、设置缓存和验证
  1. [root@hadoop1 yum.repos.d]# yum clean all
  2. [root@hadoop1 yum.repos.d]# yum makecache
  3. [root@hadoop1 yum.repos.d]# yum list | more
 
CDH集群安装
 
(4)、安装上传工具rz和sz
  1. [root@hadoop1 yum.repos.d]# yum whatprovides \*rz
  2. [root@hadoop1 yum.repos.d]# yum install lrzsz-0.12.20-27.1.el6.x86_64 -y
CDH集群安装
 CDH集群安装
 

2.2 配置JDK

(1)、卸载本机的Open JDK信息
  1. [root@hadoop1 ~]# java -version
  2. [root@hadoop1 ~]# rpm -qa | grep java
  3. [root@hadoop1 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
  4. [root@hadoop1 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
  5. [root@hadoop1 ~]# rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
 
CDH集群安装
 
(2)、上传JDK安装包并解压
  1. [root@hadoop1 java]# mkdir /usr/java
  2. [root@hadoop1 java]# tar -xzvf jdk-7u79-linux-x64.tar.gz -C /usr/java/
  3. [root@hadoop1 data]# cd /usr/java/
  4. [root@hadoop1 java]# mv jdk1.7.0_79 default
 
CDH集群安装
 
注意: JDK一定要解压到/usr/java/default下面,即JAVA_HOME= /usr/java/default, 否则CDH的后续安装将会报错(通过日志发现必须指定到此目录,可能其他的CM版本不需要)。
 
(3)、配置环境变量
编辑/etc/profile, 加入如下内容:
  1. [root@hadoop1 default]# vim /etc/profile
  2. export JAVA_HOME=/usr/java/default
  3. export JRE_HOME=/usr/java/default/jre
  4. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
  5. export PATH=$JAVA_HOME/bin:$PATH
 
 
使用环境变量配置马上生效:
  1. [root@hadoop1 default]# source /etc/profile
CDH集群安装
 
(4)、将节点1的Java传到其他节点并配置环境变量
    在节点2和节点3上分别新建目录/usr/java/default, 将节点1的目录/usr/java/default下的文件传到节点2和节点3的目录/usr/java/default:
   
  1. [root@hadoop1 default]# scp -r /usr/java/default/* root@192.168.5.79:/usr/java/default/
  2. [root@hadoop1 default]# scp -r /usr/java/default/* root@192.168.5.80:/usr/java/default/
CDH集群安装
 
配置环境变量:
  1. [root@hadoop2 default]# tail -4/etc/profile
  2. export JAVA_HOME=/usr/java/default
  3. export JRE_HOME=/usr/java/default/jre
  4. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
  5. export PATH=$JAVA_HOME/bin:$PATH
(5)、验证
CDH集群安装
 

2.3 修改主机名

(1)、在所有节点修改配置文件/etc/sysconfig/network
其中cdh1为主机名, 其他节点也修改为对应的主机名称。
CDH集群安装
 
(2)、在所有节点的/etc/hosts加入域名解析
  1. [root@hadoop1 default]# cat /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 192.168.5.78 cdh1
  5. 192.168.5.79 cdh2
  6. 192.168.5.80 cdh3
然后每个节点主机执行:hostname 主机名,比如节点1执行:# hostname cdh1
 
(3)、测试主机名是否正常解析
CDH集群安装
 

2.4 配置SSH免密码认证

在主信任机cloudera-scm-server(192.168.5.78)生成key, 并将key分发到各个节点。
(1)、生成key
  1. [root@cdh1 ~]#/usr/bin/ssh-keygen -t rsa -N ""
CDH集群安装
 
(2)、分发key到各个节点上
  1. # cat /root/.ssh/id_rsa.pub | ssh 192.168.5.78 'cat >> .ssh/authorized_keys'
  2. # cat /root/.ssh/id_rsa.pub | ssh 192.168.5.79 'cat >> .ssh/authorized_keys'
  3. # cat /root/.ssh/id_rsa.pub | ssh 192.168.5.80 'cat >> .ssh/authorized_keys' (注意, 本机也要做免密码认证)
CDH集群安装
 
(3)、验证免密码认证
CDH集群安装
 
 

2.5 关闭防火墙

在所有节点执行如下步骤:
(1)、关闭iptables
  1. # service iptables stop
  2. # chkconfig iptables off
  3. # chkconfig --list | grep iptables
CDH集群安装
 
(2)、关闭selinux
  1. # vim /etc/sysconfig/selinux
  2. # setenforce 0
 
CDH集群安装
 CDH集群安装
 

2.6 配置内核参数

在所有节点执行如下步骤:
(1)、在所有节点修改内核参数(涉及主机检查):
  1. # echo 0 > /proc/sys/vm/swappiness
  2. # echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
 
以上参数,重启后可能会丢失。
(2)、修改系统编码格式
  1. # vim /etc/sysconfig/i18n
  2. LANG="en_US.UTF-8"
  3. SYSFONT="latarcyrheb-sun16"
 
CDH集群安装
 
 

2.7 配置NTP服务

 
(1)、修改配置文件/etc/ntp.conf
在cdh1加入如下配置:
  1. restrict 192.168.5.0 mask 255.255.255.0 nomodify notrap
  2. server 127.127.1.0# local clock
  3. fudge 127.127.1.0 stratum 10
 
在cdh2和cdh3等其他节点加入如下配置:
  1. #server 0.rhel.pool.ntp.org iburst
  2. #server 1.rhel.pool.ntp.org iburst
  3. #server 2.rhel.pool.ntp.org iburst
  4. server 192.168.5.78
  5. restrict 192.168.5.78 nomodify notrap noquery
 
(2)、启动服务,并同步时间
cdh1:
  1. [root@cdh1 ~]# service ntpd restart
  2. [root@cdh1 ~]# ntpdate -u 0.rhel.pool.ntp.org
  3. 16Feb14:13:39 ntpdate[32551]: step time server 85.199.214.101 offset -27310.823198 sec
  4. [root@cdh1 ~]# date
  5. 20170216星期四14:13:41 CST
 
cdh2、cdh3:
  1. # service ntpd restart
  2. # ntpdate -u 192.168.5.78
 
CDH集群安装
CDH集群安装
 
 

3、编译安装MySQL

Mysql的安装在节点1上
也可以使用其他方式安装MySQL

3.1 检查并卸载本机的MySQL

  1. # rpm -qa | grep mysql
  2. # yum -y remove mysql-libs-5.1.71-1.el6.x86_64
CDH集群安装
 

3.2 配置用户、目录和环境

(1)、添加用户
  1. [root@cdh1 ~]# useradd mysql
CDH集群安装
 
(2)、创建目录并赋权
创建目录:
  1. [root@cdh1 ~]# mkdir -p /home/u01/my3306/data
  2. [root@cdh1 ~]# mkdir -p /home/u01/my3306/log/iblog
  3. [root@cdh1 ~]# mkdir -p /home/u01/my3306/log/binlog
  4. [root@cdh1 ~]# mkdir -p /home /u01/my3306/run
  5. [root@cdh1 ~]# mkdir -p /home/u01/my3306/tmp
 
设置权限:
  1. [root@cdh1 ~]# chown -R mysql:mysql /home/u01/my3306/
  2. [root@cdh1 ~]# chmod -R 755/home/u01/my3306/
 
(3)、配置环境变量
在/etc/profile里面加入如下配置:
  1. export PATH=$PATH:/home/u01/my3306/bin
CDH集群安装
 
(4)、安装cmake
  1. [root@cdh1 data]# yum install -y cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl libxml2 libxml2-devel openssl-devel
CDH集群安装
 

3.3 安装MySQL

(1)、上传并解压
上传mysql通用的源码包到目录/home/data, 并解压到/home/u01目录。
  1. [root@cdh1 data]# tar -xzvf mysql-5.6.35.tar.gz -C /home/u01
CDH集群安装
 
(2)、进入mysql的解压目录, 并执行如下的cmake命令
  1. cmake \
  2. -DCMAKE_INSTALL_PREFIX=/home/u01/my3306 \
  3. -DINSTALL_DATADIR=/home/u01/my3306/data \
  4. -DDEFAULT_CHARSET=utf8 \
  5. -DDEFAULT_COLLATION=utf8_general_ci \
  6. -DEXTRA_CHARSETS=all \
  7. -DWITH_SSL=yes \
  8. -DWITH_EMBEDDED_SERVER=1 \
  9. -DENABLED_LOCAL_INFILE=1 \
  10. -DWITH_MYISAM_STORAGE_ENGINE=1 \
  11. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  12. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  13. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  14. -DWITH_FEDERATED_STORAGE_ENGINE=1 \
  15. -DWITH_PARTITION_STORAGE_ENGINE=1 \
  16. -DMYSQL_UNIX_ADDR=/home/u01/my3306/run/mysql.sock \
  17. -DMYSQL_TCP_PORT=3306 \
  18. -DENABLED_LOCAL_INFILE=1 \
  19. -DSYSCONFDIR=/etc \
  20. -DWITH_READLINE=on
CDH集群安装
 
 
(3)、make操作
  1. # make
CDH集群安装
 
(4)、make  install 操作
  1. # make install
CDH集群安装
 
 
(5)、上传my.cnf
    将附件my.cnf上传到目录/home/u01/my3306。
CDH集群安装
 my.cnf的文件内容如下:
  1. [client]
  2. port=3306
  3. socket=/home/u01/my3306/mysql.sock
  4. [mysql]
  5. pid_file=/home/u01/my3306/run/mysqld.pid
  6. [mysqld]
  7. autocommit=1
  8. general_log=off
  9. explicit_defaults_for_timestamp=true
  10. # system
  11. basedir=/home/u01/my3306
  12. datadir=/home/u01/my3306/data
  13. max_allowed_packet=1g
  14. max_connections=3000
  15. max_user_connections=2800
  16. open_files_limit=65535
  17. pid_file=/home/u01/my3306/run/mysqld.pid
  18. port=3306
  19. server_id=101
  20. skip_name_resolve=ON
  21. socket=/home/u01/my3306/run/mysql.sock
  22. tmpdir=/home/u01/my3306/tmp
  23. #binlog
  24. log_bin=/home/u01/my3306/log/binlog/binlog
  25. binlog_cache_size=32768
  26. binlog_format=row
  27. expire_logs_days=7
  28. log_slave_updates=ON
  29. max_binlog_cache_size=2147483648
  30. max_binlog_size=524288000
  31. sync_binlog=100
  32. #logging
  33. log_error=/home/u01/my3306/log/error.log
  34. slow_query_log_file=/home/u01/my3306/log/slow.log
  35. log_queries_not_using_indexes=0
  36. slow_query_log=1
  37. log_slave_updates=ON
  38. log_slow_admin_statements=1
  39. long_query_time=1
  40. #relay
  41. relay_log=/home/u01/my3306/log/relaylog
  42. relay_log_index=/home/u01/my3306/log/relay.index
  43. relay_log_info_file=/home/u01/my3306/log/relay-log.info
  44. #slave
  45. slave_load_tmpdir=/home/u01/my3306/tmp
  46. slave_skip_errors=OFF
  47. #innodb
  48. innodb_data_home_dir=/home/u01/my3306/log/iblog
  49. innodb_log_group_home_dir=/home/u01/my3306/log/iblog
  50. innodb_adaptive_flushing=ON
  51. innodb_adaptive_hash_index=ON
  52. innodb_autoinc_lock_mode=1
  53. innodb_buffer_pool_instances=8
  54. #default
  55. innodb_change_buffering=inserts
  56. innodb_checksums=ON
  57. innodb_buffer_pool_size=128M
  58. innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
  59. innodb_doublewrite=ON
  60. innodb_file_format=Barracuda
  61. innodb_file_per_table=ON
  62. innodb_flush_log_at_trx_commit=1
  63. innodb_flush_method=O_DIRECT
  64. innodb_io_capacity=1000
  65. innodb_lock_wait_timeout=10
  66. innodb_log_buffer_size=67108864
  67. innodb_log_file_size=1048576000
  68. innodb_log_files_in_group=4
  69. innodb_max_dirty_pages_pct=60
  70. innodb_open_files=60000
  71. innodb_purge_threads=1
  72. innodb_read_io_threads=4
  73. innodb_stats_on_metadata=OFF
  74. innodb_support_xa=ON
  75. innodb_use_native_aio=OFF
  76. innodb_write_io_threads=10
  77. [mysqld_safe]
  78. datadir=/home/u01/my3306/data
 
(6)、赋权
  1. [root@cdh1 home]# chown -R mysql:mysql ./u01/my3306
CDH集群安装
 
(7)、初始化
进入my3306的目录
  1. ./scripts/mysql_install_db --defaults-file=/home//u01/my3306/my.cnf --datadir=/home/u01/my3306/data --user=mysql
CDH集群安装
 
(8)、启动服务
  1. [root@cdh1 my3306]# cd bin/
  2. [root@cdh1 bin]#./mysqld_safe --defaults-file=/home/u01/my3306/my.cnf --user=mysql &

 

CDH集群安装
 
 
(8)、验证安装
CDH集群安装
 

3.4 配置MySQL权限等

 
(1)、设置密码
  1. [root@cdh1 bin]# mysqladmin -u root password 123456
CDH集群安装
 
(2)、进入mysql
CDH集群安装
 
(3)、设置权限
  1. mysql> grant all privileges on *.* to root@'localhost' identified by'123456'with grant option;
  2. mysql> grant all privileges on *.* to root@'127.0.0.1' identified by'123456'with grant option;
  3. mysql> grant all privileges on *.* to root@'%' identified by'123456'with grant option;
  4. mysql> flush privileges;
CDH集群安装
 
(4)、验证权限
CDH集群安装
 
 


4 安装Cloudera Manager

以下操作是在节点1上,角色为cloudera-scm-server
 

4.1 上传并解压cloudera-manager

(1)、解压
  1. [root@cdh1 data]# tar xzvf cloudera-manager-el6-cm5.6.0_x86_64.tar.gz -C /opt/

CDH集群安装

  
(2)、将mysql的jar包复制到指定目录
  1. # cp mysql-connector-java-5.1.38-bin.jar /opt/cm-5.6.0/share/cmf/lib/

CDH集群安装

 

4.2 修改配置文件的主机名

  1. [root@cdh1 data]# sed -i 's/server_host=localhost/server_host=cdh1/g'/opt/cm-5.6.0/etc/cloudera-scm-agent/config.ini

CDH集群安装

  

4.3 修复安装包bug(此BUG会导致在集群安装YARN时失败) 

  1. # vim /opt/cm-5.6.0/lib64/cmf/agent/src/cmf/util.py --该文件第365行
  2. pipe = subprocess.Popen(['/bin/bash','-c',". %s; %s; env"%(path, command)],
  3. stdout=subprocess.PIPE, env=caller_env)
  4. 改成
  5. pipe = subprocess.Popen(['/bin/bash','-c',". %s; %s; env | grep -v { | grep -v }"%(path, command)],
  6. stdout=subprocess.PIPE, env=caller_env)
 
 

4.4 创建系统用户(在所有的节点)

  1. # useradd --system --home=/opt/cm-5.6.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "cloudera scm user" cloudera-scm
CDH集群安装
 

4.5 配置MySQL数据库

(1)、执行创建脚本
  1. [root@cdh1 data]#/opt/cm-5.6.0/share/cmf/schema/scm_prepare_database.sh mysql -h192.168.5.78-uroot -p123456 --scm-host 192.168.5.78 cm cm cm
---参数说明----:
        ./scm_prepare_database.sh mysql -h 172.18.134.172 -uroot -pro#zyuc --scm-host 172.18.134.133 cm cm cm
                (对应于:数据库类型、数据库服务器、用户名、密码、CMServer 所在节点…….)
 
验证是否安装成功:
  1. [root@cdh1 data]# mysql -h192.168.5.78-uroot -p123456 -e "show databases;"
 
CDH集群安装
 
(2)、创建相关配置
  1. [root@cdh1 data]# mysql -h192.168.5.78-uroot -p123456
  2. mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  3. mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  4. mysql> create database hue default charset utf8 collate utf8_general_ci;
  5. mysql> create database Oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  6. mysql> grant all on *.* to 'root'@'%' identified by '123456';--授权server主机
  7. mysql> flush privileges;

4.6 将cm复制到agent

  将/home/opt/cm-5.6.0拷贝到所有cloudera-scm-agent服务器上(/home/opt
  1. [root@cdh1 opt]# scp -r cm-5.6.0/ root@cdh2:/opt
  2. [root@cdh1 opt]# scp -r cm-5.6.0/ root@cdh3:/opt

CDH集群安装

 

4.7 准备parcels安装包到/opt/cloudera/parcel-repo/

  1. # cp CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel /opt/cloudera/parcel-repo/
  2. # cp CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/
  3. # cp manifest.json /opt/cloudera/parcel-repo/
  4. # cd /opt/cloudera/parcel-repo/
  5. # mv CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha1 CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha
 
CDH集群安装
 
 

4.8 启动服务

(1)、启动cloudera-scm-server节点的server和agent脚本
  1. # /opt/cm-5.6.0/etc/init.d/cloudera-scm-server start
  2. # /opt/cm-5.6.0/etc/init.d/cloudera-scm-agent start
 
(2)启动所有cloudera-scm-agent客户端节点的agent脚本
  1. # /opt/cm-5.6.0/etc/init.d/cloudera-scm-agent start
 
(3)确认cloudera-scm-server启动完成
  1. [root@cdh1 opt]# ps -ef | grep scm
CDH集群安装
 
  1. # netstat -tunlp|grep java
CDH集群安装
 
 

5 在界面配置

在浏览器打开管理页面:http://192.168.5.78:7180/

5.1 同意License

CDH集群安装
 
 

5.2 选择Cloudera Express版本CDH集群安装

 

5.3 软件列表信息, 继续

CDH集群安装
 

5.4 选择安装的主机

 CDH集群安装
 

5.5 继续,Parcel从cdh1分发到其他节点CDH集群安装

 

5.6 检查主机正确性 

 
CDH集群安装
 
 
 
CDH集群安装
 CDH集群安装
 
CDH集群安装
 
 
 

5.7 选择需要安装的服务

CDH集群安装
 

5.8 集群设置

CDH集群安装
 CDH集群安装
 
 
 

5.9 设置数据库的信息

CDH集群安装
 

5.10 集群设置

设置DataNode的数据目录, 数据目录需要在磁盘新建好,如下图,需要新建2个目录:# mkdir  /home/dfsdata和# mkdir  /hadoopdata。
CDH集群安装
 
 

5.11 配置和启动服务

 
     Hive和Oozie报错, 提示没有mysql的java驱动jar包
 
CDH集群安装
 
 
 
注意:将mysql的驱动放到hive和oozie的目录下面, 否则后面安装会报错:
[root@cdh1 lib]# cp /home/data/mysql-connector-java-5.1.38-bin.jar /opt/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/lib/hive/lib
[root@cdh1 lib]# cp /home/data/mysql-connector-java-5.1.38-bin.jar /var/lib/oozie
 
CDH集群安装
 
CDH集群安装
 
 
CDH集群安装
 

5.12 安装结束

以上都没有报错, 按继续, 安装成功。
 
CDH集群安装
 
由于是在虚拟机环境, 以上红色是空间不足的告警, 暂时可以忽略。 
 

6 验证

6.1 验证HDFS的功能

CDH集群安装
 

6.2 验证Spark引擎

切换到HDFS用户:# su -hdfs
CDH集群安装
 

6.3 验证MR引擎

切换到HDFS用户:# su -hdfs
CDH集群安装
 
 

6.4 验证Hive on Spark

 
CDH集群安装
 
hive on spark的设置文档:
 
参考文档设置没有成功, 直接修改配置文件:
CDH集群安装
 
补充:上面通过在界面修改没有成功, 其实是修改保存后, 还有个deploy的操作, 如下图所示:
CDH集群安装
 
CDH集群安装
 





附件列表

 

相关文章: