linux进阶与hadoop
find .
grep -ri BASH
grep -ril BASH | xargs cp ddd
ps -Af //列出所有进程 ps -ef
netstat -anop //列出所有网络进程
jobs //查看进程
fg %1 //将1号进程放在前台运行
bg %1 //后台
free -h //查看内存状态
网络工具 //瑞士军刀
客户端:nc localhost 8888
大数据:
海量数据的处理和分析的技术 //存储和计算
将资源整合到虚拟化平台,对外提供服务
分布式存储:
分布式计算:
多个主机的进程协同在一起,构成整个应用
大数据存储和计算工具:
HDFS:hadoop distributed filesystem 分布式存储工具
MapReduce: 分布式计算框架
start-all.sh
192.168.23.100:50070
hdfs dfs -put 1.txt /
1)切换到指定目录
cd /soft/hadoop/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /1.txt /out
hdfs dfs -cat /out/part-r-00000
1、进程没启动:jps查看是否存在Namenode进程
systemctl status firewalld
==========================================
1个master
3个slave
12G内存:2,1.5,1.5,1.5
16G内存:2,2,2,2
1)关闭虚拟机,首先关闭hadoop进程
$> stop-all.sh
CentOS-7-x86_64-Minimal-1611-s102
CentOS-7-x86_64-Minimal-1611-s103
CentOS-7-x86_64-Minimal-1611-s104
主机名:
/etc/hostname
/etc/sysconfig/network-scripts/ifcfg-ens33
ifconfig
查看主机名
hostname
sudo nano /etc/hostname ====> s101
sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33 ====> IPADDR=192.168.23.101
reboot
2.5、设置hosts
/etc/hosts
192.168.23.102 s102
192.168.23.103 s103
192.168.23.104 s104
3、配置ssh免密登陆(s101)
s101 -> s102 s103 s104
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id centos@s101
ssh-copy-id centos@s102
ssh-copy-id centos@s103
ssh-copy-id centos@s104
ssh s102
exit
scp 1.txt centos@s102:~
原文件 远程主机:路径
cd /soft/hadoop/etc
ln -sfT full/ hadoop
================================
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s101:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/centos/hadoop</value>
</property>
</configuration>
======================================
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
====================================
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
===================================
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>s101</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
==================================
将25行改为
export JAVA_HOME=/soft/jdk
slaves
===============================
将localhost改为:
s103
s104
scp -r /soft/hadoop/etc/full/ centos@s102:/soft/hadoop/etc/
scp -r /soft/hadoop/etc/full/ centos@s103:/soft/hadoop/etc/
scp -r /soft/hadoop/etc/full/ centos@s104:/soft/hadoop/etc/
ssh s102 "ln -sfT /soft/hadoop/etc/full/ /soft/hadoop/etc/hadoop"
ssh s103 "ln -sfT /soft/hadoop/etc/full/ /soft/hadoop/etc/hadoop"
ssh s104 "ln -sfT /soft/hadoop/etc/full/ /soft/hadoop/etc/hadoop"
5)同步hosts文件,注意需要输入密码
scp /etc/hosts root@s102:/etc
scp /etc/hosts root@s103:/etc
scp /etc/hosts root@s104:/etc
s101 $> hdfs namenode -format
s101 $> start-all.sh
s101:
NameNode
SecondaryNameNode
ResourceManager
s102-s104:
NodeManager
DataNode
MR端口:8088
===================================
Common: hadoop工具模块,存放hadoop的一些依赖
MapReduce: 基于yarn的分布式计算框架
hdfs:
namenode //名称节点,在master上,负责存储hdfs文件的元数据
datanode //数据节点,在slave上,负责存储真实数据
secondarynamenode //辅助名称节点,用作检查点
resourcenmanager //资源管理器,在master上,负责资源调度
nodemanager //节点管理器,在slave上,负责计算数据
==============================
core-site.xml
------------------------------------------
fs.defaultFS //声明namenode的地址,相当于声明hdfs文件系统
hadoop.tmp.dir //声明hadoop工作目录的地址
-------------------------------------------
dfs.replication //软件级备份
---------------------------------------------
mapreduce.framework.name //local 本地
//mapred hadoop一代执行框架
//yarn 二代执行框架
-------------------------------------------
yarn.resourcemanager.hostname //指定资源管理器(resourcemanager)的主机名
yarn.nodemanager.aux-services //指定nodemanager使用shuffle
========================================
指定slave的主机名或ip
======================================
hdfs dfs -touchz /2.txt
hdfs dfs -put 1.txt /
hdfs dfs -get /2.txt .
hdfs dfs -rmr /2.txt
hdfs dfs -cat /2.txt
hdfs dfs -ls / //hdfs dfs -lsr / 列出文件夹
hdfs dfs -ls file:///home/centos
=========================================
start-all.sh
start-dfs.sh
//启动hdfs进程
//namenode
//datanode
//secondarynamenode
//启动yarn进程
//resourcemanager
//nodemanager
hadoop-daemons.sh start datanode //单独启动datanode进程
hadoop-daemons.sh --hostnames s101 start secondarynamenode //单独启动2nn脚本
yarn-daemons.sh start nodemanager
单独启动进程:
hadoop-daemon.sh start namenode | datanode | secondarynamenode
hadoop-daemon.sh stop namenode | datanode | secondarynamenode
yarn-daemon.sh stop resourcemanager | nodemanager
================================
1、查看WebUI(192.168.23.101:50070)查看datanode是否存在
====================================
删除启动失败节点的 /home/centos/hadoop/dfs/data目录,再次启动即可
======================================
查看/home/centos/hadoop是否存在
=========================================================
1、将模块添加maven框架支持
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
@Test
public void testRead() throws IOException {
Configuration conf = new Configuration();
//代码入口点,初始化HDFS文件系统
FileSystem fs = FileSystem.get(conf);
//通过fs读取数据
Path p = new Path("hdfs://s101:8020/1.txt");
FSDataInputStream fis = fs.open(p);
int len = 0;
byte[] buf = new byte[1024];
while((len = fis.read(buf)) != -1){
System.out.println(new String(buf, 0, len));
}
}
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s101:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/centos/hadoop</value>
</property>
</configuration>
linux进阶与hadoop的更多相关文章
- 在Linux上安装Hadoop
先决条件: Hadoop是用JAVA写的,所以首先要安装Java.在Ubuntu上安装JDK见:http://blog.csdn.net/microfhu/article/details/766739 ...
- Linux环境搭建Hadoop伪分布模式
Hadoop有三种分布模式:单机模式.伪分布.全分布模式,相比于其他两种,伪分布是最适合初学者开发学习使用的,可以了解Hadoop的运行原理,是最好的选择.接下来,就开始部署环境. 首先要安装好Lin ...
- 大数据学习之Linux进阶02
大数据学习之Linux进阶 1-> 配置IP 1)修改配置文件 vi /sysconfig/network-scripts/ifcfg-eno16777736 2)注释掉dhcp #BOOTPR ...
- Linux环境下Hadoop集群搭建
Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...
- Linux进阶指令(重点)
三.Linux进阶指令(重点) 1.df指令 作用:查看磁盘的空间 #df -h 选项:-h 表示以可读性较高的形式展示大小 2.free指令 作用:查看内存使用情况 #free ...
- 三台linux集群hadoop,在此上面运行hive
---恢复内容开始--- 一,准备 先有三台linux,对hadoop集群的搭建. eddy01:开启一个hdfs的老大namenode,yarn的老大ResourceManager其中进程包括(No ...
- Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建
Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...
- Linux 下搭建 Hadoop 环境
Linux 下搭建 Hadoop 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 Hadoop 环境 CSDN:Linux 下搭建 Hadoop 环境 环境要求 操作系统:CentOS ...
- Linux基础(05)、Linux进阶命令
目录 一.进阶命令 二.系统命令 三.压缩和归档 3.1.归档 3.2.压缩 3.3.归档并压缩 归档.接档:tar -cf.tar -tvf 压缩.解压:gzip.gunzip 归档并压缩:tar ...
随机推荐
- 超详细的celery异步任务和定时任务的教程
转载自:https://segmentfault.com/a/1190000007780963
- UML中的几种关系(UML Relationships)
依赖(Dependency) 依赖可以理解为一个类A使用到了另一个类B,而这种使用关系是具有偶然性的.临时性的.非常弱的,但是B类的变化会影响到A:比如某人要过河,需要借用一条船,此时人与船之间的关系 ...
- RBAC (基于角色的访问控制)
基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注.在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而 ...
- 你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们
一叶障目 .NET平台上的分层架构(很多朋友称其为“三层架构”),似乎是一个长盛不衰的话题.经常看到许多朋友对其进行分析.探讨.辩论甚至是抨击.笔者在仔细阅读了大量这方面文章后,认为许多朋友在分层架构 ...
- Go语言学习笔记 package
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 strings import "strings" strings包实现了用于操作字符的简单函数 ...
- Oracle 块修改跟踪 (Block Change Tracking) 说明
Block ChangeTracking 是Oracle 10g里推出的特性.官网对Block change tracking 的定义如下: Adatabase option that causes ...
- git clone遇到的[ssh: connect to host github.com port 22]
起因 在学习递归的时候,对汉诺塔小研究了一番,参考网上写了个demo,后面就想同步到github. 过程 这台电脑是新电脑,所以需要先本地生成ssh key:ssh-keygen -t rsa -C ...
- win7怎么安装和启动 jboss
本文以JBoss Application Server 4.2.1 GA(以下简称JBoss)为例,介绍它在Windows平台上的启动过程.为了方便叙述,对平台环境做以下假定:Java运行时的安装路径 ...
- Hadoop的简单序列化框架
Hadoop提供了一个加单的序列化框架API,用于集成各种序列化实现.该框架由Serialization实现. 其中Serialization是一个接口,使用抽象工厂的设计模式,提供了一系列和序列化相 ...
- maven打包报错:在类路径或引导类路径中找不到程序包 java.lang
刚下了个新项目,跑了下maven报错了: E:\workspace\portalframe>mvn clean install [INFO] Scanning for projects... [ ...