安装 Cloudera Manager、CDH、KUDU 随手记
来源:互联网 发布:中兴网络机顶盒官网 编辑:程序博客网 时间:2024/05/17 02:29
转自:https://my.oschina.net/balajinima/blog/862969
一、关于CDH和Cloudera Manager
CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。
二、系统环境
操作系统:CentOS 6.6 x64Cloudera Manager:5.10.0CDH: 5.10.0KUDU: 1.2.0
三、安装包准备
1.Cloudera Manager仓库镜像包下载地址:
https://archive.cloudera.com/cm5/repo-as-tarball/5.10.0/cm5.10.0-centos6.tar.gz
2.CDH parcel安装包地址:
https://archive.cloudera.com/cdh5/parcels/5/CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel
https://archive.cloudera.com/cdh5/parcels/5/CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha1
https://archive.cloudera.com/cdh5/parcels/5/manifest.json
3.kudu 的 parcel 安装包地址:
http://archive.cloudera.com/kudu/parcels/latest/KUDU-1.2.0-1.cdh5.10.0.p0.55-el6.parcel
http://archive.cloudera.com/kudu/parcels/latest/KUDU-1.2.0-1.cdh5.10.0.p0.55-el6.parcel.sha1
4.kudu 的 csd 安装包地址:
http://archive.cloudera.com/kudu/csd/KUDU-5.10.0.jar
注意: 通过 Cloudera Manager 安装parcel时sha1格式的文件需要提前修改为sha。
四、准备工作
1.更新系统(所有节点)
yum -y update
2.网络配置(所有节点)
修改hostname:
vi /etc/sysconfig/network
编辑
NETWORKING=yesHOSTNAME= hadoop35.test.com
通过service network restart重启网络服务生效。
修改ip与主机名的对应关系
vi /etc/hosts,
编辑
10.10.25.35 hadoop35.test.com10.10.25.36 hadoop36.test.com10.10.25.37 hadoop37.test.com10.10.25.38 hadoop38.test.com10.10.25.43 hadoop43.test.com10.10.25.44 hadoop44.test.com10.10.25.45 hadoop45.test.com10.10.25.46 hadoop46.test.com
注意:这里需要将每台机器的ip及主机名对应关系都写进去,本机的也要写进去,否则启动Agent的时候会提示hostname解析错误。
3.配置公钥认证(用于免密登录)
在管理节点(hadoop35.test.com)上执行
ssh-keygen -t rsa
一路回车,生成无密码的密钥对。
将公钥添加到认证文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置authorized_keys的访问权限:
chmod 600 ~/.ssh/authorized_keys
scp文件到所有受管节点( 10.10.25.35,36,37,38 和 10.10.25.43,44,45,46)的~/.ssh目录:
scp ~/.ssh/authorized_keys root@hadoop35.test.com:~/.ssh/
测试:在管理节点上ssh hadoop36.test.com,正常情况下,不需要密码就能直接登陆进去了。
注意:.ssh目录访问权限是700 authorized_keys的文件访问权限是600
4.关闭防火墙和SELinux(所有节点)
注意:需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
关闭防火墙:
service iptables stop (临时关闭) chkconfig iptables off (重启后生效)
关闭SELINUX(实际安装过程中发现没有关闭也是可以的,不知道会不会有问题,还需进一步进行验证):
setenforce 0 (临时生效) 修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
5.配置NTP服务
yum安装ntp(所有节点):
yum -y install ntp
在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用us.pool.ntp.org作为对时中心,ntpdate us.pool.ntp.org
。
按照Cloudera 的官方建议,所有的CDH节点和Cloudea Manager节点都需要启动ntpd服务。要不然会报如下错误:
1)此角色的主机的运行状况为不良。 以下运行状况测试不良: 时钟偏差.
2)The host’s NTP service is not synchronized to any remote server.
解决方法如下: 先配置一台NTP服务,然后所有的CDH节点都作为此NTP服务的客户端。 1,NTPD服务,hadoop35.test.com,此机器负责与外部网络的NTPD服务同步标准时间,并作为局域网内的NTPD服务器。 2,NTPD客户端,10.10.25.35,36,37,38 和 10.10.25.43,44,45,46,这些机器与hadoop35.test.com上的NTPD服务同步时间。
配置步骤:
a,配置内网NTP-Server(管理节点)
(1) 允许客户机的配置
修改ntp.conf配置文件 vi /etc/ntp.conf
①、第一种配置:允许任何IP的客户机都可以进行时间同步 将restrict default kod nomodify notrap nopeer noquery
这行修改成:
restrict default nomodify
②、第二种配置:只允许10.10.25.*网段的客户机进行时间同步 在restrict default nomodify notrap noquery(表示默认拒绝所有IP的时间同步)之后增加一行: restrict 10.10.25.0 mask 255.255.255.0 nomodify
(2) 同步时间设置 ①通过网络同步时间
server 0.centos.pool.ntp.orgserver 1.centos.pool.ntp.orgserver 2.centos.pool.ntp.org
②使用本地时间
server 127.127.1.0 # local clockfudge 127.127.1.0 stratum 10
配置文件完成,保存退出,启动服务,执行如下命令:service ntpd start
检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:
synchronised to NTP server (80.241.0.72) at stratum 2 time correct to within 144 mspolling server every 64 s
如果出现异常请等待几分钟,一般等待5-10分钟才能同步。
设置ntp服务,开机自启动:chkconfig ntpd on
b,配置NTP客户端(受管节点)
修改ntp.conf配置文件 vi /etc/ntp.conf
通过 hadoop35.test.com 同步时间
server hadoop35.test.com
配置文件完成,保存退出,启动服务,执行如下命令:service ntpd start
设置ntp服务,开机自启动:chkconfig ntpd on
客户端校验配置
ntpq -p查询上级时间服务器
ntpstat 查询状态
6.优化虚拟内存需求率(所有节点)
1)检查虚拟内存需求率
cat /proc/sys/vm/swappiness
显示如下:
60
2)临时降低虚拟内存需求率
sysctl vm.swappiness=0
3)永久降低虚拟内存需求率
使用命令 vi /etc/sysctl.conf 增加vm.swappiness = 0
并运行如下命令使生效
sysctl -p
7.解决透明大页面问题(所有节点)
1)检查透明大页面问题
cat /sys/kernel/mm/transparent_hugepage/defrag
如果显示为:
[always] madvise never
2)临时关闭透明大页面问题
echo never > /sys/kernel/mm/transparent_hugepage/defrag
确认配置生效:
cat /sys/kernel/mm/transparent_hugepage/defrag
应该显示为:
always madvise [never]
3)配置开机自动生效
使用命令 vi /etc/rc.local,加入如下内容echo never > /sys/kernel/mm/transparent_hugepage/defrag
8.安装Oracle的Java(主节点安装,其他节点卸载)
CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7的支持。
卸载自带的OpenJdk,使用 rpm -qa | grep java
查询java相关的包,使用 rpm -e --nodeps 包名
卸载。或者使用 yum remove java
卸载
在这里使用了cloudera仓库中的jdk的rpm安装包,使用rpm -ivh 包名
进行安装。 配置环境变量:
修改profile vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67-clouderaexport JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
立即生效 source /etc/profile
9.安装配置MariaDB(管理节点)
a. 确保/var/lib/mysql目录有足够大的磁盘空间
b. 卸载自带的mysql。
yum remove mysql
c. 创建MariaDB yum仓库
vi /etc/yum.repos.d/MariaDB.repo
添加以下内容
[mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.1/centos6-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
d. 安装MariaDB
yum install MariaDB-server MariaDB-client MariaDB-devel
e. 配置my.conf
vi /etc/my.cnf
用以下内容替换
[mysqld]transaction-isolation = READ-COMMITTED# Disabling symbolic-links is recommended to prevent assorted security risks;# to do so, uncomment this line:# symbolic-links = 0key_buffer = 16Mkey_buffer_size = 32Mmax_allowed_packet = 32Mthread_stack = 256Kthread_cache_size = 64query_cache_limit = 8Mquery_cache_size = 64Mquery_cache_type = 1max_connections = 550#expire_logs_days = 10#max_binlog_size = 100M#log_bin should be on a disk with enough free space. Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your system#and chown the specified folder to the mysql user.log_bin=/var/lib/mysql/mysql_binary_logbinlog_format = mixedread_buffer_size = 2Mread_rnd_buffer_size = 16Msort_buffer_size = 8Mjoin_buffer_size = 8M# InnoDB settingsinnodb_file_per_table = 1innodb_flush_log_at_trx_commit = 2innodb_log_buffer_size = 64Minnodb_buffer_pool_size = 4Ginnodb_thread_concurrency = 8innodb_flush_method = O_DIRECTinnodb_log_file_size = 512M[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
h. 启动MariaDB
service mysql start
g. 查看MariaDB版本
mysql --version
输出
mysql Ver 15.1 Distrib 10.1.21-MariaDB, for Linux (x86_64) using readline 5.1
h. 设置开机启动
chkconfig mysql on
i. 初始化数据库
$ sudo /usr/bin/mysql_secure_installation[...]Enter current password for root (enter for none):OK, successfully used password, moving on...[...]Set root password? [Y/n] yNew password:Re-enter new password:Remove anonymous users? [Y/n] Y[...]Disallow root login remotely? [Y/n] N[...]Remove test database and access to it [Y/n] Y[...]Reload privilege tables now? [Y/n] YAll done!
j. 使用mysql -uroot -p
进入mysql命令行,创建数据库和用户:
create database hive DEFAULT CHARACTER SET utf8;grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';create database hue DEFAULT CHARACTER SET utf8;grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';create database oozie DEFAULT CHARACTER SET utf8;grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';
刷新 flush privileges;
10.安装mysql JDBC 驱动(管理节点)
下载mysql JDBC 驱动放到目录 /usr/share/java/
并修改名为mysql-connector-java.jar 下载地址http://www.mysql.com/downloads/connector/j/5.1.html.
五、安装配置 Cloudera Manager(管理节点)
1.建立Cloudera Manager安装文件自定义存储库
a.安装httpd服务器
查询一下是否已经安装了apache
rpm -qa httpd
如果还没有则进行安装
yum -y install httpd
启动apache
service httpd start
开机自启动
chkconfig httpd on
b.将Cloudera Manager仓库镜像包cm5.10.0-centos6.tar.gz
解压到/var/www/html/cm
目录,文件目录结构如下
2.通过rpm安装包本地安装 Cloudera Manager
到目录 /var/www/html/cm/5/RPMS/x86_64
yum --nogpgcheck localinstall cloudera-manager-daemons-5.10.*.rpm cloudera-manager-server-5.10.*.rpm enterprise-debuginfo-5.10.*.rpm
3.Parcel和csd格式文件上传
a. 上传下列文件到Parcel包的存放路径: /opt/cloudera/parcel-repo/
CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel CDH-5.10.0-1.cdh5.10.0.p0.41-el6.parcel.sha KUDU-1.2.0-1.cdh5.10.0.p0.55-el6.parcel KUDU-1.2.0-1.cdh5.10.0.p0.55-el6.parcel.sha manifest.json
b.上传最新的kudu csd文件到csd包存放路径: /opt/cloudera/csd/
KUDU-5.10.0.jar
最后目录结构如下:
4.配置 Cloudera Manager Server 数据库
使用命令scm_prepare_database.sh创建Cloudera Manager Server数据库配置文件
命令格式如下
/usr/share/cmf/schema/scm_prepare_database.sh database-type [options] database-name username password
如:
/usr/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
执行完成后生成数据库配置文件/etc/cloudera-scm-server/db.properties
# Auto-generated by scm_prepare_database.sh on Tue Feb 28 18:23:16 CST 2017## For information describing how to configure the Cloudera Manager Server# to connect to databases, see the "Cloudera Manager Installation Guide."#com.cloudera.cmf.db.type=mysqlcom.cloudera.cmf.db.host=localhostcom.cloudera.cmf.db.name=scmcom.cloudera.cmf.db.user=scmcom.cloudera.cmf.db.password=scmcom.cloudera.cmf.db.setupType=EXTERNAL
参考链接:http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_installing_configuring_dbs.html
5.启动Cloudera Manager Server
service cloudera-scm-server start
等待大概两分钟,访问 http://10.10.25.35:7180/ 进入管理端 (登陆名:admin 密码:admin)
6.配置
六、修改impala参数
1、时区问题:
默认impala配置不是中国的时区,所以在用from_unixtime的时候,有误差。 解决方案:impala启动时加 -use_local_tz_for_unix_timestamp_conversions=true
在cdh里面 impala->配置->impala Daemon ->Impala Daemon 命令行参数高级配置代码段(安全阀)
加
-use_local_tz_for_unix_timestamp_conversions=true
七、安装配置 kudu 服务
安装参考
http://www.cloudera.com/documentation/betas/kudu/latest/topics/kudu_installation.html 的 Install Kudu Using Parcels 章节。
八、验证安装情况
登录 # impala-shell
a.查看impala-shell版本
Starting Impala Shell without Kerberos authenticationConnected to hadoop36.test.com:21000Server version: impalad version 2.7.0-cdh5.10.0 RELEASE (build 785a073cd07e2540d521ecebb8b38161ccbd2aa2)***********************************************************************************Welcome to the Impala shell.(Impala Shell v2.7.0-cdh5.10.0 (785a073) built on Fri Jan 20 12:03:56 PST 2017)To see live updates on a query's progress, run 'set LIVE_SUMMARY=1;'.***********************************************************************************[hadoop36.test.com:21000] >
执行
select version();
显示
Query: select version()Query submitted at: 2017-03-01 11:52:01 (Coordinator: http://hadoop36.test.com:25000)Query progress can be monitored at: http://hadoop36.test.com:25000/query_plan?query_id=3240bf5cc2cbfa7b:390c36da00000000+------------------------------------------------------------------------------------------+| version() |+------------------------------------------------------------------------------------------+| impalad version 2.7.0-cdh5.10.0 RELEASE (build 785a073cd07e2540d521ecebb8b38161ccbd2aa2) || Built on Fri Jan 20 12:03:56 PST 2017 |+------------------------------------------------------------------------------------------+Fetched 1 row(s) in 1.11s
b.使用impala-shell
CREATE DATABASE impala_kudu;USE impala_kudu;CREATE TABLE my_first_table ( id BIGINT PRIMARY KEY, name STRING)PARTITION BY HASH PARTITIONS 5STORED AS KUDU TBLPROPERTIES('kudu.master_addresses' = 'hadoop36.test.com:7051,hadoop37.test.com:7051,hadoop38.test.com:7051,hadoop43.test.com:7051,hadoop44.test.com:7051,hadoop45.test.com:7051,hadoop46.test.com:7051') ;insert into my_first_table values(100,'张三');select * from my_first_table;
九、常见问题
问题1:在主节点初始化 CM5的数据库报错:ld-linux.so.2 bad ELF interpreter解决:安装 glibc 和 glibc.i686问题2:安装主机时报错报错:ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized>解决:$> ps -ef | grep supervisord$> kill -9 <processID>/opt/cm-5.6.0/etc/init.d/cloudera-scm-agent restart问题3:server启动时,日志提示端口被占用。解决:关闭java进程。问题4:web安装,当前管理的主机显示都是本地地址解决:注释/etc/hosts 的loaclhost ,在检查agent日志的报错。重启所有agent重启server问题5:web数据库设置,登入被拒绝解决:grant all privileges on *.* to 'hive'@'cdh1' identified by '123456' with grant option;FLUSH privileges;问题6:web安装时,群集设置 HDFS格式失败解决:删除原有的/dfs问题7:web安装时,群集设置HDFS 创建/tmp失败解决:ntp一定启动服务器,不能光用命令同步。(这个好像不是问题的所在,但是ntp服务必须要启动的)还出现,再重试试试。问题8:web管理页面提示时间偏差解决:检查ntpdc -c loopinfoName or service not knownvim /etc/hosts添加 本机IP对应localhost 地址问题9报错 JDBC driver cannot be found. Unable to find the JDBC database jar on host解决下载jar包: MySQL-connector-Java-5.1.27.jar重命名:mv mysql-connector-java-5.1.27.jar mysql-connector-java.jar移动:mv mysql-connector-java.jar /usr/share/java/问题10登录用户共同私钥私钥文件id_rsa所在位置$ cd ~/.ssh/将此文件下载后,在cm在线安装界面上传即可。问题11添加zookeeper实例错误当有一台机器正在跑zookeeper的时候,再添加其他的,就会报错如下Starting these new ZooKeeper Servers may cause the existing ZooKeeper Datastore to be lost. Try again after restarting any existing ZooKeeper Servers with outdated configurations. If you do not want to preserve the existing Datastore, you can start each ZooKeeper Server from its respective Status page.将正在运行的zookeeper实例停止,然后再三台一起启动即可。问题12启动kudu失败,错误日志提示Service unavailable: Cannot initialize clock: Error reading clock. Clock considered unsynchronized现状:到kudu实例节点运行ntpstat 输出unsynchronised polling server every 64 s 发现节点未完成同步,解决: 检查ntp服务,或等待2分钟后再查看是否完成同步
十、非root用户方案
1.所有节点添加普通用户(在本例中使用hadoop)
useradd -u 1050 hadoop
2.让普通用户获得sudo执行操作权限
编辑sudoers文件 vi /etc/sudoers
在# %wheel ALL=(ALL) NOPASSWD: ALL下增加%hadoop ALL=(ALL) NOPASSWD: ALL
允许用户组hadoop里面的用户执行sudo命令,并且在执行的时候不输入密码.
3.ssh免密登录
同准备步骤中的免密登录配置方式一致,用户hadoop用户生成秘钥,拷贝到其他机器的hadoop用户名目录,注意目录权限。
参考
http://blog.csdn.net/ymh198816/article/details/52423200
http://www.cnblogs.com/jasondan/p/4011153.html?utm_source=tuicool&utm_medium=referral
http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_path_b.html
https://mariadb.com/kb/en/mariadb/yum/
http://www.aboutyun.com/thread-9006-1-1.html
卸载cloudera参考
http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_uninstall_cm.html
- 安装 Cloudera Manager、CDH、KUDU 随手记
- Cloudera Manager及CDH安装
- 通过Cloudera Manager安装CDH
- Cloudera Manager and CDH安装及配置
- Cloudera Manager 和 CDH 4 终极安装
- Cloudera Manager 和 CDH 4 终极安装
- Cloudera Manager 和 CDH 4 终极安装
- CDH cloudera-manager-installer.bin 安装过程
- cloudera manager和cdh离线安装
- 通过Cloudera Manager安装CDH 5.6
- cloudera manager 离线安装cdh hadoop
- Cloudera Manager 5和CDH5离线安装,CDH-5.7.1
- Cloudera Manager 5.8.1安装CDH 5.8.0权威指南
- 在centos6.5上离线安装Cloudera Manager 以及CDH
- Cloudera Manager 5和CDH5离线安装,CDH-5.7.1
- Cloudera Manager 5和CDH5离线安装,CDH-5.7.1
- 使用cloudera manager 安装CDH时,界面提示修改swappiness
- 记录采用cloudera-manager安装CDH集群的过程
- 机器学习笔记-线性回归
- w_char_t
- Python面向对象,类,继承,多态及鸭子类型,获取类的类型,方法和属性(类似java的反射)
- hibernate中大对象的存储
- 验证手机格式
- 安装 Cloudera Manager、CDH、KUDU 随手记
- ubuntu12.04升级gcc至4.8
- 茶叶好
- SpringMVC的各种参数绑定方式
- 控制密码输入框可见不可见
- Nginx编译安装
- 【Java基础】静态类
- nginx error.log
- WEB项目如何部署到服务器上线