Hadoop笔记(一)

1.Hadoop要解决2个问题

海量数据的存储--HDFS

海量数据的分析--MapReduce

HDFS的设计目标

Very large files

Streaming data access

Commodity hardware

HDFS不适合的场景

Low-latency data access

Lots of small files

Multiple writers,arbitrary file modifications

2.宿主机(windows)和客户机(虚拟机中的linux)网络连接方式

2.1 host-only  宿主机和客户机单独组网

好处:网络隔离

坏处:虚拟机与其他服务器之间不能通信

2.2 bridge桥接 宿主机和客户机在同一个局域网中

好处:同一个局域网可以互相访问

坏处:不安全

3.hadoop1.1.2的伪分布安装(最好使用root登录操作)

3.1 设置静态IP

在centOS桌面右上角的图标上,右键修改

重启网卡,执行service network restart

验证是否成功:执行命令ifconfig

3.2 修改主机名

修改当前回话中的主机名为hadoop,执行命令hostname hadoop

修改配置文件中的主机名为hadoop,执行命令vi /etc/sysconfig/network

验证:重启机器

3.3 把hostname和IP绑定

执行命令vi /etc/hosts,增加一行内容:192.168.80.100 hadoop

保存退出

验证:ping hadoop

3.4 关闭防火墙

service iptables status查看防火墙

service iptables  stop 关闭防火墙

关闭防火墙自动运行:chkconfig iptables off

验证:chkconfig --list | grep iptables

3.5 SSH免密码登录

查看是否安装了openssh: rpm -qa|grep openssh

查看SSH状态:chkconfig --list | grep ssh

启动sshd服务:service sshd start

免密码登录设置方法

<1>执行命令 ssh-keygen -t rsa 产生密钥,位于~/.ssh文件夹中

<2>执行命令 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

验证:ssh localhost

(一般登录格式:ssh 用户名@ip)

附:linux下怎么使SSH服务开机自动运行?

<1>首先查看是否安装ssh的相应包

rpm -aq|grep ssh

<2>如果已经安装查看相关的port是否打开

netstat -an|grep 22

<3>设置随机启动

通过ntsysv 选中sshd服务

也可以通过chkconfig也设置

chkconfig -- level 3 sshd on

<4>当这些部分都做好后重新reboot后,还是不能通过ssh联上去。

看一个系统本身的防火设置。

可以手工清空一个规则

iptables -F回车

iptables -t nat -F回车

如果系统端口与sshd服务已启动。

则可以在别的机器上通过ssh连上。

重置SSH公钥:

默认情况下服务器提供的公钥与自己的私钥都放置于 /etc/ssh/ssh_host*

rm /etc/ssh/ssh_host*

/etc/init.d/sshd restart

3.6 安装JDK(推荐1.6版本)

<1>执行命令rm -rf /usr/local/* 删除该目录下所有内容

<2>使用winscp把jdk等文件从windows复制到/usr/local目录下

<3>执行命令 chmod u+x jdk-6u45-linux-i586.bin 赋予该文件执行权限

<4>执行./jdk-6u45-linux-i586.bin解压缩

<5>执行命令 mv jdk1.6.0_24 jdk1.6 把文件夹重命名为简洁一点的名字

<6>执行命令 vi /etc/profile 设置环境变量,增加两行内容

export JAVA_HOME=/usr/local/jdk1.6

export PATH=.:$JAVA_HOME/bin:$PATH

保存退出,执行命令source /etc/profile 让设置立即生效

验证:java -version

3.7 安装hadoop

<1>执行命令 tar -zxvf hadoop-1.1.2.tar.gz进行解压缩

<2>执行命令 mv hadoop-1.1.2 hadoop 重命名

<3>执行命令 vi /etc/profile设置环境变量

export HADOOP_HOME=/usr/local/hadoop

export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

保存退出,执行命令source /etc/profile 让设置立即生效

<4>修改hadoop的配置文件,位于$HADOOP_HOME/conf目录下

修改4个配置文件,分别是hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml

【hadoop-env.sh的修改内容如下】

export JAVA_HOME=/你的路径/

【core-site.xml的修改内容如下】

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://hadoop:9000</value>

<description>change your own hostname</description>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop/tmp</value>

</property>

</configuration>

【hdfs-site.xml的修改内容如下】

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

</configuration>

【mapred-site.xml 的修改内容如下】

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>hadoop:9001</value>

<description>change your own hostname</description>

</property>

</configuration>

<5>执行命令hadoop namenode -format 对hadoop进行格式化

<6>执行命令start-all.sh启动

<7>验证:(1)执行命令jps,发现5个java进程:NameNode、SecondaryNameNode、JobTracker、TaskTracker、DataNode

(2)通过浏览器 http://hadoop:50070和http://hadoop:50030

去除hadoop启动的警告信息:在配置文件增加一个环境变量:export HADOOP_HOME_WARN_SUPPRESS=1

3.8 NameNode没有启动成功

(1)没有格式化

(2)配置文件要记得改主机名

(3)hostname与IP没有绑定

(4)SSH的免密码登录没有成功

3.9 多次格式化hadoop也会错误

解决方法:删除/usr/local/hadoop/tmp文件夹,重新格式化

4.对HDFS的操作方式

hadoop fs -help ls 查找ls命令的帮助

hadoop fs -ls  /查看hdfs的根目录下的内容

hadoop fs -lsr /递归查看hdfs的根目录下的内容

hadoop fs -mkdir /zpc 在hdfs上创建文件夹zpc

hadoop fs -put <linux source path><hdfs destination> 把数据从Linux上传到hdfs的特定路径中

(如果上传到一个不存在的目录,则会以那个名称为文件名)

hadoop fs -get <hdfs source path><linux destination> 把数据从hdfs下载到linux的特定路径下

hadoop fs -text <hdfs下的文件路径> 查看hdfs中的文件

hadoop fs -rm <文件路径> 删除HDFS中的文件

hadoop fs -rmr <文件目录路径> 删除HDFS中的文件目录

5.RPC(remote procedure call)

不同的java进程间的对象方法的调用

一方称作服务器端(server),一方称作客户端(client)

server端提供对象,供客户端调用的,被调用的对象的方法的执行发生在server端

RPC是hadoop框架运行的基础

6.通过RPC例子获得的认识:

6.1 服务器端提供的对象必须是一个接口,该接口要继承接口VersionedProtocol

6.2 客户端能够调用的对象中的方法必须位于对象的接口中

Hadoop笔记(一)

时间: 2024-10-17 11:10:22

Hadoop笔记(一)的相关文章

hadoop笔记之hdfs

1.HDFS设计基础与目标 1.HDFS设计基础与目标 (1)硬件错误是常态,因此需要冗余. (2)流式数据访问.即数据批量读取而非随机读写,Hadoop擅长做的是数据分析而不是事务处理. (3)大规模数据集 (4)简单一致性模型.为了降低系统复杂度,对文件采用一次性写多次读的逻辑设计,即是文件一经写入,关闭,就再也不能修改. (5)程序采用"数据就近"原则分配节点执行. 2.HDFS体系结构 Namenode Datanode 事务日志 映像文件 SecondaryNameNode

Hadoop笔记系列 一

1.先说说什么是Hadoop? 个人理解:一个分布式文件存储系统+一个分布式计算框架,在其上还有很多的开源项目来丰富他的功能,如Hbase,hive等等.官方:Hadoop是一个用Java编写的开源系统,可安排在大规模的计算平台上,从而提高计算效率.本质上它只是一个海量数据处理平台架构. 2.Hadoop与MapReduce,有什么关系? Hadoop生态圈的三个工具:第一,Hbase,最大化利用了内存.第二,HDFS,最大化利用了磁盘.第三,MapReduce,最大化利用了CPU.(Hbase

Hadoop笔记HDFS(1)

环境:Hadoop2.7.3 1.Benchmarking HDFS 1.1测试集群的写入 运行基准测试是检测HDFS集群是否正确安装以及表现是否符合预期的好方法.DFSIO是Hadoop自带的一个基准测试程序,可以用来分析HDFS集群的I/O能力 脚本: $HADOOP_HOME/bin/hadoop jar hadoop-mapreduce-client-jobclient-2.7.3-tests.jar TestDFSIO -write -nrFiles 10 -size 50MB nrF

hadoop笔记之MapReduce的应用案例(利用MapReduce进行排序)

MapReduce的应用案例(利用MapReduce进行排序) MapReduce的应用案例(利用MapReduce进行排序) 思路: Reduce之后直接进行结果合并 具体样例: 程序名:Sort.java import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; impo

Hadoop笔记之搭建环境

Hadoop的环境搭建分为单机模式.伪分布式模式.完全分布式模式. 因为我的本本比较挫,所以就使用伪分布式模式. 安装JDK 一般Linux自带的Java运行环境都是Open JDK,我们到官网下载Oracle JDK(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html): 需要注意的是官网上直接右键复制的话是下载不成功的,F12,单机,看网络请求包: 然后复制地址wget即可:

hadoop笔记之MapReduce的运行流程

MapReduce的运行流程 MapReduce的运行流程 基本概念: Job&Task:要完成一个作业(Job),就要分成很多个Task,Task又分为MapTask和ReduceTask JobTracker TaskTracker Hadoop MapReduce体系结构 JobTracker的角色 作业调度 分配任务.监控任务执行进度 监控TaskTracker的状态 TaskTracker的角色 执行任务 汇报任务状态 MapReduce作业执行过程 MapReduce的容错机制 重复

hadoop笔记之Hive入门(Hive的体系结构)

Hive入门(二) Hive入门(二) Hive的体系结构 ○ Hive的元数据 Hive将元数据存储在数据库中(metastore),支持mysql.derby.oracle等数据库,Hive默认是derby数据库 Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等 ○ HQL的执行过程 解释器.编译器.优化器完成HQL查询语句从词法分析.语法分析.编译.优化以及查询计划(Plan)的生成.生成的查询计划存储在HDFS中,并在随后有MapRed

hadoop笔记(二)

hbase 基础: hbase是基于列的数据,其数据模式如下: 1.安装 1.1)hbase安装分为单机.伪分布式.分布式,单机下安装不依赖于hadoop:因为不需要分布式文件系统支持: 1.2)安装并启动服务: tar xfz hbase-0.94.12.tar.gz; start-hbase.sh stop-hbase.sh 备注:需要先安装jdk 1.3) 配置hbase-site.xml <configuration> <property> <name>hbas

hadoop 笔记(hive)

//**********************************//安装配置1. 修改配置文件 1.1 在conf文件夹下 touch hive-site.xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=t