CDH安装过程
1、系统安装
版本redhat6.5 64位
指定hostname、pwd
#关闭防火墙
service iptables stop
chkconfig iptables off
#关闭SELINUX
set enforce 0 (临时生效)
修改 vi /etc/selinux/config 下的
SELINUX=disabled
#配置其它项1,并生效
echo vm.swappiness=10>>/etc/sysctl.conf
sysctl -p
#配置其它项2
echo never>/sys/kernel/mm/redhat_transparent_hugepage/defrag
echo 'echo never>/sys/kernel/mm/redhat_transparent_hugepage/defrag' >> /etc/rc.local
2、系统配置
1)Hosts配置
vim /etc/hosts ,修改ip与主机名的对应关系
ip hostname
……
2)无密钥登陆
1、登陆master节点
2、cd .ssh进入rsa公钥私钥文件存放的目录。(如无该目录,退出后再用root登录即可)
3、创建文件(只需master节点创建):
cd ~/.ssh
vim authorized_keys
4、执行密钥生成命令:
cd ~/.ssh
ssh-keygen -t rsa
三次回车后,该目录下将会产生id_rsa,id_rsa.pub文件。
其他主机也使用该方式产生密钥文件。
5、公钥文件内容合并到authorized_keys:
cat id_rsa.pub >> authorized_keys
6、登录其他主机,将其他主机的公钥文件内容都拷贝到master主机上的authorized_keys文件:
#登录各节点,将公钥拷贝到cdh01的authorized_keys中
ssh-copy-id -i cdh01
或手动copy /root/.ssh/id_rsa.pub
vi /root/.ssh/id_rsa.pub
7、授权authorized_keys文件:
chmod 600 authorized_keys
8、将授权文件分配到其他主机上:
scp /root/.ssh/authorized_keys cdh02:/root/.ssh/ #拷贝到cdh02上
scp /root/.ssh/authorized_keys cdh03:/root/.ssh/ #拷贝到cdh03上
scp /root/.ssh/authorized_keys cdh04:/root/.ssh/ #拷贝到cdh04上
scp /root/.ssh/authorized_keys cdh05:/root/.ssh/ #拷贝到cdh05上
scp /root/.ssh/authorized_keys cdh06:/root/.ssh/ #拷贝到cdh06上
9、至此,免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录。
3、安装文件部署
1)下载cm5.8.0-centos6.tar.gz
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
2)配置OS yum源
操作系统yum源配置
#创建挂载目录
mkdir /mnt/yum_os
挂载ISO
mount /dev/cdrom /mnt/yum_os
创建html os目录
mkdir /var/www/html/yum_os
创建html cm目录
mkdir /var/www/html/cm
创建html cdh目录
mkdir /var/www/html/cdh
将iso中文件copy 到http目录中
cp -r /mnt/yum_os/* /var/www/html/yum_os
将CM安装包放入/var/www/html/cm 并解压
将CDH包放入/var/www/html/cdh 并解压
创建OS yum源 /etc/yum.repos.d/下创建文件os.repo
touch os.repo
文件内容为:
[os]
name=os
baseurl=http:/ip//yum_os/
enable=1
gpgcheck = 0
创建CM yum源 /etc/yum.repos.d/下创建文件cm.repo
touch cm.repo
文件内容为:
[cm]
name=cm
baseurl=http:/ip//cm/
enable=1
gpgcheck = 0
创建CDH yum源 /etc/yum.repos.d/下创建文件cdh.repo
touch cdh.repo
文件内容为:
[cdh]
name=cdh
baseurl=http:/ip//cdh/
enable=1
gpgcheck = 0
刷新yum缓存
yum clean all
yum update
安装httpd web服务器
yum install httpd
安装完毕后,启动httpd服务
service httpd start
设置httpd 开机启动
chkconfig httpd on
遇到问题
1、http禁止访问
解决办法:在html下建多层目录即可解决,原因未知
是SELinux的新特性搞的鬼。我把目录或文件设成了user_home_t类型,因此apache的进程没有权限,无法访问。针对Apache的进程所使用的SELinux target policy规定了apache的进程只能访问httpd_sys_content_t类型的目录或文件。
解决办法:
把目录或文件的策略类型改成 httpd_sys_content_t 就可以了
使用root用户
# chcon -t httpd_sys_content_t 目录名或文件名
然后可以用 ls -laZ 命令查看文件目录的策略类型
4)安装mysql
第一步:
#安装 MySQL-shared-compat
rpm -ivh MySQL-shared-compat-5.6.28-1.el6.x86_64.rpm
第二步:
#卸载mysql-libs-5.1.66-2.el6_3.x86_64(根据提示信息)
#Centos6.5
rpm -e mysql-libs-5.1.71-1.el6.x86_64
#redhat版本
rpm -e mysql-libs-5.1.71-1.el6.x86_64
第三步:
#安装mysql-server
rpm -ivh MySQL-server-5.6.28-1.el6.x86_64.rpm
第四步:配置mysql
#启动
/etc/init.d/mysql start
#安装 mysql-client
rpm -ivh MySQL-client-5.6.28-1.el6.x86_64.rpm
#mysql安装后,默认用户为root,默认密码保存在/root/.mysql_secret中
#如果密码为:wqjfwqo02FJ
#第一次登陆
mysql -uroot -p******
#提示必须现更改密码才能执行语句
mysql> set password=password('mysql123');
第五步:进入mysql命令行,创建以下数据库
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity oozie 如果需要的话
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database nsv DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navms DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create user scm identified by 'mysql123';
grant all on scm.* to 'scm'@'%' identified by 'mysql123';
#授权root用户在主节点拥有所有数据库的访问权限(未起效)
grant all privileges on *.* to 'root'@'cdh01' identified by 'mysql123' with grant option;
grant all privileges on *.* to 'root'@'cdh02' identified by 'mysql123' with grant option;
grant all privileges on *.* to 'root'@'192.168.1.93' identified by 'mysql123' with grant option;
flush privileges;
5)安装NTP服务(或使用已有NTP)
#将安装包里的ntp文件上传到节点上,执行
rpm -ivh ntp-4.2.6p5-1.el6.centos.x86_64.rpm
#安装
service ntpd start启动
chkconfig ntpd on
#配置参考附件(/etc/ntp.conf)
#设置时间
date -s "2016-09-13 16:09:00"
#写入硬件
hwclock -w
#客户端同步
ntpdate cdh01
6)安装JDK
yum install oracle-j2sdk1.7
7)安装Cloudera管理器服务器
yum install cloudera-manager-daemons cloudera-manager-server
8)在需要访问MySQL的节点上安装mysql-connector-java
cp mysql-connector-java-5.1.27-bin.jar /usr/share/java/
ln -s mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar
9)为Cloudera管理器配置外部数据库
/usr/share/cmf/schema/scm_prepare_database.sh -h localhost mysql scm scm mysql123
10)启动Cloudera管理器服务器
/etc/init.d/cloudera-scm-server start
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
通过浏览器访问主节点的7180端口(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问成果,可能需要3-5分钟),默认的用户名和密码均为admin:
http://ip:7180
#相关配置
cdh parcels:
http://192.168.1.10/cdhs/cdh5/
cm:
http://192.168.1.10/cdhs/cm/5.8.0/
http://192.168.1.10/cdhs/cm/RPM-GPG-KEY-cloudera
#hive切换到Spark
在hive配置界面下修改hive.execution.engine,然后保存配置重启
Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client.)'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask
权限问题。暂时将/user的权限改为777,解决
hive查询时,select作为中间表时,需要加别名
集群设置的审查页面,全部保持默认配置即可:
这里地方可以考虑修改hdfs的存储文件夹,另外如果需要自己设定文件夹,一定要先mkdir文件夹,否侧hdfs会无法启动,并且报错文件夹不存在,并确保访问权限。
#建表语句示例
create table netstations(id int,url string) row format delimited fields terminated by ',' lines terminated by '\n' LOCATION '/tmp/hivefiles/webnets';
#kafka安装配置
1、rpm -ivh cd /../../kafka/*
2、配置
vim /etc/kafka/conf/sever.properties
broker.id=
hostname=ip(去掉注释#)
zookeeper=..:2181,..2181,..:2181
增加
metadata.broker.list=192.168.121.34:9092,192.168.121.35:9092,192.168.121.36:9092
producer.type=async
kafka启动命令:
nohup /usr/lib/kafka/bin/kafka-server-start.sh /etc/kafka/conf/server.properties &
生成topic
/usr/lib/kafka/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic test --replication-factor 1 --partitions 1 --create
模拟生产者
/usr/lib/kafka/bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test3
模拟消费者
/usr/lib/kafka/bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test3
查看主题详细
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
--topic test
1、系统安装
版本redhat6.5 64位
指定hostname、pwd
#关闭防火墙
service iptables stop
chkconfig iptables off
#关闭SELINUX
set enforce 0 (临时生效)
修改 vi /etc/selinux/config 下的
SELINUX=disabled
#配置其它项1,并生效
echo vm.swappiness=10>>/etc/sysctl.conf
sysctl -p
#配置其它项2
echo never>/sys/kernel/mm/redhat_transparent_hugepage/defrag
echo 'echo never>/sys/kernel/mm/redhat_transparent_hugepage/defrag' >> /etc/rc.local
2、系统配置
1)Hosts配置
vim /etc/hosts ,修改ip与主机名的对应关系
ip hostname
……
2)无密钥登陆
1、登陆master节点
2、cd .ssh进入rsa公钥私钥文件存放的目录。(如无该目录,退出后再用root登录即可)
3、创建文件(只需master节点创建):
cd ~/.ssh
vim authorized_keys
4、执行密钥生成命令:
cd ~/.ssh
ssh-keygen -t rsa
三次回车后,该目录下将会产生id_rsa,id_rsa.pub文件。
其他主机也使用该方式产生密钥文件。
5、公钥文件内容合并到authorized_keys:
cat id_rsa.pub >> authorized_keys
6、登录其他主机,将其他主机的公钥文件内容都拷贝到master主机上的authorized_keys文件:
#登录各节点,将公钥拷贝到cdh01的authorized_keys中
ssh-copy-id -i cdh01
或手动copy /root/.ssh/id_rsa.pub
vi /root/.ssh/id_rsa.pub
7、授权authorized_keys文件:
chmod 600 authorized_keys
8、将授权文件分配到其他主机上:
scp /root/.ssh/authorized_keys cdh02:/root/.ssh/ #拷贝到cdh02上
scp /root/.ssh/authorized_keys cdh03:/root/.ssh/ #拷贝到cdh03上
scp /root/.ssh/authorized_keys cdh04:/root/.ssh/ #拷贝到cdh04上
scp /root/.ssh/authorized_keys cdh05:/root/.ssh/ #拷贝到cdh05上
scp /root/.ssh/authorized_keys cdh06:/root/.ssh/ #拷贝到cdh06上
9、至此,免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录。
3、安装文件部署
1)下载cm5.8.0-centos6.tar.gz
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
2)配置OS yum源
操作系统yum源配置
#创建挂载目录
mkdir /mnt/yum_os
挂载ISO
mount /dev/cdrom /mnt/yum_os
创建html os目录
mkdir /var/www/html/yum_os
创建html cm目录
mkdir /var/www/html/cm
创建html cdh目录
mkdir /var/www/html/cdh
将iso中文件copy 到http目录中
cp -r /mnt/yum_os/* /var/www/html/yum_os
将CM安装包放入/var/www/html/cm 并解压
将CDH包放入/var/www/html/cdh 并解压
创建OS yum源 /etc/yum.repos.d/下创建文件os.repo
touch os.repo
文件内容为:
[os]
name=os
baseurl=http:/ip//yum_os/
enable=1
gpgcheck = 0
创建CM yum源 /etc/yum.repos.d/下创建文件cm.repo
touch cm.repo
文件内容为:
[cm]
name=cm
baseurl=http:/ip//cm/
enable=1
gpgcheck = 0
创建CDH yum源 /etc/yum.repos.d/下创建文件cdh.repo
touch cdh.repo
文件内容为:
[cdh]
name=cdh
baseurl=http:/ip//cdh/
enable=1
gpgcheck = 0
刷新yum缓存
yum clean all
yum update
安装httpd web服务器
yum install httpd
安装完毕后,启动httpd服务
service httpd start
设置httpd 开机启动
chkconfig httpd on
遇到问题
1、http禁止访问
解决办法:在html下建多层目录即可解决,原因未知
是SELinux的新特性搞的鬼。我把目录或文件设成了user_home_t类型,因此apache的进程没有权限,无法访问。针对Apache的进程所使用的SELinux target policy规定了apache的进程只能访问httpd_sys_content_t类型的目录或文件。
解决办法:
把目录或文件的策略类型改成 httpd_sys_content_t 就可以了
使用root用户
# chcon -t httpd_sys_content_t 目录名或文件名
然后可以用 ls -laZ 命令查看文件目录的策略类型
4)安装mysql
第一步:
#安装 MySQL-shared-compat
rpm -ivh MySQL-shared-compat-5.6.28-1.el6.x86_64.rpm
第二步:
#卸载mysql-libs-5.1.66-2.el6_3.x86_64(根据提示信息)
#Centos6.5
rpm -e mysql-libs-5.1.71-1.el6.x86_64
#redhat版本
rpm -e mysql-libs-5.1.71-1.el6.x86_64
第三步:
#安装mysql-server
rpm -ivh MySQL-server-5.6.28-1.el6.x86_64.rpm
第四步:配置mysql
#启动
/etc/init.d/mysql start
#安装 mysql-client
rpm -ivh MySQL-client-5.6.28-1.el6.x86_64.rpm
#mysql安装后,默认用户为root,默认密码保存在/root/.mysql_secret中
#如果密码为:wqjfwqo02FJ
#第一次登陆
mysql -uroot -p******
#提示必须现更改密码才能执行语句
mysql> set password=password('mysql123');
第五步:进入mysql命令行,创建以下数据库
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity oozie 如果需要的话
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database nsv DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navms DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create user scm identified by 'mysql123';
grant all on scm.* to 'scm'@'%' identified by 'mysql123';
#授权root用户在主节点拥有所有数据库的访问权限(未起效)
grant all privileges on *.* to 'root'@'cdh01' identified by 'mysql123' with grant option;
grant all privileges on *.* to 'root'@'cdh02' identified by 'mysql123' with grant option;
grant all privileges on *.* to 'root'@'192.168.1.93' identified by 'mysql123' with grant option;
flush privileges;
5)安装NTP服务(或使用已有NTP)
#将安装包里的ntp文件上传到节点上,执行
rpm -ivh ntp-4.2.6p5-1.el6.centos.x86_64.rpm
#安装
service ntpd start启动
chkconfig ntpd on
#配置参考附件(/etc/ntp.conf)
#设置时间
date -s "2016-09-13 16:09:00"
#写入硬件
hwclock -w
#客户端同步
ntpdate cdh01
6)安装JDK
yum install oracle-j2sdk1.7
7)安装Cloudera管理器服务器
yum install cloudera-manager-daemons cloudera-manager-server
8)在需要访问MySQL的节点上安装mysql-connector-java
cp mysql-connector-java-5.1.27-bin.jar /usr/share/java/
ln -s mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar
9)为Cloudera管理器配置外部数据库
/usr/share/cmf/schema/scm_prepare_database.sh -h localhost mysql scm scm mysql123
10)启动Cloudera管理器服务器
/etc/init.d/cloudera-scm-server start
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
通过浏览器访问主节点的7180端口(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问成果,可能需要3-5分钟),默认的用户名和密码均为admin:
http://ip:7180
#相关配置
cdh parcels:
http://192.168.1.10/cdhs/cdh5/
cm:
http://192.168.1.10/cdhs/cm/5.8.0/
http://192.168.1.10/cdhs/cm/RPM-GPG-KEY-cloudera
#hive切换到Spark
在hive配置界面下修改hive.execution.engine,然后保存配置重启
Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client.)'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask
权限问题。暂时将/user的权限改为777,解决
hive查询时,select作为中间表时,需要加别名
集群设置的审查页面,全部保持默认配置即可:
这里地方可以考虑修改hdfs的存储文件夹,另外如果需要自己设定文件夹,一定要先mkdir文件夹,否侧hdfs会无法启动,并且报错文件夹不存在,并确保访问权限。
#建表语句示例
create table netstations(id int,url string) row format delimited fields terminated by ',' lines terminated by '\n' LOCATION '/tmp/hivefiles/webnets';
#kafka安装配置
1、rpm -ivh cd /../../kafka/*
2、配置
vim /etc/kafka/conf/sever.properties
broker.id=
hostname=ip(去掉注释#)
zookeeper=..:2181,..2181,..:2181
增加
metadata.broker.list=192.168.121.34:9092,192.168.121.35:9092,192.168.121.36:9092
producer.type=async
kafka启动命令:
nohup /usr/lib/kafka/bin/kafka-server-start.sh /etc/kafka/conf/server.properties &
生成topic
/usr/lib/kafka/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic test --replication-factor 1 --partitions 1 --create
模拟生产者
/usr/lib/kafka/bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test3
模拟消费者
/usr/lib/kafka/bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test3
查看主题详细
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
--topic test