本帖最后由 Tank_2000 于 2016-12-22 21:33 编辑
第一部分:Hadoop集群环境配置
1.关闭防火墙
打开文件selinux:vi /etc/sysconfig/selinux 修改SELINUX属性值修改如下: SELINUX=disabled chkconfig iptables off reboot 查看防火墙状态 [root@master ~]# chkconfig iptables --list iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off 2.网卡设置vi etc/sysconfig/network-scripts/ifcfg-eth0 修改如下内容(带注释的为变动内容): DEVICE="eth0" BOOTPROTO="static" #将IP设置为静态方式 HWADDR="00:0C:29:A5:C3:44" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="873daada-a6f5-4ff1-8510-c3eb722afd41" IPADDR="192.168.1.120" #IP地址 NETMASK="255.255.255.0" #子网掩码 GATEWAY="192.168.1.1" #网关 DNS1=202.106.195.68 #DNS地址1 DNS2=202.106.46.151 #DNS地址2 reboot 重启机器 3.设置主机名修改主机名主节点取名master 通过命令打开network文件:vi /etc/sysconfig/network 将文件内容改成如下: NETWORKING=yes HOSTNAME=master 4.修改hosts文件vi /etc/hosts 修改成如下内容: 127.0.0.1 localhost 192.168.1.120 master 192.168.1.121 slave1 注:在Centos Linux系统中,网络的配置可以通过修改几个配置文件来实现 /ect/hosts配置主机名和IP地址的对应 /etc/sysconfig/network配置主机名和网关 /etc/sysconfig/network-scripts/ifcfg-eth0 配置文件配置网卡信息,第一张网卡ifcfg-eth0,eth1则文件名为ifcfg-eth1,以此类推。 网关配置也可以在ifcfg-eth0里面进行,所以网关配置就放在eth0里面,在network中就不用进行设置了。 5.JDK安装
版本要求:
http://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_jdk
安装jdk rpm包
rpm -ivh jdk-7u80-linux-x64.rpm 设置java环境变量 vi /etc/profile 文件末尾加入如下内容: export JAVA_HOME=/usr/java/jdk1.7.0_80 export PATH=$JAVA_HOME/bin:$PATH exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 6.安装配置ntp服务
6.1安装ntp服务
yum install ntp 6.2 配置ntpvi /etc/ntp.conf # Use public servers from the pool.ntp.orgproject. # Please consider joining the pool(http://www.pool.ntp.org/join.html). server master prefer 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 6.3启动ntp服务service ntpd start 7.克隆节点关闭主节点,然后克隆slave1 右击主节点标签-->管理-->克隆-->克隆虚拟机向导 克隆完成后,设置slave1 IP为192.168.1.121, hostname 为slave1 重启电脑 重启完成后,修改slave1的网卡eth1信息: 获取eth1的MAC地址 ifconfig eth1 获取eth1的UUID nmcli con 修改以下文件内容: vi/etc/udev/rules.d/70-persistent-net.rules 将里面的eth 0相应的行注释,同时将eth1行中eth1改成eth0 修改网卡 vi /etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR= eth1 的MAC UUID=eth1的UUID 重启 8.设置集群节点间免密钥登陆在master节点home目录下 cd .ssh 执行命令:ssh-keygen -t rsa 然后一直回车 然后将生成的公钥id_rsa.pub 内容拷贝到authorized_keys文件中 cat id_rsa.pub >>~/.ssh/authorized_keys 给秘钥文件授权 chmod 600 authorized_keys 将秘钥文件复制到slave1中 scp authorized_keys root@slave1:~/.ssh 到这里就可以从master免密钥登陆到slave1节点上了 9.外部数据库安装与配置
9.1 mysql 安装
官方方文档 http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_mysql.html#cmig_topic_5_5_2 [root@master ~]# yum install mysql-server 安装完毕后 设置开机启动 chkconfig mysqld on 启动mysql数据库 service mysqld start 登录mysql 并创建hive数据库 mysql -uroot 密码默认是空,直接回车 下载mysql驱动包 http://www.mysql.com/downloads/connector/j/5.1.html 将驱动包复制到指导路径,并重新命名为:mysql-connector-java.jar mkdir -p /usr/share/java/ cpmysql-connector-java-5.1.40-bin.jar /usr/share/java/mysql-connector-java.jar 9.2 创建外部数据库--- --hive数据库 mysql> create database hive DEFAULTCHARSET latin1; Query OK, 1 row affected (0.00 sec) --集群监控数据库 mysql> create database amon DEFAULTCHARSET utf8; Query OK, 1 row affected (0.00 sec) --hue数据库 mysql> create database hue DEFAULTCHARSET utf8; Query OK, 1 row affected (0.00 sec) --oozie数据库 mysql> create database oozie defaultcharset utf8; Query OK, 1 row affected (0.04 sec) mysql> grant all privileges on hive.* to'scm'@'%' identified by '123456' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on amon.* to'scm'@'%' identified by '123456' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on hue.* to'scm'@'%' identified by '123456' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on oozie.*to 'scm'@'%' 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) 第二部分:Cloudera manager 的安装
1.1 下载安装包
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.8.0_x86_64.tar.gz 下载完压缩包后上传到/opt目录下解压, cd /opt tar -zxvf cloudera-manager-el6-cm5.8.0_x86_64.tar.gz 解压后路径为:/opt/cm-5.8.0 1.2创建用户(所有节点)创建cm服务用户 useradd --system --home=/opt/cm-5.8.0/run/cloudera-scm-server--no-create-home --shell=/bin/false --comment "Cloudera SCM User"cloudera-scm 创建cm服务日志本地目录,并将目录授予cloudera-scm 用户所有 mkdir/var/log/cloudera-scm-server chown cloudera-scm:cloudera-scm/var/log/cloudera-scm-server 1.3配置Cloudera Manager Agentsvi /opt/cm-5.8.0/etc/cloudera-scm-agent/config.ini将内容修改如下: # Hostname of the CM server. server_host=master 1.4 拷贝Agent到slave1节点scp -r /opt/cm-5.8.0 root@slave1:/opt 1.5初始化CM5数据库执行以下脚本 /opt/cm-5.8.0/share/cmf/schema/scm_prepare_database.shmysql cm -h master -u root -p --scm-host master scm scm scm 脚本参数说明: -h --mysql数据库所在的IP地址或者主机名 -u --mysql数据库用户名 -p --mysql 数据库密码 --scm-host --CM 服务所在的IP地址或主机名,一般跟mysql安装在同一台节点上 第三部分:CDH安装
1.软件包下载
进入URL:http://archive.cloudera.com/cdh5/parcels/5.8.0/ 下载以下三个文件: CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1 manifest.json 将CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1 重命名为CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha 2.创建Parcel目录在CM节点上创建Parcel目录 mkdir -p /opt/cloudera/parcel-repo 每个节点上创建目录 mkdir -p /opt/cloudera/parcels 3.启动CM服务/opt/cm-5.8.0/etc/init.d/cloudera-scm-serverstart 设置CM 开机启动 cp /opt/cm-5.8.0/etc/init.d/cloudera-scm-server/etc/init.d/cloudera-scm-server vi /etc/init.d/cloudera-scm-server 将里面的某段内容改成如下: CMF_DEFAULTS=$(readlink -e $(dirname${BASH_SOURCE-$0})/../default) 将${CMF_DEFAULTS:-/etc/default} 替换成以下红色部分 CMF_DEFAULTS=/opt/cm-5.8.0/etc/default 4.启动Agent服务在每个节点上启动命令 /opt/cm-5.8.0/etc/init.d/cloudera-scm-agent start 每个节点上设置Agent 开机启动 cp /opt/cm-5.8.0/etc/init.d/cloudera-scm-agent/etc/init.d/cloudera-scm-agent chkconfig cloudera-scm-agent on 同样的 vi /etc/init.d/cloudera-scm-agent 将里面的某段内容改成如下: CMF_DEFAULTS=$(readlink -e $(dirname${BASH_SOURCE-$0})/../default) 将${CMF_DEFAULTS:-/etc/default} 替换成以下红色部分 CMF_DEFAULTS=/opt/cm-5.8.0/etc/default 5.安装依赖包根据官方说明,CDH5.8.0的离线安装需要安装以下依赖包,红色我当前为CentOS6.5系统没有安装的依赖包(通过rpm -qa |grep 报名逐一检查),需要手动yum安装 bind-utils chkconfig yum install -y cyrus-sasl-gssapi cyrus-sasl-plain fuse fuse-libs gcc httpd yum install -y init-functions libxslt yum install -y mod_ssl yum install -y MySQL-python openssl yum install -y openssl-devel perl yum install -y portmap yum install -y postgresql-server>= 8.4 psmisc python >= 2.4.3-43 yum install -y python-devel>= 2.4.3-43 yum install -y python-psycopg2 yum install -y python-setuptools sed service sqlite yum install -y swig useradd zlib
6.CM管理界面中安装CDH通过输入地址:http://192.168.1.120:7180,用户名密码都是:admin
选择接受条款,继续下一步
进入CDH版本界面,选择免费版,点继续
从这里开始,将开始进入CDH软件及相关服务的安装 选择当前管理的机主便签,勾选master,slave1两个主机,继续(同时你也可以选择新主机标签,然后在里面输入指定的主机IP搜索并勾选出需要的主机)
选择Parcel安装方式,这里在默认选择CDH的版本中系统默认的是最新版本,没有我们要安装的5.8.0,此时我们需要点击“更多选择”,进去将远程Parcel存储库URL修改成http://archive.cloudera.com/cdh5/parcels/5.8.0/ 如下图:
保存更改后,可以看到我们需要安装的版本了,选择我们的版本,然后点继续
在安装过程中,可以通过tail -f /opt/cm-5.8.0/log/cloudera-scm-server/cloudera-scm-server.log查看相关的日志信息。
7.CDH服务安装7.1 组合服务安装 根据自己的需要,选择组合的服务,继续
下一步是主机角色的分配,这里我们按默认
数据库配置 用户名/密码:root /123456 ,测试通过后,继续 审核服务,默认就可以
第四部分:安装异常总结
1.agent 启动异常
[root@slave1 ~]#/opt/cm-5.8.0/etc/init.d/cloudera-scm-agent start Starting cloudera-scm-agent: [FAILED] 查看日志:/opt/cm-5.8.0/log/cloudera-scm-agent/cloudera-scm-agent.out [05/Nov/2016 06:57:48 +0000] 5975 MainThreadagent INFO SCM Agent Version: 5.8.0 Unable to create the pidfile. 原因是某个目录无法创建导致 解决办法: 每个节点上创建目录 mkdir /opt/cm-5.8.0/run/cloudera-scm-agent 再次启动成功 [root@master init.d]# /opt/cm-5.8.0/etc/init.d/cloudera-scm-agentstart Starting cloudera-scm-agent: [ OK
2.启动HDFS失败
3.启动hive失败
解决办法:开启服务
nohuphive --service metastore &
nohup hive --service hiveserver2 &
4.jps 提示无法识别进程
解决办法:
使用对应的用户去查看jps
|