一\\系统环境准备(三台机器server1,server2,server3)
前提:搭建本地Yum源
1、网络配置(server1,server2,server3)
#vi /etc/sysconfig/network
#vi /etc/hosts
#vi /etc/sysconfig/network-scripts/ifcfg-eth?
#vi /etc/udev/rule.d/70-presistent-network.d
2、SSH免密钥登录(server1,server2,server3,两两之间面密码)
• ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
• cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
注意:各个机器的存放目录不能一致,否则免密码登陆会失败
另外一种免密码登陆方式
#ssh-keygen ------》不断回车
#ssh-copy-id root@cdh2
#ssh-copy-id root@cdh3
注意每台机器的:/etc/hosts文件应该一致如下
192.168.1.211 cdh1
192.168.1.212 cdh2
192.168.1.59 cdh3
3、防火墙关闭和时间同步
• service iptables stop 关闭防火墙
• chkconfig iptables off 设置开启关闭防火墙
时间同步
先安装ntp、ntpd
yum –y install ntp
yum –y install ntpd
添加自动服务
crontab -e
*/10 * * * * /usr/sbin/ntpdate time.nist.gov
查看时间是否一致:date hwclock
写入系统时钟clock -w
4、SELINUX关闭(server1,server2,server3)
• setenforce 0 暂时修改(不推荐)
• vi /etc/selinux/config (SELINUX=disabled) 永久修改
5、安装JDK配置环境变量(server1,server2,server3)
#vi /etc/profile
• export JAVA_HOME=/usr/java/jdk1.7.0_79
• export PATH=$JAVA_HOME/bin:$PATH
• export CLASSPATH=.:$JAVA_HOMdE/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#source /etc/profile
6、安装NTP(server1,server2,server3)
安装:yum install ntp
• 设置开机启动 chkconfig ntpd on
• 设置时间同步
– ntpdate -u ntp.sjtu.edu.cn
7、再安装配置mysql(数据库只在server1上)
• GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANTOPTION; 修改登陆数据库的权限
• flush privileges 刷新权限
8、开始下载并安装第三方依赖包
#yum install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
– 1、安装Cloudera Manager Server、Agent(三台机器都要创建)
• mkdir /opt/cloudera-manager
• 解压到指定目录:
tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
#tar -zxvf cloudera-manager*.tar.gz
– 2、创建用户“cloudera-scm”(在server1,server2,server3上)
#useradd --system --home=/opt/cloudera-manager/cm-5.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
– 3、配置CM Agent
• 修改文件vi /opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini中
#server_host=master的ip(192.168.1.59)以及
#server_port(7182是主的端口,不可以改变,此处不用修改)
– 4、配置CM Server数据库(server1上)
将驱动包拷贝到目录下( 注意拷贝过去的驱动包名字一定要和下边的一样,否则会报错 ) :
cp mysql-connector-java-5.1.31/mysql-connector-java-5.1.31-bin.jar /usr/share/java/mysql-connector-java.jar
•注意:(1)jar包名称要修改为mysql-connector-java.jar
(2)如果没有“/usr/share/java/”目录,那么先创建目录
• 进入mysql界面:
# mysql>grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;
进入目录: cd /opt/cloudera-manager/cm-5.4.3/share/cmf/schema
生成数据库:./scm_prepare_database.sh mysql -h 192.168.1.59 -utemp -ptemp --scm-host 192.168.1.59 scm scm scm
进入mysql界面,查看mysql数据库,会产生一个temp数据库
#mysql>show databases;或者navcat查看
• 格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器
注意:mysql> drop user 'temp'@'%';
若上步失败或过程中操作中断,删除所有库、重头来过 /( ㄒ o ㄒ )/~~
若安装 Oozie 等组件可能需要手动创建对应组件所需的数据库,例如:
create database ooziecm DEFAULT CHARACTER SET utf8;
grant all on ooziecm.* TO 'ooziecm'@'%' IDENTIFIED BY 'ooziecm';
– 5、创建Parcel目录
• Server节点上(server1,)
– mkdir -p /opt/cloudera/parcel-repo
– chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
• Agent节点上(server1,server2,server3)
– mkdir -p /opt/cloudera/parcels
– chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
– 6、制作CDH本地源(已经制作好,资料路径:F:\tools\CDH工具)
• 下载好文件CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel以及manifest.json,将这两个文件
放到serve1节点的/opt/cloudera/parcel-repo下,即移动到该目录(/opt/cloudera/parcel-repo)下
• 打开manifest.json文件,里面是json格式的配置,找到与下载版本相对应的hash码,新建文件,文件名与你的
parel包名一致,并加上.sha后缀,将hash码复制到文件中保存。
– 7、启动CM Server、Agent
执行:
保证mysql数据库已经启动后,再执行下一步
先在Server上执行:/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-server start
再Agents上执行:/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-agent start
查看日志:tail -100 /opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server/cloudera-scm-server.out
查看相关架包,启动的日志路径如下
#cd /opt/cloudera-manager/cm-5.4.3
追踪日志:
#tail -f /opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server.log
--8、访问:http://h15:7180,
• 用户名、密码:admin
• 若可以访问,则CM安装成功
可能错误:
错误:A ResourcePool could not acquire a resource from its primary factory or source.
解决:主节点的mysql服务没有起来
错误:
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
解决:三台机器都需要执行操作-----> echo ‘0’ > /proc/sys/vm/swappiness
错误:
OperationalError: (1045, "Access denied for user 'hue'@'localhost' (using password: NO)")
解决:删除hue服务,重新安装
10\检查后,安装hdfs和yarn
11\安装hive,默认
手动创建数据库
##hive
create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
数据库:hive 账户:hive 密码: hive
测试连接mysql是否正常
下一步:默认----》下一步:默认
12\\安装oozie,全部选择默认
13\\安装hue(支持浏览器是高版本的)
进入网页:选择配置----》选择支持mysql的
安装完成后,可以在页面上上传,修改sql语句
网址:192.168.1.59:8888
创建表:
CREATE TABLE person3(
id INT,
name STRING,
age INT,
fav ARRAY
addr MAP
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY '-'
MAP KEYS TERMINATED BY ':'
STORED AS TEXTFILE;
创建test2.txt文件
1 zs 18 girl-game-driver std_addr:beijing-work_addr:shanghai
2 ls 21 girl-game-driver std_addr:beijing-work_addr:shanghai
3 w5 33 girl-game-driver std_addr:beijing-work_addr:shanghai
界面查询语句:select * from person3;
14\\安装hbase
默认选项
15\停止服务
(1)在页面上停止
(2)在界面执行停止
(3)以上两步都执行成功后,再init 0虚拟机
备注:
MySql 建库&& 删库
##amon
create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
##hive
create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
##oozie
create database oozie DEFAULT CHARACTER SET utf8;
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie'
17、安装oozie(Oozie界面化需要配置安装ext Js(oozie是用于监控job的界面工具)
(1)\安装yum install unzip -y
(2)\ext-2.2.zip
– 解压ext-2.2到/var/lib/oozie目录下 unzip ext-2.2.zip -d /var/lib/oozie/
(3)\到解压的ext-2.2目录下挂载:mount /dev/cdrom /mnt
(4)\Oozie服务中配置启用web控制台
(5)\保存,重启oozie服务即可访问
【三Impala 、Hbase整合】
进入hbase的shell命令行:hbase shell
步骤1:创建hbase 表,向表中添加数据
– create 'test_info', 'info'
– put 'test_info','1','info:name','zhangsan'
– put 'test_info','2','info:name','lisi'
步骤2:hue里面创建hive表
– CREATE EXTERNAL TABLE test_info(key string,name string )
– ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
– STORED by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
– WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,info:name")
– TBLPROPERTIES
– ("hbase.table.name" = "test_info");
保证一一对应即可
步骤3:在impala的shell界面中,刷新Impala表
– invalidate metadata
错误:Error connecting: TTransportException, Could not connect to node16:21000
查看impala日志
需要在cloudera manager中手动安装impala
直接在cdh中默认安装即可
错误:
OperationalError: (1045, "Access denied for user 'hue'@'localhost' (using password: NO)")
解决:需要重新安装hue服务(通用的解决方法)