1.配置伪分布式yarn:
1 | cd /opt/hadoop-2.6.4/etc/hadoop/ |
在 configuration中间加入下面配置:
1 |
|
vi yarn-site.xml
在configuration中间加入下面配置:
1 |
|
测试:启动yarn
/opt/hadoop-2.6.4/sbin/start-yarn.sh
jps
查看是否有
1 | resourcemanager |
浏览中查看 192.168.31.128:8088
2.HDFS常用命令:
命令 | 说明 |
---|---|
-help [cmd] | 显示命令的帮助信息 |
-ls(r) path | 显示当前目录下所有文件 |
-du(s) path | 显示目录中所有文件大小 |
-count[-q] path | 显示目录中文件数量 |
-mv src dst | 移动多个文件到目标目录 |
-cp src dst | 复制多个文件到目标目录 |
-rm(r) | 删除文件(夹) |
-put localsrc dst | 本地文件复制到hdfs |
-copyFromLocal | 同put |
-moveFromLocal | 从本地文件移动到hdfs |
-get [-ignoreCrc] src localdst | 复制文件到本地,可以忽略crc校验 |
-getmerge src localdst | 将源目录中的所有文件排序合并到一个文件中 |
-cat src | 在终端显示文件内容 |
-text src | 在终端显示文件内容 |
-copyToLocal [-ignoreCrc] src localdst | 复制到本地 |
-moveToLocal src localdst | 移动 |
-mkdir path | 创建文件夹 |
-touchz path | 创建一个空文件 |
3.停止伪分布式:
1 | /opt/hadoop-2.6.4/sbin/stop-yarn.sh |
(如有多余的进程则用kill -9 强制杀掉)
4.配置分布式集群:
cd /opt/hadoop-2.6.4/etc/hadoop
编辑core-site.xml,指定namenode为master机器,Master为集群老大
1 | vi core-site.xml |
编辑hdfs-site.xml,指定Namenode存储路径,指定数据节点DataNode存储路径,
指定副本数量。
1 | vi hdfs-site.xml |
复制模板文件
cp mapred-site.xml.template mapred-site.xml
编辑mapred-site.xml
1 | vi mapred-site.xml |
编辑yarn-site.xml
1 | vi yarn-site.xml |
编辑slaves,指定谁是小弟
vi slaves
删除原来的localhost加入
slave0
slave1
默认没有masters文件,创建masters文件
touch masters
编辑masters文件,文件中加入指定老大的节点
vi masters
加入:master
传输配置文件给slave0,slave1
Master:
1 | cd /opt/hadoop-2.6.4/etc/hadoop |
格式化分布式文件
hdfs namenode -format
启动集群:
/opt/hadoop-2.6.4/sbin/start-dfs.sh
检测是否启动成功分布式文件系统:
Master:
jps
发现有NameNode、还有SecondaryNameNode说明Master中名称节点启动成功
slave0,slave1:jps
发现有DataNode说明slave机器数据节点启动成功
windows浏览器中检测 192.168.31.128:50070 中的DataNodes中有slave0,slave1两个子节点说明OK
启动yarn
/opt/hadoop-2.6.4/sbin/start-yarn.sh
检测:
Master:jps
发现有resourceManager说明master OK
slave0,slave1:jps
发现有NodeManager说明slave机器启动OK
失败常用解决方案::
1.暴力点方案
Master:
1 | /opt/hadoop-2.6.4/sbin/stop-yarn.sh |
Master,slave0,slave1:jps
(如果出了jps进程还有其他进程,
用【kill -9 进程号】 强制杀死多余的进程)
rm -rf /opt/dfs/*
Master:
1 | hdfs namenode -format |
master,slave0,slave1:jps
发现在Master中有NameNode,SecondaryNameNode,在slave0,slave1发现有DataNode,说明启动成功,缺少任何一个说明失败。
Master:
/opt/hadoop-2.6.4/sbin/start-yarn.sh
master,slave0,slave1:jps
发现在Master中有resourceManager,在slave0,slave1发现有
NodeManager,说明启动成功,缺少任何一个说明失败。
分布式存储—-分布式计算 MapReduce
1.CentOS7安装Mysql:
1 | cd /opt/ |
上述命令会安装以下包:
- apparmor
- mysql-client-5.7
- mysql-common
- mysql-server
- mysql-server-5.7
- mysql-server-core-5.7
启动和关闭mysql服务器:
1 | service mysql start |
确认是否启动成功,mysql节点处于LISTEN状态表示启动成功:
sudo netstat -tap | grep mysql
出现LISTEN说明启动成功
进入mysql shell界面:mysql -u root -p
2.Mysql常用命令:
解决利用sqoop导入MySQL中文乱码的问题(可以插入中文,但不能用sqoop导入中文)
导致导入时中文乱码的原因是character_set_server默认设置是latin1
说明 | 命令 |
---|---|
显示编码格式 | show variables like “char%”; |
修改编码格式 | set character_set_server=utf8; |
显示数据库 | show databases; |
使用数据库 | user mysql; |
显示数据库 | show tables; |
显示数据表结构 | describe user; |
显示表中的记录 | select * from 表名 |
创建数据库 | create database aaa; |
使用数据库 | use aaa; |
创建表 | personcreate table person(id int(3) auto_increment not null primary key,xm varchar(10),xb varchar(2),csny date); |
插入一条数据 | insert into person values(null,’zhangsan’,’m’,’2018-8-24’); |
查询出person表中所有的数据 | select * from person; |
修改xm=lisi的csny字段 | update person set csny=’2018-08-22’ where xm=’lisi’; |
删除张三那条数据 | delete from person where xm=’zhangsan’; |
删除表 | show tables;drop table person; |
删除数据库 | show databases;drop database aaa; |
显示mysql数据库版本 | show variables like ‘version’;select version(); |
3.安装Hive
3.1
首先上传apache-hive-1.2.1-bin.tar.gz到master的/opt/目录下
master:cd /opt/
解压到指定/opt文件夹下sudo tar -zxvf apache-hive-1.2.1-bin.tar.gz
重命名apache-hive-1.2.1-bin为hivesudo mv apache-hive-1.2.1-bin hive
3.2:配置环境变量
vi ~/.bashrc
在文件末尾加入:
1 | export HIVE_HOME=/opt/hive |
生效配置文件source ~/.bashrc
3.3
修改/opt/hive/conf下的hive-site.xml,将hive原来自带的derby改成mysql
cd /opt/hive/conf
重命名mv hive-default.xml.template hive-default.xml
编辑hive-site.xmlvi hive-site.xml
1 |
|
3.4:启动mysql数据库,新建hive数据库
mysql -u root -p
show databases;
新建一个Hive数据库,这个Hive数据库与hive-site.xml文件中//localhost:3306/hive的hive对应,用来保存hive元数据信息
create database hive;
3.5:配置mysql允许hive接入
将所有数据库的所有表的所有权限都赋给hive用户,后面的hive适配hive-site.xml中配置的连接密码
grant all on *.* to hive@localhost identified by 'hive';
刷新mysql系统权限关系表
flush privileges;
3.6:启动Hive
在启动Hive之前,先启动hadoop集群,但是咱们现在装的是伪分布式的hive配置,所以先将集群改成伪分布式:
停掉之前的分布式集群
master:
cd /opt/hadoop-2.6.4/sbin/
./stop-all.sh
(封装了stop-yarn.sh和stop-dfs.sh)
jps
(保证只剩下一个jps进程)
1 | cd /opt/dfs/ |
jps
(查看出来NameNode,DataNode, SecondaryNameNode)
cd /opt/hive/bin
启动Hive
./hive
hive常用HiveQL操作
说明 | 命令 |
---|---|
创建数据库 | create database if not exists hive; |
显示hive中包含的数据库 | show databases; |
显示hive中以h开头的数据库 | show databases like ‘h.*’; |
使用hive数据库 | use hive; |
删除不包含表的数据库 | drop database if exists hive; |
删除数据库和它包含的表 | drop database if exists hive cascade; |