版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/51768968
二、安装Hadoop及其所需的服务 1. CDH安装概述 CDH的全称是Cloudera's Distribution Including Apache Hadoop,是Cloudera公司的Hadoop分发版本。有三种方式安装CDH: . Path A - 通过Cloudera Manager自动安装 . Path B - 使用Cloudera Manager Parcels或Packages安装 . Path C - 使用Cloudera Manager Tarballs手工安装 不同方式的安装步骤总结如下:
步骤 | |||
---|---|---|---|
步骤 1: 安装 JDK Cloudera Manager Server、Management Service和CDH需要安装JDK。 | 有两个选项: . 使用Cloudera Manager安装程序在集群中的所有主机的/usr/java下安装一个Oracle JDK的支持版本。 . 使用命令行在所有主机上安装一个Oracle JDK的支持版本,并且设置JAVA_HOME环境变量为JDK的安装目录。 | ||
步骤 2: 设置数据库 Cloudera Manager Server、Cloudera Management Service和某些CDH的可选服务需要安装、配置和启动数据库。 | 有两个选项: . 使用Cloudera Manager安装程序安装、配置和启动一个内嵌的PostgreSQL数据库。 . 使用诸如yum这样的命令行包安装工具安装、配置和启动数据库。 | ||
Path A | Path B | Path | |
步骤 3: 安装Cloudera Manager服务器 在一台主机上安装和启动Cloudera Manager服务器。 | 使用Cloudera Manager安装程序安装服务器。需要该主机的sudo权限并能访问互联网。 | 使用Linux包安装命令(如yum)安装Cloudera Manager服务器。 修改数据库属性。 使用service命令启动Cloudera Manager服务器。 | 使用Linux命令解包,并且使用service命令启动服务。 |
步骤 4: 安装Cloudera Manager代理 在所有主机上安装并启动Cloudera Manager代理。 | 使用Cloudera Manager安装向导在所有主机上安装代理。 | 有两个选项: . 使用Linux包安装命令(如yum)在所有主机上安装Cloudera Manager代理。 . 使用Cloudera Manager安装向导在所有主机上安装代理。 | 使用Linux命令在所有主机上解包并启动代理。 |
步骤 5: 安装CDH和服务 在所有主机上安装CDH及其服务。 | 使用Cloudera Manager安装向导安装CDH及其服务。 | 有两个选项: . 使用Cloudera Manager安装向导安装CDH及其服务。 . 使用Linux包安装命令(如yum)在所有主机上安装CDH及其服务。 | 使用Linux命令在所有主机上解包,并使用service命令启动CDH及其服务。 |
步骤 6: 建立、配置并启动CDH和服务 在所有主机上配置并启动CDH及其服务。 | 使用Cloudera Manager安装向导给主机赋予角色并配置集群。许多配置是自动的。 | 使用Cloudera Manager安装向导给主机授予角色并配置集群。许多配置是自动的。 | 使用Cloudera Manager安装向导给主机赋予角色并配置集群。许多配置是自动的。也可以使用Cloudera Manager API管理一个集群,这对于脚本预配置部署是很有用的。 |
2. 实验环境
主机信息:
主机名 | IP地址 |
---|---|
CDH1 | 172.16.1.101 |
CDH2 | 172.16.1.102 |
CDH3 | 172.16.1.103 |
CDH4 | 172.16.1.104 |
硬件配置: 每台主机:CPU4核、内存8G、硬盘100G 软件版本:
名称 | 版本 |
---|---|
操作系统 | CentOS release 6.4 (Final) 64位 |
JDK | 1.7.0_80 |
数据库 | MySQL 5.6.14 |
JDBC | MySQL Connector Java 5.1.38 |
Cloudera Manager | 5.7.0 |
CDH | 5.7.0 |
3. 安装配置 (1)安装前准备(都是使用root用户在集群中的所有4台主机配置) . 从以下地址下载所需要的安装文件 http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.7.0_x86_64.tar.gz http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 http://archive.cloudera.com/cdh5/parcels/5.7/manifest.json
rpm -qa | grep xxxx 以下这些包必须安装: chkconfig python (2.6 required for CDH 5) bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap (rpcbind) fuse-libs redhat-lsb
vi /etc/hosts # 添加如下4行内容 172.16.1.101 cdh1 172.16.1.102 cdh2 172.16.1.103 cdh3 172.16.1.104 cdh4
CDH5推荐的JDK版本是1.7.0_67、1.7.0_75、1.7.0_80,这里安装1.7.0_80 注意:所有主机要安装相同版本的JDK;安装目录为/usr/java/jdk-version mkdir /usr/java/ mv jdk-7u80-linux-x64.tar.gz /usr/java/ cd /usr/java/ tar -zxvf jdk-7u80-linux-x64.tar.gz chown -R root:root jdk1.7.0_80/ vi /etc/profile.d/java.sh # 添加如下3行内容 export JAVA_HOME=/usr/java/jdk1.7.0_80 export CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/* export PATH=$PATH:$JAVA_HOME/bin # 使环境变量生效 source /etc/profile.d/java.sh
yum install ntp chkconfig ntpd on ntpdate -u 202.112.29.82 vi /etc/ntp.conf # 添加如下8行内容 driftfile /var/lib/ntp/drift restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 server 202.112.29.82 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys # 启动NTP服务 service ntpd start
useradd --system --home=/opt/cm-5.7.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm usermod -a -G root cloudera-scm echo USER=\"cloudera-scm\" >> /etc/default/cloudera-scm-agent echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin" >> /etc/sudoers
rpm -ivh MySQL-5.6.14-1.el6.x86_64.rpm vi /etc/profile.d/mysql.sh # 添加如下2行内容 export MYSQL_HOME=/home/mysql/mysql-5.6.14 export PATH=$PATH:$MYSQL_HOME/bin # 使环境变量生效 source /etc/profile.d/mysql.sh # 修改root密码 mysqladmin -u root password # 编辑配置文件 vi /etc/my.cnf # 内容如下 [mysqld] transaction-isolation = READ-COMMITTED log_bin=/data/mysql_binary_log binlog_format = mixed innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT key_buffer = 16M key_buffer_size = 32M max_allowed_packet = 32M thread_stack = 256K thread_cache_size = 64 query_cache_limit = 8M query_cache_size = 64M query_cache_type = 1 max_connections = 550 read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 8M join_buffer_size = 8M innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 64M innodb_buffer_pool_size = 4G innodb_thread_concurrency = 8 innodb_log_file_size = 512M [mysqld_safe] log-error=/data/mysqld.err pid-file=/data/mysqld.pid sql_mode=STRICT_ALL_TABLES # 添加开机启动 chkconfig mysql on # 启动MySQL service mysql restart # 根据需要建立元数据库 mysql -u root -p -e "create database hive DEFAULT CHARACTER SET utf8;create database rman DEFAULT CHARACTER SET utf8;create database oozie DEFAULT CHARACTER SET utf8;grant all on *.* TO 'root'@'%' IDENTIFIED BY 'mypassword';"
tar -zxvf mysql-connector-java-5.1.38.tar.gz cp ./mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /usr/share/java/mysql-connector-java.jar
# 分别在四台机器上生成密钥对: cd ~ ssh-keygen -t rsa # 然后一路回车 # 在cdh1上执行: cd ~/.ssh/ ssh-copy-id cdh1 scp /root/.ssh/authorized_keys cdh2:/root/.ssh/ # 在cdh2上执行: cd ~/.ssh/ ssh-copy-id cdh2 scp /root/.ssh/authorized_keys cdh3:/root/.ssh/ #在cdh3上执行: cd ~/.ssh/ ssh-copy-id cdh3 scp /root/.ssh/authorized_keys cdh4:/home/grid/.ssh/ #在cdh4上执行: cd ~/.ssh/ ssh-copy-id cdh4 scp /root/.ssh/authorized_keys cdh1:/root/.ssh/ scp /root/.ssh/authorized_keys cdh2:/root/.ssh/ scp /root/.ssh/authorized_keys cdh3:/root/.ssh/ (2)在cdh1上安装Cloudera Manager tar -xzvf cloudera-manager*.tar.gz -C /opt/ # 建立cm数据库 /opt/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pmypassword --scm-host localhost scm scm scm # 配置cm代理 vi /opt/cm-5.7.0/etc/cloudera-scm-agent/config.ini # 将cm主机名改为cdh1 server_host=cdh1 # 将Parcel相关的三个文件拷贝到/opt/cloudera/parcel-repo cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel /opt/cloudera/parcel-repo/ cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/ cp manifest.json /opt/cloudera/parcel-repo/ # 改名 mv /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha # 修改属主 chown -R cloudera-scm:cloudera-scm /opt/cloudera/ chown -R cloudera-scm:cloudera-scm /opt/cm-5.7.0/ # 将/opt/cm-5.7.0目录拷贝到其它三个主机 scp -r -p /opt/cm-5.7.0 cdh2:/opt/ scp -r -p /opt/cm-5.7.0 cdh3:/opt/ scp -r -p /opt/cm-5.7.0 cdh4:/opt/ (3)在每个主机上建立/opt/cloudera/parcels目录,并修改属主 mkdir -p /opt/cloudera/parcels chown cloudera-scm:cloudera-scm /opt/cloudera/parcels (4)在cdh1上启动cm server /opt/cm-5.7.0/etc/init.d/cloudera-scm-server start # 此步骤需要运行一些时间,用下面的命令查看启动情况 tail -f /opt/cm-5.7.0/log/cloudera-scm-server/cloudera-scm-server.log (5)在所有主机上启动cm agent mkdir /opt/cm-5.7.0/run/cloudera-scm-agent chown cloudera-scm:cloudera-scm /opt/cm-5.7.0/run/cloudera-scm-agent /opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start (6)登录cm控制台,安装配置CDH5及其服务 打开控制台 http://172.16.1.101:7180/ 页面如下图所示。
缺省的用户名和密码都是admin,登录后进入欢迎页面。勾选许可协议,如下图所示,点继续。
进入版本说明页面,如下图所示,点继续。
进入服务说明页面,如下图所示,点继续。
进入选择主机页面,如下图所示,全选四个主机,点继续。
进入选择存储库页面,如下图所示,点继续。
进入集群安装页面,如下图所示,点继续。
进入验证页面,如下图所示,点完成。
进入集群设置页面,如下图所示,根据需要选择服务,点继续。
进入自定义角色分配页面,如下图所示,保持不变,点继续。
进入数据库设置页面,填写相关信息,点测试连接,如下图所示,点继续。
进入审核更改页面,保持不变,点继续。 进入首次运行页面,等待运行完,如下图所示,点继续。
进入安装成功页面,如下图所示,点完成。
进入安装成功页面,如下图所示。
至此,CDH安装完成,主机和角色对应如下表所示。
服务 | 角色 | 主机 |
---|---|---|
HDFS | DataNode | cdh1 |
cdh3 | ||
cdh4 | ||
NameNode | cdh2 | |
SecondaryNameNode | cdh2 | |
Hive | Hive Metastore Server | cdh2 |
HiveServer2 | cdh2 | |
Hue | Hue Server | cdh2 |
Impala | Impala Catalog Server | cdh2 |
Impala Daemon | cdh1 | |
cdh3 | ||
cdh4 | ||
Impala StateStore | cdh2 | |
Oozie | Oozie Server | cdh2 |
Sqoop 2 | Sqoop 2 Server | cdh2 |
YARN | JobHistory Server | cdh2 |
NodeManager | cdh1 | |
cdh3 | ||
cdh4 | ||
ResourceManager | cdh2 |
CDH的官方安装文档URL地址为:
http://www.cloudera.com/documentation/enterprise/latest/topics/installation.html