cdh平台安装详细教程

CDH安装文档目录

0、准备

  1. 虚拟机或者实体机,安装CenterOs 6.5
    主机配置建议: 内存8G+
  2. 默认账户密码 admin
  3. 通过ifconfig查看主机ip
    我这里三台虚拟机:
    H1 192.168.19.128 (主机)
    H2 192.168.19.129 (从机)
    H3 192.168.19.130 (从机)

博文需要用到的脚本下载地址:cdh及其组件安装的shell脚本集合

1、配置免密码登录

1、修改hostip.properties文件,按行加入主机、从机的ip地址。

2、需要将shell文件夹上传到主节点的root目录下,在主节点机器上执
行脚本clientSSHAuthorize.sh

输入任意名字作为保存keyFile ,密码为空

在这里插入图片描述

注脚本执行过程:
 在h1执行 ./clientSSHAuthorize.sh h2IP
 脚本运行完会自动连接到h2机器,切换目录 cd shell,执行 ./otherClientSSHAuthorize h3IP
 脚本运行完会自动连接到h3机器, 切换目录 cd shell,执行 ./otherClientSSHAuthorize h4IP
 …
 脚本运行完会自动连接到hn机器, 切换目录 cd shell,执行 ./otherClientSSHAuthorize h1IP
 执行完毕

2、配置环境变量

注意:如果客户指定主机名,不使用默认的h1.hadoop等,查看shell——客户指定主机名—更改主机名.txt,参照操作。

2.1、配置主机名,安装JDK

修改 setConfig.sh 脚本内容:

#install java8
scp jdk-8u73-linux-x64.tar.gz root@$host_ip:/root/shell/
echo "====install java on $host_ip===="
ssh -p 22 root@$host_ip "cd /root/shell && tar --no-same-owner -zxvf jdk-8u73-linux-x64.tar.gz && mkdir /usr/java/ && mv jdk1.8.0_73 /usr/java/"
 #source /etc/profile
ssh -p 22 root@$host_ip 'echo JAVA_HOME=/usr/java/jdk1.8.0_73 >> /etc/profile'
ssh -p 22 root@$host_ip 'echo JRE_HOME=/usr/java/jdk1.8.0_73/jre >> /etc/profile'
ssh -p 22 root@$host_ip 'echo PATH=\$PATH:\$JAVA_HOME/bin:\$JRE_HOME/bin >> /etc/profile'
ssh -p 22 root@$host_ip 'echo CLASS_PATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib >> /etc/profile'
ssh -p 22 root@$host_ip 'echo export JAVA_HOME JRE_HOME CLASS_PATH PATH >> /etc/profile'
ssh -p 22 root@$host_ip 'source /etc/profile'
echo "====finish java on $host_ip===="

在主节点上执行脚本setConfig.sh,该脚本主要完成以下工作:

1、完成关闭防火墙、修改主机名、修改主机名映射,脚本执行完毕后在每台机器上执行 java -version,查看java是否正确安装,如果没有正确安装执行以下命令:source /etc/profile

2、完成java安装
注意: 执行完成后通过java -version验证配置安装是否生效,如显示的还是java1.7的版本,则在该机器上执行以下命令:alternatives --config java
如果出现类似以下结果:
在这里插入图片描述
输入正确路径对应的数字回车即可。

3、重启每台机器
reboot

2.2、安装mysql

2.2.1、查看mysql是否安装

执行命令 ps -ef | grep mysql,查看mysql是否安装

2.2.2、主节点安装mysql

  • 1、 查看是否有mysql-server
    yum list mysql-server
  • 2、 通过 yum install mysql-server 安装mysql服务器有选择时输入 y ,最后看
    到 Complete ,表示安装服务器成功
  • 3、 常见错误解决方法
    如果出现 yum [Errno 256] No more mirrors to try 的错误,
    输入下面的命令即可解决问题:
    yum clean all
    yum makecache
    然后再从新执行:
    yum list
    yum install mysql-server 即可
  • 4、 执行 startMysql.sh 初始化数据库相关信息。

2.4、NTP安装

  • 1、 执行setNTP.sh,然后重启所有机器。

  • 2、 执行installNTP.sh脚本,观察输出值,其中2-5为on状态就代表成功。
    在这里插入图片描述

  • 3、 常见错误解决方法
    如果出现 yum [Errno 256] No more mirrors to try 的错误,输入下面的命令即可解决问题:
    yum clean all
    yum makecache
    然后再从新执行:
    yum list
    yum install ntp
    chkconfig ntpd on
    chkconfig --list ntpd 即可

  • 4、 配置NTP服务
    (1) 配置主节点的ntp服务

    修改masterntp.sh这个脚本里的ntpIp为时间同步服务器ip,如图所示,这个ip地址由事业部人员提供,用于时间同步。(可以选主机ip)
    在这里插入图片描述
    (2) 然后执行脚本masterntp.sh,执行后查看ntp状态,命令ntpstat
    在这里插入图片描述
    这个过程需要5-10分钟,最终变成以下效果: 在这里插入图片描述

  • 5、 配置子节点的ntp服务
    在主节点执行脚本slaverNtp.sh

3、CDH Manager包文件文件上传分发

  • 1、下载cloudera-manager-el6-cm5.5.2_x86_64 ,放到主节点shell目录下
  • 2、执行installCDH.sh脚本。
  • 3、将CHD5相关的Parcel包上传到主节点的 /opt/cloudera/parcel-repo/ 下,相关的文件如下网页)及列表文件:
    CDH-5.5.2-1.cdh5.5.2.p0.4-el6.parcel
    CDH-5.5.2-1.cdh5.5.2.p0.4-el6.parcel.sha1
    manifest.json
  • 4、执行脚本startCDHService.sh
    需要修改:
    chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
    /opt/cm-5.5.2/etc/init.d/cloudera-scm-server restart
    for host_ip in $(cat /root/shell/hostip.properties)
    do
       echo $hostip
       ssh -p 22 root@$host_ip "sysctl vm.swappiness=0"
       ssh -p 22 root@$host_ip "echo \"vm.swappiness=0\" >> /etc/sysctl.conf"
       ssh -p 22 root@$host_ip "echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag"
       #ssh -p 22 root@$host_ip "chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo"
       ssh -p 22 root@$host_ip "mkdir /var/log/cloudera-scm-agent/"
       ssh -p 22 root@$host_ip "mkdir /var/lib/cloudera-scm-agent/
       ssh -p 22 root@$host_ip "/opt/cm-5.5.2/etc/init.d/cloudera-scm-agent restart"
    done	
    

4、CDH5的安装配置

  • 1、Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
    这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin
    192.168.19.128:7180/cmf/login
  • 2、选择免费版安装
    在这里插入图片描述
    没错误可以继续,

    • 根据提示安装CDH包,可以在线安装,或者提前手动下载后复制到/opt/cloudera/parcel-repo目录
    • 前面已经放入/opt/cloudera/parcel-repo三个文件,如下
    • CDH-5.5.2-1.cdh5.5.2.p0.4-el6.parcel、CDH-5.5.2-1.cdh5.5.2.p0.4-el6.parcel.sha1、manifest.json,
    • 这里会提示 “CDH-..-.cdh*...p0.-el.parcel没有 .sha验证文件”,将CDH-..-.cdh*...p0.-el.parcel.sha1改后缀为sha,点击刷新,就可以安装。

(另外,CDH manaenger会认CDH版本,可以根据提示在线下载选定的版本,或者手动下载后复制到/opt/cloudera/parcel-repo目录)。

所有服务都不装,主机占用内存~2G,磁盘10G, 其他从机内存400M,磁盘6G。。。
在这里插入图片描述 在这里插入图片描述

  • 3、安装服务,选 自【定义服务】根据自己需要选择安装 (也可跳过后期再添加)
    在这里插入图片描述
    // 后续根据需要配置安装
    Zookerper直接添加服务。
    Kafka先要下载parcel包,分配成功后,再激活。最后在主页添加服务。

  • 4、数据库设置
    在这里插入图片描述

    • 1、hive对应的输入hive/root/root123456
    • 2、Oozie server对应的输入amon/root/root123456
  • 5、Hive驱动引起的错误
    在这里插入图片描述
    解决方法, 在主节点上输入命令:

cp shell/mysql/mysql-connector-java-5.1.37-bin.jar /opt/cloudera/parcels/CDH-5.5.2-1.cdh5.5.2.p0.4/lib/hive/lib/

在这里插入图片描述

  • 6、oozie出现以上类似错误
    解决方法, 在主节点上输入命令
    oozie安装出错时 把mysql-driver拷贝到 /var/lib/oozie
    cp shell/mysql/mysql-connector-java-5.1.37-bin.jar /var/lib/oozie

  • 7、基本流程按照下面的流程走,遇到问题有相依的处理方法,但注意以下的几个配置路径要放在文件空间目录上。
    在这里插入图片描述

  • 8、完成安装
    在这里插入图片描述

5、hdfs的高可用配置

高可用性配置参考《CDH里HDFS的HA配置.doc》。

6、kafka安装

CDH安装完成以后需要安装kafka,如何安装参见CDH集成Kafka文档:kafka_CDH/CDH集成Kafka.docx

7、配置修改

  • 1、 hdfs的配置修改,将检查hdfs权限(dfs.permissions)这个勾选去除,不选中。
  • 2、 flume安装完成以后需要修改系统用户和系统组为:root。
  • 3、 修改flume每个要使用到的agent,单独配置修改Java堆栈大小为4G.
  • 4、 kafka的日志目录设置为一个存储空间较大的磁盘,配置项为:Data Directories(log.dirs)。
  • 5、 kafka每个broker单独配置该broker的advertised.host.name为本机ip,暴露本地ip供外部producer连接。

8、断电启动异常(重要)

目前仅启动 zookeeper、 kafka
断电之后,我们尝试重启cdh,通过命令行
h1.hadoop

# /opt/cm-5.5.2/etc/init.d/cloudera-scm-server restart
cloudera-scm-server is already stopped
Starting cloudera-scm-server:                              [  OK  ]

h1-h4.hadoop

# /opt/cm-5.5.2/etc/init.d/cloudera-scm-agent restart
cloudera-scm-agent is already stopped
Starting cloudera-scm-agent:                               [  OK  ]

都正常,但是 http://192.168.3.171:7180/cmf/home 不能访问。找到根本错误如下

[root@h1 init.d]# /opt/cm-5.5.2/etc/init.d/cloudera-scm-server status
cloudera-scm-server dead but pid file exists

先直接rm run/cloudera-scm-server.pid, 再次启动仍然不能访问。

没有去查看cloudera的详细日志,先查看了mysql的相关进程和服务。

# /etc/rc.d/init.d/mysqld status
mysqld is stopped
[root@h1 shell]# service mysqld start
Another MySQL daemon already running with the same unix socket.
Starting mysqld:                                           [FAILED]

[root@h1 bin]# find / -name mysql.sock
/var/lib/mysql/mysql.sock
[root@h1 bin]# mysql -u root -p -S /var/lib/mysql/mysql.sock
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

数据库异常,直接 rm /var/lib/mysql/mysql.sock,再执行

[root@h1 mysql]# service mysqld start
Starting mysqld:                                           [  OK  ]

后面再启动cdh,再次访问7180端口网页,重启相关服务。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wanggao_1990/article/details/127463774