hdfs的工作机制:

1、客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的>

2、一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node)

3、为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)

在客户端查看hdfs根目录文件命令

hadoop fs -ls /

如果你只有3个datanode,但是你却指定副本数为4,是不会生效的,因为每个datanode上只能存放一个副本。

修改各台机器的主机名和ip地址

1.创建一个虚拟机。完整克隆3个

2.对三个虚拟机,修改网卡配置:删除eth0的配置,把eth1改为eth0

vi /etc/udev/rules.d/-persistent-net.rules

3.看vmware 网络设置-nat下的网关

4.根据网关设置ip

vi /etc/sysconfig/network-scripts/ifcfg-eth0

删除物理地址:

HWADDR UUID

修改:

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.33.**

GATEWAY=192.168.33.1

NETMASK=255.255.255.0

DNS1=192.168.33.1

在虚拟机检测连通性

IFCONFIG

PING网关

修改电脑的vmnet8网关=192.168.33.1 ip=192.168.33.** 掩码

windows ping网关测试

5.在windows中将各台linux机器的主机名配置到的windows的本地域名映射文件中:不用每次访问输ip,改输别名

c:/windows/system32/drivers/etc/hosts

192.168.33.61    hdp-
192.168.33.62 hdp-
192.168.33.63 hdp-
192.168.33.64 hdp-

配置linux服务器的基础软件环境

防火墙

关闭防火墙:service iptables stop

关闭防火墙自启: chkconfig iptables off

配置java

解压jdk

查看path

echo $PATH

在解压后文件夹:

./bin/java 执行java

bin/java 执行java

/bin/java 失败,因为在总的根目录找不到bin/java

在bin目录输入java,command not found 会去path找而不是当前目录

可以在bin目录改输./java 成功执行

1) 配置环境变量:JAVA_HOME   PATH

vi /etc/profile   在文件的最后,加入:

export JAVA_HOME=/root/apps/jdk1..0_60

export PATH=$PATH:$JAVA_HOME/bin

2) 修改完成后,记得 source /etc/profile使配置生效

3) 将安装好的jdk目录用scp命令拷贝到其他机器 scp需安装

scp -r apps/ 192.168.33.12:/root/

scp安装 13:00

4) 将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令

linux命令:jps

可以看到正在执行的所有java进程,jdk自带命令,可以看hadoop node是否执行

ps -ef |grep 

查看进程号为2520的详细启动信息

netstat -nltp|grep 

查看进程号为2520的占用端口

配置hdp-01到集群中所有机器(包含自己)的免密登陆

>>ssh-keygen

>>ssh-copy-id hdp-
>>输密码
>>ssh-copy-id hdp-02
>>输密码

对于 NameNode 和 DataNode 可通过如下Web页面查看其信息:

I. NameNode: http://{NameNodeServer}:50070/

/dfshealth.jsp  HDFS信息页面,其中有链接可以查看文件系统

/dfsnodelist.jsp?whatNodes=(DEAD|LIVE)  显示DEAD或LIVE状态的datanode

/fsck  运行fsck命令,不推荐在集群繁忙时使用!

II. DataNode: http://{DataNodeServer}:50075/

/blockScannerReport  每个datanode都会指定间隔验证块信息

3.X版本需要配置web页面

1.启动hadoop.然后netstat -nltp|grep 50070,如果,没有找到进程,说明没有配置web界面的端口修改hdfs-site,xml中加上如下配置

如果你用的主机名:端口号,先去检查下/etc/hosts下的主机名的ip,是否配置的和你当前的ip相同,然后重新启动hadoop

2.现在虚拟机内尝试访问hadoop002:50070,如果访问不了,估计是sellinux的问题执行以下命令setenforce 0(设置为permissive模式)接着重新在虚拟机内访问,此时应该可以正常访问了

3.但是在外部的宿主机内此时无法访问,说明linux的防火墙没有开放50070端口,简单粗暴的方式是把防火墙关掉sudo service iptables stop还有一种方式就是修改防火墙的配置文件开放50070端口执行以下命令

sudo vi /etc/sysconfig/iptables,加上这么一行-I INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT

修改完成后sudo service iptables restart重启防火墙服务

4.这个时候在宿主浏览器中输入主机名:端口即可访问,如果还访问不了,去修改下宿主机的hosts文件C:\Windows\System32\drivers\etc\hosts中的ip,保持和虚拟机中的主机ip一致然后重新访问即可

ll -h

查看当前目录文件 同时显示大小kb,mb,gb

hdfs的客户端会读以下两个参数,来决定切块大小、副本数量:

切块大小的参数: dfs.blocksize

副本数量的参数: dfs.replication

cat blk_23232 >> jdk.tgz
cat blk_23233 >> jdk.tgz

hadoop hdfs的块文件合并就是原始文件

cat file1 >> file2的意思是把 file1 的文档内容输入file2 这个文档里。

hdfs客户端的常用操作命令

1、上传文件到hdfs中

hadoop fs -put /本地文件  /aaa

2、下载文件到客户端本地磁盘

hadoop fs -get /hdfs中的路径   /本地磁盘目录

3、在hdfs中创建文件夹

hadoop fs -mkdir  -p /aaa/xxx

4、移动hdfs中的文件(更名)

hadoop fs -mv /hdfs的路径1  /hdfs的另一个路径2

复制hdfs中的文件到hdfs的另一个目录

hadoop fs -cp /hdfs路径_1  /hdfs路径_2

5、删除hdfs中的文件或文件夹

hadoop fs -rm -r /aaa

6、查看hdfs中的文本文件内容

hadoop fs -cat /demo.txt

hadoop fs -tail -f /demo.txt  查看尾部20行

Junit Test中注解

JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: 
@Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
@After:释放资源  对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
@Test:测试方法,在这里可以测试期望异常和超时时间 
@Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常 
@Ignore:忽略的测试方法 
@BeforeClass:针对所有测试,只执行一次,且必须为static void 
@AfterClass:针对所有测试,只执行一次,且必须为static void 
一个JUnit4的单元测试用例执行顺序为: 
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass;

每一个测试方法的调用顺序为:

@Before -> @Test -> @After;

java写hadoop程序,从hdfs下载文件需要在windows下配置环境变量HADOOP_HOME,因为下载要用到hadoop里面的包,hadoop windows需要自己编译,得有winutils才行,某些版本在github可以下载

https://github.com/steveloughran/winutils

hadoop学习day1环境配置笔记(非完整流程)的更多相关文章

  1. CentOS6.5环境配置笔记

    CentOS6.5环境配置笔记 一.概述 服务器系统重装,配置应用运行环境 CentOS6.5 x64 二.修改密码 重新设置登录密码 $passwd 或 $passwd root 三.配置端口号及防 ...

  2. 深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow

    接上文<深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0>,我们继续来安装 TensorFlow,使其支持GeForce GTX 1080显卡 ...

  3. 基于Eclipse的Hadoop应用开发环境配置

    基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...

  4. 深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow

    深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow 最近在公司做深度学习相关的学习和实验,原来一直 ...

  5. 1 python学习——python环境配置

    1 python学习--python环境配置 要学习python语言,光看书看教程还是不好,得动手去写.当然,不管学习什么编程语言,最佳的方式还在于实践. 要实践,先得有一个Python解释器来解释执 ...

  6. (转)深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

      深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 发表于2016年07月15号由52nlp 接上文<深度学习主机攒机小记>,这台GTX10 ...

  7. Hadoop:Hadoop简介及环境配置

    http://blog.csdn.net/pipisorry/article/details/51243805 Hadoop简介 下次写上... 皮皮blog 配置hadoop环境可能出现的问题 每次 ...

  8. Ubuntu虚拟机+ROS+Android开发环境配置笔记

    Ubuntu虚拟机+ROS+Android开发环境配置笔记 虚拟机设置: 1.本地环境:Windows 7:VMWare:联网 2.虚拟环境 :Ubuntu 14.04. 比較稳定,且支持非常多ROS ...

  9. 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

    不多说,直接上干货! 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

随机推荐

  1. 【Jmeter】配置不同业务请求比例,应对综合场景压测

    背景 在进行综合场景压测时,遇到了如何实现不同的请求所占比例不同的问题. 有人说将这些请求分别放到单独的线程组下,然后将线程组的线程数按照比例进行配置. 这种方法不是很好,因为服务器对不同的请求处理能 ...

  2. Java线程状态分析

    Java线程的生命周期中,存在几种状态.在Thread类里有一个枚举类型State,定义了线程的几种状态,分别有: NEW: 线程创建之后,但是还没有启动(not yet started).这时候它的 ...

  3. UVA-810 A Dicey Problem (BFS)

    题目大意:滚骰子游戏,骰子的上面的点数跟方格中的数相同时或格子中的数是-1时能把格子滚过去,找一条从起点滚到起点的路径. 题目大意:简单BFS,状态转移时细心一些即可. 代码如下; # include ...

  4. CSS padding 属性

    定义和用法 padding 简写属性在一个声明中设置所有内边距属性. 说明 这个简写属性设置元素所有内边距的宽度,或者设置各边上内边距的宽度.行内非替换元素上设置的内边距不会影响行高计算:因此,如果一 ...

  5. nginx会话保持之sticky模块

    nginx会话保持之nginx-sticky-module模块 在使用负载均衡的时候会遇到会话保持的问题,常用的方法有:1.ip hash,根据客户端的IP,将请求分配到不同的服务器上:2.cooki ...

  6. get方法传送中文乱码解决方法

    找到tomcat配置文件 server.xml 找到<Connector port="8080" .......  />   (......为配置文件中原来内容) 在最 ...

  7. windows下使用python的scrapy爬虫框架,爬取个人博客文章内容信息

    scrapy作为流行的python爬虫框架,简单易用,这里简单介绍如何使用该爬虫框架爬取个人博客信息.关于python的安装和scrapy的安装配置请读者自行查阅相关资料,或者也可以关注我后续的内容. ...

  8. Centos系统更改yum源为163

    Centos安装好之后,按照网上教程对yum源进行修改,但更新之后发现总是提示更新失败,到163网站上查找资源发现目前大部分网上的教程都写错地址了,呵呵 下面是正确的办法,请参考 1.进入存放源配置的 ...

  9. 5.4完成其他模块的xadmin后台注册

    courses  adminx.py from .models import Course, Lesson, Video, CourseResource import xadmin class Cou ...

  10. 关于C#引用dll动态链接库文件的注释问题

    1.dll动态库文件项目生成属性中要勾选"XML文档文件" 注意:1).要选中项目,查看项目属性,选中解决方案是找不到的.2).XML文件的名字不要修改. 2.添加引用时XML文件 ...