CDH搭建学习记录

写在前面

笔者之前装了好几次才给搭建成功,在此强烈建议大家选择前辈们之前安装成功的版本,且和他们保持一致。为此,我将完整的教程放在了云盘里,方便大家使用。

克隆虚拟机

我克隆过来是直接可用的,可以 ping 通外网;若克隆出来的虚拟机有问题,可以查阅相关资料进行修改。
VMware虚拟机克隆CentOS后网卡修改方法
可以先配置一台主节点机器,等测试成功后,在克隆过去。此时只需对克隆机进行稍微改动,便可正常使用。

配置ssh 免登录

  1. 启动三台机器,分别修改机器名为 master、slave1、slave2 ,重启系统
[root@master ~]# vim /etc/sysconfig/network
NETWORKING=yes
iHOSTNAME=master

  1. 修改master 上的 etc/hosts
[root@master ~]# vim /etc/hosts
  1 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomai    n4
  2 ::1         localhost localhost.localdomain localhost6 localhost6.localdomai    n6
  3 192.168.1.121 master
  4 192.168.1.115 slave1
  5 192.168.1.116 slave2
  6 192.168.1.127 slave3

3.将hosts文件复制到slave1 和slave2

[root@master ~]# su hadoop
[hadoop@master root]$ 
[hadoop@master root]$ cd
[hadoop@master ~]$ sudo scp /etc/hosts root@slave1:/etc

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for hadoop: 
The authenticity of host 'slave1 (192.168.1.115)' can't be established.
RSA key fingerprint is 59:a1:54:8c:86:55:eb:a8:a8:85:76:ca:59:05:f4:6f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'slave1,192.168.1.115' (RSA) to the list of known hosts.
root@slave1's password: 
hosts                                         100%  242     0.2KB/s   00:00    
[hadoop@master ~]$ sudo scp /etc/hosts root@slave2:/etc

  1. 在master机器上执行 ssh -keygen -t rsa 命令产生公钥。
[hadoop@master ~]$ ssh -keygen -t rsa
Bad escape character 'ygen'.
[hadoop@master ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
ec:38:ba:0a:39:6d:97:60:b0:41:5a:e6:f3:b7:94:3e hadoop@master
The key's randomart image is:
+--[ RSA 2048]----+
| .o              |
|o+               |
|+ o              |
| + o   o         |
|. o . + S        |
| + . = +         |
|+ o o E .        |
| + . . o         |
|  ..o.           |
+-----------------+

第一次配置失败,第二次配置时将三台主机命名为了 node1 node2 node3 ;分别对应于 master slave1 slave3 ;注意区分即可,都是一样的。

  • 复制到其他节点
[root@node1 .ssh]# scp id_rsa.pub node2:/tmp
root@node2's password: 
id_rsa.pub                                    100%  600     0.6KB/s   00:00    
[root@node1 .ssh]# scp id_rsa.pub node3:/tmp
root@node3's password: 
id_rsa.pub                                    100%  600     0.6KB/s   00:00    

  • 将刚刚复制过来的追加到本节点
[root@node2 ~]# cd /root/.ssh/
[root@node2 .ssh]# ls
authorized_keys  id_rsa  id_dsa.pub
[root@node2 .ssh]# cat /tmp/id_rsa.pub >> authorized_keys
  • 三台主机两两进行ssh免登录
  1. 再次登录,可以发现不需要密码就可以登录slave1 ,slave2
v[hadoop@master ~]$ ssh slave1
[hadoop@slave1 ~]$ 

安装JDK

  1. 使用 yum search jdk 在线查找jdk 列表,任意选择一个版本进行安装。(也可采用离线安装)
[root@master ~]# yum search jdk
[root@master ~]# yum install java-1.7.0-openjdk-devel.i686 -y
  1. 配置Java环境变量
# 查询Jdk 路径
[root@master ~]# whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /usr/share/man/man1/java.1.gz
[root@master ~]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 Sep 21 19:41 /usr/bin/java -> /etc/alternatives/java
#修改配置文件
法一:直接在末尾追究如下语句
[root@master ~]# vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-devel.i686
export MAVEN_HOME=/home/hadoop/local/opt/apache-maven-3.3.1
export JRE_HOME=${JAVA_HOME}/jre   
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar   
export PATH=${JAVA_HOME}/bin:$MAVEN_HOME/bin:$PATH 
法二:系统环境变量文件一般不要轻易更改,可以选择在 /etc/profile.d/java.sh 文件中更改
[root@master ~]# vim /etc/profile.d/java.sh
添加如上所示的语句,然后保存。
# 保存配置后使用source 命令立即生效,进行测试
[root@master ~]# source /etc/profile.d/java.sh
[hadoop@master ~]$ java -version
java version "1.7.0_191"
OpenJDK Runtime Environment (rhel-2.6.15.4.el6_10-i386 u191-b01)
OpenJDK Client VM (build 24.191-b01, mixed mode, sharing)

安装依赖包

yum install chkconfig python bind-utils psmisclibxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb -y

安装配置MySQL(主节点)

#安装mysql服务器
[root@master ~]# yum install mysql-server
#设置开机启动
[root@master ~]# chkconfig mysqld on
#启动mysql服务
[root@master ~]# service mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
#设置root的初始密码
[root@master ~]# mysqladmin -u root password '******'
#进入mysql命令行,创建以下数据库
[root@master ~]# mysql -uroot -p******
mysql> #hive
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> #activity monitor
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;Query OK, 1 row affected (0.00 sec)

#设置root授权访问以上所有的数据库
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

所有节点配置NTP服务

集群中的所有主机必须保持时间同步,如果时间相差较大会引起一些问题。具体配置如下

所有节点安装 NTP:
yum install ntp
配置开机启动:
chkconfig ntpd on
检查是否设置成功:
chkconfig --list ntpd (2-5 为 on 状态则成功)
设置同步:
ntpdate -u ntp.sjtu.edu.cn(时钟服务器根据实际环境设置、本文采用 210.72.145.44-国家授时
中心服务器 IP 地址)

  • 修改配置文件
    打开master机器 /etc/ntp.conf 文件,留下关键信息。
#经过多次安装后,发现这些配置可以跳过
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 8
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

安装Cloudera Manager Server 和Agent

主节点解压安装
cloudera manager的目录默认位置在/opt下,解压:cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz 将解压后的cm 5.12.1 和cloudera目录放到/opt目录下。

[root@master opt]# cd cloudera-manager-centos7-cm5.12.1_x86_64
[root@master cloudera-manager-centos7-cm5.12.1_x86_64]# mv cloudera /opt/
[root@master cloudera-manager-centos7-cm5.12.1_x86_64]# mv cm-5.12.1 /opt/

首先需要去MySql的官网下载JDBC驱动,http://dev.mysql.com/downloads/connector/j/,解压后,找到mysql-connector-java-8.0.12.jar,放到/opt/cm-5.12.1/share/cmf/lib/中。

注:我在官网上下载的是 .rpm格式。经过多次加压之后可以找到目标文件:mysql-connector-java-8.0.12.jar 。但是执行如下命令后会有警告。经过多次实践还是重新下载了 mysql-connector-java-5.1.26-bin.jar 才得以成功执行。

注意注意:在linux环境下,rpm格式应该用相关命令是可以解压的,这个我没有实验。

  • 在主节点初始化CM5的数据库
[root@master schema]# ./scm_prepare_database.sh mysql -h master -uroot -p123456 --scm-host master scm scm scm --force
JAVA_HOME=/usr/java/jdk1.8.0_181
Verifying that we can write to /opt/cm-5.12.1/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cm-5.12.1/etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_181/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cm-5.12.1/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cm-5.12.1/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!
  • Agent配置
    修改/opt/cm-5.3.3/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。
  • 同步Agent到其他节点
scp -r /opt/cm-5.3.3 root@slave1:/opt/
scp -r /opt/cm-5.3.3 root@slave2:/opt/:
  • 在所有节点创建cloudera-scm用户

useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment “Cloudera SCM User” cloudera-scm

准备Parcels,用以安装CDH

  • 将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(parcel-repo需要手动创建)。
    相关的文件如下:
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
manifest.json

最后将 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 ,重命名为CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 文件。

  • 相关启动脚本

通过/opt/cm-5.12.1/etc/init.d/cloudera-scm-server start启动服务端。

通过/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start启动Agent服务。

我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。
成功启动后,便可通过 node1:7180(192.168.1.123:7180 进行访问)。默认用户名及密码为: admin
CDH搭建学习记录_第1张图片
在启动agent时失败,如下所示。通过查看日志信息,即使已经将默认的python2.6.7 更换成了python 2.7 ,还是没有解决问题,. 所以还是强烈建议大家按照之前前辈们已经安装好的各类版本进行操作。当然如果哪位能够指正错误,自然是非常感谢。
CDH搭建学习记录_第2张图片

  • 写在最后:

搭建环境的过程中由于版本不一致或者配置命令可能会引起不可预见的结果。笔者搭建时曾遇到过种种问题,也在逐个解决。最后是可以启动 cloudera-scm-server ,但是agent 依旧启动失败,估计可能是版本问题。
ps:最后重新下载了虚拟机,再次安装一遍,终于解决了如上问题。
为此,经过查找多个资料,终于找到一部完整的可参考的资料。虽然版本较低,但也不影响使用。我们初次使用,还是先让他跑起来再说吧! 为使学习资料长期有效,我将它放在了公众号后台(包括视频讲解),回复 CDH ,便可下载。

从一名不羁的码农开始,欢迎关注我的公众号
CDH搭建学习记录_第3张图片

你可能感兴趣的:(程序人生,git)