学习日志---7

1.复习Linux hadoop hdfs MapReduce基础知识

1,列举linux常用命令
shutdown now
reboot
mkdir
mkdir -p
touch filename
rm -r filename
rm -rf filename
vi filename
i--->可编辑状态
esc --> : --->wq 保存退出
q!
wq!
cat
grep
find
ifconfig
ping
useradd
chmod 777 filename
more
cp srcfile destfile
mv
tar -zxvf filename -C destpath
ls
ls -a
pwd 查看当前目录的绝对路径
filewall:
service iptables start/stop/status/restart
centos7 : systemctl stop frewalld.service
systemctl -cmd --state
修改网络配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth1
配置环境变量
/etc/profile
~/.bash_profile
/etc/profild.d/x.sh
JAVA
export JAVA_HOME=/root/app/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
配置文件生效:
source ~/.bash_priofile
查看java安装目录
echo $JAVA_HOME
2,hash函数特点是什么
代码论道
字符串----->固定位数的Hash值。
1,确定性
str1--->hash1值
str2---->hash1值
2,单向性
str----hash()----->hash值
3,防篡改
str1--->bit--->hash()--->hash值
4,防碰撞
str1 ---> hash1
str2---->hash1
mapreduce分区默认实现:
hash(key)%reduce task
Hash实现:
SHA
MD5
区块链:不可篡改
链表+hash(key)
3,hdfs如何实现文件的存储
NameNode:
处理客户端的请求
操作元数据(修改文件名\打开文件、关闭文件、DataNode
info)
DataNode
存储文件数据block,blocksize=128MB
发送心跳信息,将自身所有存储的block信息,健康状况发
送给 NameNode。
SecondNameNode:hadoop2.x可有可无
130MB--> 128MB block + 2MB block
4,hdfs副本存放机制?
block 默认3份。
5,hdfs主要进程、yarn的主要进程分别是?
NameNode
DataNode
SecondNameNode
yarn:资源调度框架
ResourceManager
NodeManager
6,简述mapreduce计算流程
7,搭建伪分布式步骤
cents6.5
1,前置准备
java
tar -zxvf
配置环境变量
ssh
1,安装ssh服务器
openserver-ssh
2, ssh-keygen -t rsa
cd ~/.ssh
id_rsa id_rsa.pub
cp id_rsa.pub authorized_keys
3,ssh-copy-id
2,安装hadoop
2.1解压hadoop tar -zxvf hadoop-xx.tar.gz
2.2 配置文件
$HADOOP_HOME/etc/hadoop
hadoop-env.sh
JAVA_HOME
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/app/tmp</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
HDFS Shell操作:
1,查看Hdfs上的文件
hdfs dfs -ls /
hadoop fs -ls /
2,将本地文件上传到hdfs
hdfs dfs -put hello.txt /
3,查看hdfs文件内容
hdfs dfs -cat /hello.txt
hdfs dfs -text /hello.txt
4,在hdfs创建目录
hdfs dfs -mkdir /hello
5,hdfs递归创建目录
hdfs dfs -mkdir -p /test/a/b
6,递归查询目录
hdfs dfs -ls -p /test
7,将hdfs上的文件下载到本地
hdfs dfs -get /hello.txt
8,将本地文件拷贝到hdfs上 /test/a/b
hdfs dfs -copyFromLocal hello.txt /test/a/b/h.txt
9,删除hdfs上目录
hdfs dfs -rm -R /hello
10,删除hdfs上的文件
hdfs dfs -rm /hello.txt

2.java操作HDFS文件

  1 import java.io.BufferedReader;
  2 import java.io.IOException;
  3 import java.io.InputStreamReader;
  4
  5 import org.apache.hadoop.conf.Configuration;
  6 import org.apache.hadoop.fs.FSDataInputStream;
  7 import org.apache.hadoop.fs.FSDataOutputStream;
  8 import org.apache.hadoop.fs.FileSystem;
  9 import org.apache.hadoop.fs.Path;
 10
 11 public class HDFSTest {
 12
 13     public static void main(String[] args) {
 14         // TODO 自动生成的方法存根
 15         System.setProperty("hadoop.home.dir", "E:\\hadoop");
 16
 17         String str="";
 18         //createDir("/new/abc.txt");
 19         //delete("/new");
 20         //createFile("/new/abc.txt");
 21         //write(str);
 22         append(str);
 23         read();
 24
 25     }
 26
 27     //向文件中写入
 28     public static void write(String str){
 29         if(str==null||str.equals("")){
 30             str="Hello World!\n";
 31         }
 32         Configuration conf=new Configuration();
 33         conf.set("fs.default.name", "hdfs://192.168.137.11:9000");
 34         try {
 35             FileSystem fs=FileSystem.get(conf);
 36             FSDataOutputStream outpustream = fs.create(new Path("/hadoop/a.txt"));
 37             outpustream.writeBytes(str);
 38             outpustream.close();
 39         } catch (IOException e) {
 40             // TODO Auto-generated catch block
 41             System.out.println(e.getMessage());
 42         }
 43     }
 44     //向文件中添加
 45     public static void append(String str){
 46         if(str==null||str.equals("")){
 47             str="Hello World!\n";
 48         }
 49         Configuration conf=new Configuration();
 50         conf.set("fs.default.name", "hdfs://192.168.137.11:9000");
 51         conf.set("dfs.support.append", "true");
 52         conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
 53         conf.set("dfs.client.block.write.replace-datanode-on-failure.enable", "true");
 54         try {
 55             FileSystem fs=FileSystem.get(conf);
 56             FSDataOutputStream outpustream = fs.append(new Path("/hadoop/a.txt"));
 57             outpustream.writeBytes(str);
 58             outpustream.close();
 59         } catch (IOException e) {
 60             // TODO Auto-generated catch block
 61             System.out.println(e.getMessage());
 62         }
 63     }
 64     //读取文件,并打印在控制台
 65     public static void read(){
 66         Configuration conf=new Configuration();
 67         conf.set("fs.default.name", "hdfs://192.168.137.11:9000");
 68         try {
 69             FileSystem fs=FileSystem.get(conf);
 70             //创建输入流
 71             FSDataInputStream inputstream = fs.open(new Path("/hadoop/a.txt"));
 72             InputStreamReader isr=new InputStreamReader(inputstream);
 73             BufferedReader br=new BufferedReader(isr);
 74             String str=br.readLine();
 75
 76             while(str!=null){
 77                 System.out.println(str);
 78                 str=br.readLine();
 79             }
 80             br.close();
 81             isr.close();
 82             inputstream.close();
 83
 84         } catch (IOException e) {
 85             // TODO 自动生成的 catch 块
 86             e.printStackTrace();
 87         }
 88
 89     }
 90     //创建目录
 91     public static void createDir(String path) {
 92         Configuration configuration=new Configuration();
 93         configuration.set("fs.default.name", "hdfs://192.168.137.11:9000");
 94         try {
 95             FileSystem fs=FileSystem.newInstance(configuration);
 96             fs.mkdirs(new Path(path));
 97         } catch (IOException e) {
 98             // TODO 自动生成的 catch 块
 99             e.printStackTrace();
100         }
101
102     }
103     //删除文件
104     public static void delete(String path) {
105         Configuration configuration=new Configuration();
106         configuration.set("fs.default.name", "hdfs://192.168.137.11:9000");
107         try {
108             FileSystem fs=FileSystem.newInstance(configuration);
109             fs.delete(new Path(path),true);
110         } catch (IOException e) {
111             // TODO 自动生成的 catch 块
112             e.printStackTrace();
113         }
114     }
115
116     //创建文件
117     public static void createFile(String path) {
118         Configuration configuration=new Configuration();
119         configuration.set("fs.default.name", "hdfs://192.168.137.11:9000");
120         try {
121             FileSystem fileSystem=FileSystem.newInstance(configuration);
122             fileSystem.createNewFile(new Path(path));
123         } catch (IOException e) {
124             // TODO 自动生成的 catch 块
125             e.printStackTrace();
126         }
127
128     }
129 }

原文地址:https://www.cnblogs.com/yifengyifeng/p/9319099.html

时间: 2024-11-10 07:38:18

学习日志---7的相关文章

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

Linux学习日志2-vim使用基础

vim是linux操作系统下的一个文本编辑工具,功能非常强大,但刚学习起来比较复杂.vim的所有功能要讲明白得有几百页,在这里只是记录一下vim的一些基本用法. 首先vim打开文件的三种方式: vim +# xxx(#是数字):表示打开xxx文件并将光标定位到指定行. vim -o xx1 xx2 xx3:表示同时打开三个文件,垂直分割显示 vim -O xx1 xx2 xx3:表示同时打开三个文件,水平分割显示 多个文件间跳转:键入ctrl+w后:→向左.←向右.↑向上.↓向下 vim打开文件

Linux学习日志day1——无人值守系统安装DHCP+TFTP+PXE+Kickstar

Linux学习日志day1--无人值守批量系统远程网络安装(DHCP+TFTP+PXE+Kickstar)                                         --作者:江信瀚 服务器环境介绍: 主机名:workstation.example.com 关闭SElinux以及防火墙 虚拟机:VMware(关闭了VMware的DHCP服务) 网卡配置: 静态IP获取! IPV6全部都删除,因为根本用不到 子网IP可以在VMware中设置 8.8.8.8是谷歌的DNS服务器

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法

做个打飞机的游戏,由于版本太新,网上基本没有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文乱码的问题.无奈只好Google百度寻求答案,明白了这个问题的缘由.因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK,如果添加L标志,则为Unicode编码. 解决这个问题有三种办法: 将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来

Cocos2d-x 3.1.1 学习日志3--C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员

有关const成员.static成员.const static成员的初始化: 1.const成员:只能在构造函数后的初始化列表中初始化 2.static成员:初始化在类外,且不加static修饰 3.const static成员:类只有唯一一份拷贝,且数值不能改变.因此,可以在类中声明处初始化,也可以像static在类外初始化 #include <iostream> using std::cout; using std::endl; class base { public: base(int

SQL 学习日志01

查看一个数据库的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' (select * from 表名 where 条件) 查看一张表的表结构: sp_help table_name(表名)  获取的信息比较全 sp_columns table_name(表名) 创建数据库: use master go create database test01(数据库名) 删除数据

SQL 学习日志02

SQL数据类型 1.字符类型 char   --定长字符数据   如 char(12)  这字段就会占用12字节的空间,无论这个字段只填写了2个字节.一般在可确定这字段长度时选用,如sex字段(因只有男和女两项可选)就可用 char(2). varvhar   --可变长字符数据  如varchar(50) 这字段最大只能填写50字节,按实际填写的字节存储.一般在不确定这字段长度时使用,如 Smail字段(因邮箱的长度不确定) 就可用varchar(50). text    --用来存储大量非统

Linux学习日志1-基本知识

1.冯.诺依曼体系计算机五大组成部件: 1.控制器:控制其他四个部件的运作 2.运算器:负责计算加减乘除 3.存储器:存放运算的数据来源与结果 4.输入设备:接收数据输入存入存储器 5.输出设备:从存储器接收数据输出 2.Linux的起源: 1991年一个芬兰大学生Linus Torvalds参考其老师的教学用操作系统Minix的思想(注意仅仅是思想),自己写了一个操作系统内核,命名为Linux 0.0.1,发布在comp.os.minix新闻组上,正式宣告Linux内核的诞生.从那时起,Lin

winform学习日志(二十四)----------datetime和timer的使用(小小幻灯片)

一:展示图片 每秒换一次图片,一共六十张图片,00-59 二:代码 a,设计代码 namespace timePicture { partial class Form1 { /// <summary> /// 必需的设计器变量. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源. /// </summary

webpack2学习日志

webpack说容易也容易,说难也难,主要还是看个人,想学到什么样的程度,很多公司可能要求仅仅是会用就行,但是也有一些公司要求比较高,要懂一些底层的原理,所以还是要花一些时间的,看个人需求.这篇仅仅是做了一些总结,都是来自官网,便于复习. 一,先理解webpack的概念: 官网上:webpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用