hadoop第一天




名称节点不会存放数据块的,能够存可是不会这么作。namenode目录挂了,单点故障java

namenodenode

secondarynamenode  备份,防止单点故障就完了,最重要的仍是这目录,这叫作镜像web


datenode  datenode  datenode  3个算法


分布式编程

--------------ubuntu

由分布在不一样主机上的程序(进程)协同在一块儿才能构成整个应用。服务器

browser/web server:瘦客户端程序。网络


4V框架

----------------ssh

1.volumn: 体量大

2.velocity: 速度快

3.variaty: 样式多

4.value: 价值密度低


hadoop

--------------

可靠地、可伸缩的、分布式计算的开源软件。

是一个框架,容许跨越计算机集群的大数据集分布式化处理,使用简单的编程模型(MapReduce)。

可从单个服务器扩展到几千台主机,每一个节点提供了计算和存储功能。


不依赖于硬件处理HA,在应用层面上实现。


hadoop模块----解决了两个问题,存储和计算

-----------

1.hadoop common//公共类库,支持其余模块

2.HDFS//hadoop distributed file sytsem,hadoop分布式文件系统

3.Hadoop YARN//Yeah another resource ,做业调度和资源管理的框架。

4.Hadoop MapReduce//基于yarn系统的大数据集并行处理技术。




liunx

jps 

jps -v

which jps

which xxx//在PATH查看指令xxx的目录

whereisxxx//查询命令的binary、Source、manual   查找这个指令相关的二进制指令和文件


hadoop安装


配置用到的书 Hadoop.The.Definitive.Guide.4th 在Appendix A.Installing ...里面有讲到site.xml配置

---------------

1.jdk

JAVA_HOME


PATH 

2.tar hadoop.tar.gz

3.配置环境变量

HADOOP_HOME------------HADOOP_HOME=/soft/hadoop

PATH     --------------- /soft/hadoop/bin:/soft/hadoop/sbin  ----这样配好就是独立模式了

4.配置hadoop---配置的时候有3种模式

1.standalone | local    --------------独立模式,或者叫本地模式

a.没有守护进程,全部程序运行在同一JVM中,利于test和debug.容易测试和调试

b.查看文件系统

$>hadoop fs -ls ///查看就是本地文件系统


2.Pseudo distributed Mode//伪分布模式,模拟彻底分布式,是彻底分布式的特列

[配置文件${hadoop_home}/etc/hadoop/*-site.xml]



[core-site.xml]

<configuration>

<property>

<name>fs.defaultFS</name>

<!-- url:protocal + host + port + path  注释,这么写配置比较麻烦,直接写kv对,上面是名字,下面value是值,直接name=value,应该是这意思 -->

<value>hdfs://localhost/</value>

</property>

</configuration>


彻底分布式另外两个副本在同一个机架上,加本身一共3个副本的----伪分布是配置1

[hdfs-site.xml]

dfs.replication=1


[mapred-site.xml]   

mapreduce.framework.name=yarn


[yarn-site.xml]

yarn.resourcemanager.hostname=localhost

yarn.nodemanager.aux-services=mapreduce_shuffle



gedit编辑后会产生备份文件,图形软件打开文字后的首选项里面吧建立一个备份拷贝给拿掉edit-editor

ls -al |grep site.xml

删除以前生成的备份文件rm -f *~^C


3.[配置SSH]---在nanmenode节点上远程登陆其余主机把任务启动起来,登陆密码太麻烦,配置无密码登陆

ps -Af|grep ssh  看看有没有安装运行的进程sshd 安装完后的服务端    ,which ssh 查看客户端


1.安装ssh软件

$>sudo apt-get install ssh//安装服务端(sshd)和客户端(ssh)以及相关软件(ssh-keygen).




2.生成密钥对rsa是算法 ''无秘      -f指定目录    用户的主目录

$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa


有id_rsa.pub的那个是公钥



3.追加公钥到对方的认证库中。还有ssh连上其余电脑  不须要sudo哦


cat输出这个内容   >>追加  能够追加不少人的秘钥

$>cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

4.测试ssh到localhost 

$>ssh localhost






4.格式化hdfs文件系统   ---Hadoop.The.Definitive.Guide.4th 在Appendix A.Installing  --configuration---pseudodist


本身格式化的时候报错了,把hostname改成原来的ubutnu后重启就正常了


#>hdfs namenode -format// hadoop/bin/hdfs



5.启动hdfs和yarn守护进程

$>start-dfs.sh

$>start-yarn.sh


mr-jobhistory-daemon.sh  start historyserver  这个也要起,先不用,先不起


或者start-all.sh就等于这上面两个(貌似用这个开会少一个进程)----开启后开  jps看是否有5个对应的守护进程(第二次启动电脑后启动程序就少个namenode,格式化hdfs后重启就又有了,不知道为何)


$>stop-yarn.sh// hadoop/sbin/ 中止进程 ----和开启的顺序相反,按照上层的顺序

$>stop-yarn.sh


mr-jobhistory-daemon.sh stop historyserver   这个也要起,先不用,先不起


stop-all.sh已通过时了,推荐用上面的



DataNode

NameNode

SecondaryNameNode 文件系统


ResourceManager 名称管理器     yarn调度框架

NodeManager节点管理器




6.配置目录的指定方式-(start-yarn.sh,start-dfs.sh用到这个)--------想用哪一种把哪一种连接指向一个hadoop  好比 ln -s hadoop_pseudo hadoop(这样不会覆盖的,第二次要连接其余的先把他删除)直接改连接更方便

切花为local的话,hdoop fs -ls -R / 这样看的就是本地的文件系统了


a.默认方式

${hadoop_home}/etc/hadoop/*.xml    //默认的,有点时候作多种配置

b.经过启动参数指定配置目录

$.start-dfs.sh --config /soft/hadoop/etc/hadoop command//  hadoop/sbin

c.经过设置环境变量HADOOP_CONF_DIR

$>export HADOOP_CONF_DIR=/soft/hadoop/etc/hadoop_pseudo


把这个环境变量干掉 export HADOOP_CONF_DIR 直接这样

而后export HADOOP_CONF_DIR=

hdfs namenode -format格式化的时候也有提到相关的配置

用法实列

把/soft/hadoop/etc/hadoop改成/soft/hadoop/etc/hadoop_pseudo,这样直接启动就启动不了,用到下面配置目录的指定方式了

start-all.sh --config /soft/hadoop/etc/hadoop_pseudo



拷贝文件夹  cp -r hadoop_pseduo hadoop_local  要加-r




7.目录操做

hadoop fs -mkdir -p /user/$USER  ---------------------主目录,用这个,这样hadoop fs -ls 就会看到主目录去

$>hadoop fs -mkdir -p /user/ubuntu//建立目录 -p 多级目录

$>hadoop fs -ls ///显示根目录  -------要那5个守护进程启动起来哦----那个 / 是须要的哦

$>hadoop fs -ls /user/ubuntu/a//显示指定的目录

$>hadoop fs -ls -R///递归显示目录结构 ,目录,在namenode上,文件的话真正存储的地方仍是在datanode上

$>hadoop fs -lsr///同上,不过不推荐使用了


hadoop fs -ls -R hdfs://localhost/  最后有个/的哦,和上面一下看hadoop的文件系统

hadoop fs -ls -R file:/             访问本地的文件系统






/tmp/hadoop-ubuntu/dfs/name/current   格式化的时候目录就已经建立了, name----对应的就就是名称节点  能够看cat VERSION

/tmp/hadoop-ubuntu/dfs/data/current   对应datanode   能够看cat VERSION     /tmp/hadoop-ubuntu/dfs/data/current/BP-1334148266-127.0.1.1-1465945525779/current/finalized






8.查看帮助

$>hadoop fs//直接回车

$>hadoop fs -help put//查看put的具体信息





echo "hello world">>hello.txt 创一个文件放到hdfs文件上去




$>hadoop fs -put local.txt /user/ubuntu/xx.txthadoop fs -put hello.txt /user/ubuntu/  第二个老师用的是//将本地文件put到hdfs文件系统。.


下载的话就把put改为get




这个是临时目录,第二次启动就是被干掉的,每次开机都要从新格式化的

cd /tmp/hadoop-ubuntu/dfs/data/current/BP-1334148266-127.0.1.1-1465945525779/current/finalized/subdir0/subdir0 后就有块blk_1073741825和元数据描述了blk_1073741825_1001.meta



9.查看namenode和datanode在本地

$>cd /tmp/ubuntu-hadoop/dfs/name/...

$>cd /tmp/ubuntu-hadoop/dfs/data/...

10.查看log文件----------这个才是最重要的,之后可能会出现不少错误,都在log里面找---出现错误时会提示让他哪一个文件下找错误内容

$>${hadoop_home}/logs

11.也能够经过webui查看日志或者集群状况

http://localhost:50070///namenode web server port 查看namenode的日志  外面的要访问他http://192.168.2.112:50070   datanodes 加s就是数据节点集 用的是网络编程逃不了的

http://localhost:8088///resourceManager,看的是资源管理器的状况。只有在本机访问才能够。hadoop集群信息- 查出来前面4个0就能够其余地方输入ip端口访问。若是是127.0.0...绑定的就只能本机访问

mr做业提交的时候就是一个应用程序Applications,在这个端口里面看

http://localhost:19888///historyServer,历史服务器的状况

12.经过netstat查看网络端口占用状况

$>netstat -lupt//l:listener u:udp t:tcp p:program name   查出来前面4个0就能够其余地方输入ip端口访问。若是是127.0.0...绑定的就只能本机访问



文件有副本,目录没副本,一块是128m


有提到nat和桥接模式连接访问别人的hdfs问题,就提到一下005的35分钟左右几秒



搭建彻底分布式hadoop集群------------------pdf第10章的内容  Setting Up a Hadoop Cluster

-------------------------

1.安装java

2.建立user

3.安装hadoop

4.配置SSH

5.格式化

6.启动进程

start-dfs.sh | start-yarn.sh

7.建立目录

8.配置hadoop


nat是自动分配ip的



a.克隆虚拟机4台

b.ssh,配ip麻烦,配主机名好一点1.克隆后改主机名称   su  -------nano /etc/hostname 改完后重启

或su root ; echo "s200" > /etc/hostname------老师是分别登陆每台机器里面去改的


2.传送ssh的免密公钥给其余主机,ip要看一下,貌似每次重启ip都会变

scp id_rsa.pub ubuntu@s200:/home/ubuntu/.ssh/


s200上的   ,authorized_keys是以前克隆其余机器的,处理一下   cat id_rs.pub>authorized_keys,---这里不必,下面老师重写操做

而后他又其余机器的那个目录里面的秘钥之类的都删除重写生成了

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa


而后在s100上把公钥发给s200  scp id_rsa.pub ubuntu@s200:~/.ssh/id_rsa.pub.s100  发过去的时候改个名字  ----------005的结尾了

追加公钥到对方的认证库中authorized_keys。还有ssh连上其余电脑  不须要sudo哦

到s200上  cat id_rsa.pub.s100 >> authorized_keys






主机ssh其余机器的那个机器,配host映射 /etc/hosts  -------------

192.168.238.128 s100  本身

192.168.238.129 s200其余机器

192.168.238.130 s300

192.168.238.131 s400  这个ip不必定对,看实际的ip


这台机器配好后,其余机器也要有相同的关系再把这个文件发给其余机器上去,远程复制

scp --help


切到root后,没试过是否是必定要这个

远程复制

scp root@s200:/etc/hosts root@s300:/etc/

scp hosts root@s300:/etc/

把远程机器的这个文件放到另一台机器的etc下


c.配置hadoop配置文件

[core-site.xml]

<configuration>

<property>

<name>fs.defaultFS</name>

<!-- url:protocal + host + port + path -->

<value>hdfs://namenode/</value>  //原本是localhost---------如今是namenode,成ip或者主机名

</property>

</configuration>


[hdfs-site.xml]

dfs.replication=3


[mapred-site.xml]

mapreduce.framework.name=yarn


[yarn-site.xml]

yarn.resourcemanager.hostname=namenode

yarn.nodemanager.aux-services=mapreduce_shuffle




[slaves]  辅助,从属,主机列表,每一个一行,-----------彻底分布式下多了一个这个文件,也是在/soft/hadoop/etc/hadoop,伪分布里面有个数据节点以及节点管理器,由它决定。

保证ping主机名和pinglocalhost相同,用nat模式这个通常不会变


s200

s300

s400


[/etc/hosts]


d.远程复制/etc/hosts/到远程主机

$>scp hosts root@s200:/etc/

以前配置无秘登陆时给ubuntu用户的,若是是复制hosts文件,ubuntu没有权限的,因此要手动输入对方主机的root密码,除非也给root也配置一个6

相关文章
相关标签/搜索