一、安装前准备
- 在opt目录下再建一个包cdh5.7.6:
sudo mkdir -p cdh5.7.6
- 修改权限
sudo chown huadian:huadian cdh5.7.6/
3.在cdh7.5.6目录下重新安装hadoop和hive(数据库名字要改)
上传所需要的工具:
二、安装hadoop
1.使用rz命令上传
按照所需版本上传:rz
2.解压
tar -zxvf hadoop-2.6.0-cdh5.7.6.tar.gz -C ../cdh5.7.6/
3.修改环境变量
在etc目录下操作,-env.sh:
hadoop-env.sh
yarn-env.sh
mapred-env.sh
4.common模块
core-site.xml
5.HDFS模块
hdfs-site.xml
slaves:指定DataNode运行在那些机器在上
说明:如果有多个机器,一行一个
6.启动HDFS
(1)对文件系统进行格式化
bin/hdfs namenode -format
注意:只需要一次即可
(2)格式化成功标准:
若有错误:一定是配置文件写错
如果进行第二次格式化,格式化之前,将临时目录删除
(3)启动服务
主节点:sbin/hadoop-daemon.sh start namenode
从节点:sbin/hadoop-daemon.sh start datanode
(4)验证是否启动
方式一: jps
方式二: 通过web ui查看
hdfs webui端口是50070
http://bigdata-hpsk01.huadian.com:50070
7.测试HDFS
帮助命令:bin/hdfs dfs
创建目录:bin/hdfs dfs -mkdir -p /datas/tmp
从上传文件:Linux→HDFS
bin/hdfs dfs -put /opt/datas/wordcount /datas/tmp/
列举目录文件:bin/hdfs dfs -put /opt/datas/wordcount /datas/tmp/
查看文件内容:bin/hdfs dfs -cat /datas/tmp/wordcount
删除文件:bin/hdfs dfs -rm -r -f /datas/tmp/wordcount
下载文件(HDFS->linux):
bin/hdfs dfs -get /datas/tmp/wordcount /opt/modules/
8.Yarn模块
yarn-site.xml
salves:指定nodemanager运行在那些机器上,在配置HDFS的时候,已经配置了
9.启动Yarn
主节点:sbin/yarn-daemon.sh start resourcemanager
从节点:sbin/yarn-daemon.sh start nodemanager
10.验证Yarn是否启动
方式一:jps
方拾二:通过web ui
http://bigdata-hpsk01.huadian.com:8088
11.MapReduce
(1)重命名配置文件
在/opt/cdh5.7.6/hadoop-2.6.0-cdh5.7.6/etc/hadoop
路径下:
mv mapred-site.xml.template mapred-site.xml
(2)修改mapred-site.xml
12.测试MapReduce程序
程序运行在Yarn,读取HDFS上的数据进行处理
准备数据:
/datas/temp/wordcount
MapReduce程序:
Hadoop框架给我们提供了测试程序
/opt/cdh5.7.6/hadoop-2.6.0-cdh5.7.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.6.jar
提交运行
程序提交到Yarn上运行只有一种方式:bin/yarn jar
将/datas/tmp/wordcount用wordcount,输出到/datas/mapreduce/output1
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.6.jar wordcount /datas/tmp/wordcount /datas/mapreduce/output1
结果查看
(1)8088看看
(2)HDFS web UI 看看
13.历史服务配置
需求:在8088端口上,对已经结束的任务,无法查看历史信息(19888),历史信息记录:有几个Map Task,有几个Reduce task,任务什么时候提交了,什么启动,什么时候完成。
mapred-site.xml
启动历史服务
sbin/mr-jobhistory-daemon.sh start historyserver
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.6.jar wordcount /datas/tmp/wordcount /datas/mapreduce/output1
14.日志聚集功能
当MapReduce程序在Yarn上运行过程中,产生一些日志文件,需要将这些日志文件收集上传HDFS,以便后续监控查看
Yarn:主节点从节点
好处 :①中央化存储,集中存储方便管理
②可以减轻ResourceManager的负载压力
yarn-site.xml
注意:必须重启Yarn和JobHistoryServer服务才生效,需要重新读取配置文件
在里面重新安装hadoop和hive(数据库名字要改)
三、安装Hive
1.安装Mysql
(1)检查是否已经装了MySql
检查:rpm -qa|grep mysql
使用以下命令卸载,卸载完再用上面命令检查一下
删除:rpm -e --nodeps xxxxxxxx
(2)安装MySql
通过yum安装MySql
yum install -y mysql-server
(3)启动MySql服务
MySQL的服务名:
< 5.5 版本 使用 mysqld
>= 5.5 版本 使用 mysql
启动:
service mysqld start
(4)设置开机启动
使用以下命令查看,我这个是开着的:
chkconfig mysqld --list
这个是开启命令chkconfig mysqld on
,再进行查看应该就和上图一样
(5)设置root用户命名
/usr/bin/mysqladmin -u root password '123456'
(6)登录mysql
mysql -uroot -p123456
(7)更改授权
select user,host,password from user;
添加授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
删除其他授权,只留下:
刷新授权,
flush privileges
重启mysql服务,远程连接
service mysqld restart
到这里就可以远程连接数据库了
2.准备工作
(1)确保Hadoop相关进程启动
NameNode,DateNode,ResourceManager,NodeManager, JobHistoryServer
进入cd /opt/modules/hadoop-2.7.3/
目录下,开启以下进程
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver
执行 jps
查看一下:
(2)Mysql服务器启动
确保开启,开机启动
windows 上 Navite等工具可以连上
3.安装hive
(1)上传,解压,重命名
上传:
解压:tar -zxvf hive-1.1.0-cdh5.7.6.tar.gz -C ../cdh5.7.6
(2)修改配置
hive-env.sh
修改了一下名字:
mv hive-env.sh.template hive-env.sh
修改配置:
创建数据仓库
hive 的数据需要保存到HDFS,那么保存HDFS那个目录,是不是需要配置
不配置,因为它会去读默认路径,但是这些目录是空,所以需要去创建
bin/hdfs dfs -mkdir -p /user/hive/warehouse
bin/hdfs dfs -mkdir -p /tmp
bin/hdfs dfs -chmod g+w /tmp
bin/hdfs dfs -chmod g+w /user/hive/warehouse
(4)hive的基本使用
启动交互式命令:bin/hive
4.Hive文档
https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentation
5.测试
(1)准备数据
将准备好的数据上传到Linux里
(2)创建数据库&表
直接使用default表
Hive创建表:
CREATE TABLE tb_word(
word STRING,
count INT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
(3)加载数据到数据库
LOAD DATA LOCAL INPATH '/opt/datas/tb_word.txt' INTO TABLE tb_word;
(4)测试
SELECT
word,count(word) count
FROM
tb_word
GROUP BY
word ;
6.使用Mysql存储元数据
(1)交互式命令问题
现象:
bin/hive这个交互性命令不能同时开多个,开第二个就报错
原因:
hive中无论是创建的 数据库还是表,这些元数据metaStore需要存储数据
默认情况下存储在Derby数据库里面的,属于嵌入式数据,每次仅仅支持一个会话
解决:
使用支持多个会话的数据,推荐MySQL存储元素(官方推荐)
(2)配置使用Mysql存储元素
文档:https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration
① 创建配置文件
touch hive-site.xml
② 修改配置
③. 添加驱动
给lib目录下传所需要的驱动包:mysql-connector-java-5.1.27-bin.jar
(3)测试
1.将metastore_db 和 derbylog删除
2.启动 bin/hive
3.效果:
①可以启动多个bin/hive交互性命令行
②mysql数据库中可以看到那个数据库