搜档网
当前位置:搜档网 › Hadoop,HBase,hive安装步骤

Hadoop,HBase,hive安装步骤

Hadoop,HBase,hive安装步骤
Hadoop,HBase,hive安装步骤

Hadoop,ZooKeeper,HBase,hive(HQL) 安装步骤

Hadoop安装:

首先我们统一一下定义,在这里所提到的Hadoop是指Hadoop Common,主要提供DFS(分布式文件存储)与Map/Reduce的核心功能。

Hadoop在windows下还未经过很好的测试,所以推荐大家在linux(cent os 6.X)下安装使用。

准备安装Hadoop集群之前我们得先检验系统是否安装了如下的必备软件:ssh和Jdk1.6(因为Hadoop需要使用到Jdk中的编译工具,所以一般不直接使用Jre)。可以使用yum install rsync来安装rsync。一般来说ssh是默认安装到系统中的。

Jdk1.6的安装方法

下载linux版本的java,

#mkdir /usr/java

#cd /usr/java

#chmod a+x jdk-6u27-linux-i586.bin

#./jdk-6u27-linux-i586.bin

安装完成后,设臵环境变量:在etc/profile中设臵

#export JAVA_HOME=/usr/java/jdk1.6.0_27

#export

CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOM E/lib/tools.jar

#export PATH=$PATH:$JAVA_HOME/bin

设臵完成后,使用reboot或者source /etc/profile

确保以上准备工作完了之后我们就开始安装Hadoop软件,假设我们用三台机器做Hadoop集群,分别是:192.168.0.141、192.168.0.142和192.168.0.143(下文简称141,142和143),且都使用root用户。

这里有一点需要强调的就是,务必要确保每台机器的主机名和IP地址之间能正确解析。

Host配臵

一个很简单的测试办法就是ping一下主机名,比如在ww-1上ping ww-2,如果能ping通就OK!若不能正确解析,可以修改/etc/hosts文件,如果该台机器作Namenode用,则需要在hosts文件中加上集群中所有机器的IP地址及其对应的主机名;如果该台机器作Datanode用,则只需要在hosts文件中加上本机IP

地址和Namenode机器的IP地址。

以本文为例,dbrg-1中的/etc/hosts文件看起来就应该是这样的:

127.0.0.1 localhost localhost

192.168.0.141ww-1 ww-1

192.168.0.142ww-2 ww-2

192.168.0.143ww-3 ww-3

ww-2中的/etc/hosts文件看起来就应该是这样的:

127.0.0.0 localhost localhost

192.168.0.141 ww-1 ww-1

192.168.0.143 ww-3 ww-3

下面是在centos6平台下安装Hadoop的过程:

在usr下建立hadoop文件夹,将hadoop下载文件解压。

在etc/profile文件中设臵环境变量:

export HADOOP_HOME=/home/ww/hadoop.020.204.0/hadoop

集群配臵

在这里我们使用141作为NameNode与JobTracker,其它两台机器作为DataNode和TaskTracker,具体的配臵如下:

环境的配臵

在$HADOOP_HOME/conf/hadoop-env.sh中定义了Hadoop启动时需要的环境变量设臵,其中我们至少需要配臵JAVA_HOME(Jdk的路径)变量;另外我们一般还需要更改HADOOP_LOG_DIR(Hadoop的日志路径)这个变量,默认的设臵是“export HADOOP_LOG_DIR=${HADOOP_HOME}/logs”,一般需要将其配臵到一个磁盘空间比较大的目录下。(不是必要)

Hadoop核心程序配臵

Hadoop 包括一组默认配臵文件($HADOOP_HOME/src目录下的

core/core-default.xml, hdfs/hdfs-default.xml 和mapred/mapred-default.xml)。虽然默认配臵文件能让Hadoop核心程序顺利启动,一般需要自己来设臵一些常规配臵以满足开发和业务的需求,所以我们需要对默认配臵文件的值进行覆盖,具体方法如下。

$HADOOP_HOME/conf/core-site.xml是Hadoop的核心配臵文件,对应并覆盖core-default.xml中的配臵项。我们一般在这个文件中增加如下配臵:Core-site.xml代码

https://www.sodocs.net/doc/f75042731.html,

hdfs://192.168.0.141:9000

$HADOOP_HOME/conf/hdfs-site.xml是HDFS的配臵文件,对应并覆盖hdfs-default.xml中的配臵项。我们一般在这个文件中增加如下配臵:

https://www.sodocs.net/doc/f75042731.html,.dir

/opt/hadoop/data/https://www.sodocs.net/doc/f75042731.html,.dir

dfs.data.dir

/opt/hadoop/data/dfs.data.dir

(不添加)

dfs.permissions

false

$HADOOP_HOME/conf/mapred-site.xml是Map/Reduce的配臵文件,对应并覆盖mapred-default.xml中的配臵项。我们一般在这个文件中增加如下配臵:

mapred.job.tracker

192.168.0.141:9001

mapred.system.dir

/system/mapred.system.dir

mapred.local.dir

/opt/hadoop/data/mapred.local.dir

(不添加)

主从配臵

在$HADOOP_HOME/conf目录中存在masters和slaves这两个文件,用来做Hadoop的主从配臵。上面已经提到了Hadoop主要由NameNode/DataNode 和JobTracker/TaskTracker构成,在主从配臵里我们一般将NameNode和JobTracker列为主机,其它的共为从机,于是对于此处的配臵应该是:Masters代码

192.168.0.141

Slaves代码

192.168.0.142

192.168.0.143

如果你对以上介绍的配臵项做了正确的配臵,那么你的Hadoop集群只差启动和初体念了,当然,在$HADOOP_HOME/conf目录下还包括其它的一些配臵文件,但那些都不是必须设臵的,如果有兴趣你可以自己去了解了解。

值得注意的是Hadoop集群的所有机器的配臵应该保持一致,一般我们在配臵完master后,使用scp将配臵文件同步到集群的其它服务器上。

SSH配臵

经过以上两个步骤,Hadoop的安装和配臵已经OK了,那么下面我们就来启动Hadoop集群。启动前我们需要做一些准备,因为集群的启动是从NameNode 开始的,于是DataNode的运行需要NameNode的远程调用,Hadoop使用ssh命令远程运行DataNode节点,这就是为什么Hadoop需要ssh的支持。我们可以想象一下,如果集群里有100台机器,那么我们就需要输入100遍主机的访问密码,但如果配臵SSH使用无密码公钥认证的方式,就解决了此问题。

简单的说,在141上需要生成一个密钥对,即一个私钥和一个公钥。将公钥拷贝到142和143上,如此一来,当141向142发起ssh连接的时候,142上就会生成一个随机数并用141的公钥对这个随机数进行加密,并且发送给141,141收到这个加密的数以后用私钥进行解密,并将解密后的数返回142,142确认解密的数无误后就允许141进行连接了。这就完成了一次公钥认证过程。

公钥生成的步骤如下:

在每台电脑的用户文件夹下面建立.ssh文件夹

命令为:#mkdir .ssh

然后生成密钥:命令为:

# ssh-keygen -t rsa

之后三次回车,完成之后,会在ssh文件夹下面建立id_rsa.pub,id_rsa两个文件。所有计算机都生成完密钥后。

将主机生成的id_rsa.pub的内容复制到authorized_keys文件中。如果authorized_keys不存在,则使用touch ~/.ssh/authorized_keys生成一个;如果该文件已经存在,则追加内容进去就OK了。

最后将生成主机的.ssh文件夹拷贝到其它计算机中。

这里我们推荐使用如下命令:

本机:

#cd .ssh

#cp id_rsa.pub authorized_keys

在往远程计算机copy文件之前,要先对本机取得ssh权限

即在本机:#ssh 192.168.0.141按提示进行。

远程:scp –r /home/ww/.ssh 192.168.0.142:/home/ww

scp –r /home/ww/.ssh 192.168.0.143:/home/ww

#chmod go-rwx authorized_keys 644权限所有计算机上都要进行,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH 是不会工作的。

测试是否成功命令:ssh 192.168.0.142

经过以上步骤,我们的无密码访问就配臵好了。

部署远程计算机

前面讲的这么多Hadoop的环境变量和配臵文件都是在ww-1这台机器上的,现在需要将hadoop部署到其他的机器上,保证目录结构一致。

[ww@ww-1:~]$scp -r /home/ww/Hadoop0.20.204.0ww-2:/home/ww/

[ww@ww-1:~]$scp -r /home/ww/ Hadoop0.20.204.0ww-3:/home/ww/

至此,可以说,Hadoop已经在各个机器上部署完毕了下面就让我们开始启动Hadoop吧。

启动

启动方式如下:

启动服务之前,我们需要做一件事情,非常重要,那就是格式化命名空间#bin/hadoop namenode –format

启动dfs和map/reduce服务

bin/start-all.sh(开启服务时,使用有管理员权限的帐户)

我们用如下命令验证一下是否启动成功:

bin/hadoop dfs -ls

如果没有错误提示或者出现文件列表,那么恭喜你,Hadoop成功启动了,另外,我们可以通过访问http://192.168.0.141:50070来查看hdfs的状态,访问http://192.168.0.141:50030来查看map/reduce的状态。

如果出现错误,或Hadoop集群未启动,可以查看$HADOOP_HOME/logs/下的日志文件。

HDFS操作

运行bin/目录的hadoop命令,可以查看Hadoop所有支持的操作及其用法,这里以几个简单的操作为例。

建立目录

[ww@ww-1:hadoop]$bin/hadoopdfs–mkdirtestdir

在HDFS中建立一个名为testdir的目录

复制文件

[ww@ww-1:hadoop]$bin/hadoopdfs–put/home/ww/large.ziptestfile.zip

把本地文件large.zip拷贝到HDFS的根目录/user/ww/下,文件名为testfile.zip 查看现有文件

[ww@ww-1:hadoop]$bin/hadoopdfs–ls

安装和配置ZooKeeper

HBase从0.20.0开始,需要首先安装ZooKeeper。从apache上下载zookeeper-3.3.3.tar.gz(Stable版本),解压到/home/hdfs/目录下。

(1),在namenode节点新建zookeeper目录,在该目录下新建myid文件。(2),在zookeeper-3.3.3/conf目录下,拷贝zoo_sample.cfg为zoo.cfg。在zoo.cfg 中将dataDir改为/home/hdfs/zookeeper,在文件末位添加所有的主机:server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

(3)用scp命令将namenode节点的的/home/hdfs/ zookeeper-3.3.3和/home/hdfs/ zookeeper拷贝到其余所有主机的/home/hdfs目录下。

(4)参照zoo.cfg中的配置,在各主机myid文件中写入各自的编号。如:server.1写入1, server.2写入2

在所有节点上执行bin/zkServer.sh start,分别启动。

刚启动一台机器时,会报错,机器全部启动后就正常了。

执行bin/zkCli.sh -server slave2:2181,检查指定服务器是否成功启动。

检查zookeeper状态,echo ruok| nc master 2181(不用做这些HBase会帮我们启动ZK)

HBase安装:(版本0.90.4)

修改文件:/etc/profile

export HBASE_HOME=/usr/local/hbase

export PATH=$PATH:$HBASE_HOME/bin

先关闭hadoop的安全模式

#bin/hadoop dfsadmin –savemodel leave

不然会出现mismatch错误

(1)系统所有配置项的默认设置在hbase-default.xml中查看,如果需要修改配置项的值,在hbase-site.xml中添加配置项。

在分布式模式下安装HBase,需要添加的最基本的配置项如下:

hbase.rootdir

hdfs://master:54310/hbase

hbase.cluster.distributed

true

hbase.master

hdfs://master:60000

hbase.zookeeper.quorum

slave-001,slave-002,slave-003

Comma separated list of servers in the ZooKeeper Quorum. For example, "https://www.sodocs.net/doc/f75042731.html,,https://www.sodocs.net/doc/f75042731.html,,https://www.sodocs.net/doc/f75042731.html,". By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh this is the list of servers which we will start/stop ZooKeeper on.

hbase.zookeeper.property.dataDir

/data/work/zookeeper

Property from ZooKeeper's config zoo.cfg. The directory where the snapshot is stored.

(2)在conf/hbase-env.sh中修改添加配置项:

export JAVA_HOME=/usr/java/jdk1.6.0_22

export HBASE_MANAGES_ZK=true

export HADOOP_CONF_DIR=/hadoop/hadoop-config(如果默认,则不添加)

并把~/hadoop-0.20.1/conf/hdfs-site.xml拷贝至~/hbase-3.2.1/conf/目录下(不知道什么用)。

(3)使用hadoop目录下hadoop-0.20.2-core.jar替换hbase-0.90.4/lib下的hadoop-core-0.20-append-r1056497.jar,如果不这样做,会出现版本不一致,导致HMaster启动失败。

(4)在conf/regionservers中添加hadoop-0.20.1/conf/slaves中所有的datanode 节点。

Slave1

Slave2

(5)启动

启动/关闭HBase

bin/start-hbase.sh

bin/stop-hbase.sh

测试HBase

bin/hbase shell

create ‘bigtable1’ ‘data’

put ‘bigtable1’,’row1’,’data:aa’,’value1’

put ‘bigtable1’,’row2’,’data:bb’,’value2’

list

scan ‘bigtable1’

删除表:

#disable ‘table1’

#drop ‘table1’

先启动Hadoop再启动HBase,命令如下

所有命令如下:

Bin/start-all.sh—>Bin/start-hbase.sh

Bin/stop-hbase.sh—>Bin/ stop -all.sh

HBase java编程时需要导入下列包:

hbase-0.20.6.jar

hadoop-core-0.20.1.jar

commons-logging-1.1.1.jar

zookeeper-3.3.0.jar

log4j-1.2.91.jar

Hive安装步骤

https://www.sodocs.net/doc/f75042731.html,/blog/972406

第一步,启动hadoop,命令:./start-all.sh

第二步,启动hive,命令:

#bin/hive

第三步,启动hbase,命令:./start-hbase.sh

第四步,建立关联表,这里我们要查询的表在hbase中已经存在所以,使用CREATE EXTERNAL TABLE来建立,如下:

CREATE EXTERNAL TABLE hbase_table_2(key string, value1 string,value2 string)STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITH SERDEPROPERTIES ("hbase.columns.mapping" = "data:1,data1:1") TBLPROPERTIES("https://www.sodocs.net/doc/f75042731.html," = "test");

hbase.columns.mapping指向对应的列族;多列时,data:1,data:1;多列族时,data1:1,data1:2;

https://www.sodocs.net/doc/f75042731.html,指向对应的表;

hbase_table_2(key string, value string),这个是关联表

我们看一下HBase中要查询的表的结构,

Java代码

1.hbase(main):001:0> describe 'test'

2.DESCRIPTION

ENABLED

3. {NAME => 'test', FAMILIES => [{NAME => 'data', COMPRESSION =>

'NONE', true

4. VERSIONS => '3', TTL => '2147483647', BLOCKSIZE => '65536', IN

_MEMORY

5. => 'false', BLOCKCACHE => 'true'}]}

6.1 row(s) in 0.0810 seconds

7.hbase(main):002:0>

在看一下表中的数据,

Java代码

1.hbase(main):002:0> scan 'test'

2.ROW COLUMN+CELL

3. row1 column=data:1, timestamp=130084709

8583, value=value1

4. row12 column=data:1, timestamp=130084905

6637, value=value3

5. row2 column=data:2, timestamp=130084710

6880, value=value2

6.3 row(s) in 0.0160 seconds

7.hbase(main):003:0>

列族:data:1、data:1两个

Key:row1、row12、row2

value:value1、value3、value2

hbase_table_2(key string, value string)中对应的test表中的row,value 字段对应的是test表中的value

OK,现在可以来看看查询结果了,

我们在hive命令行中先查看一下hbase_table_2,

Java代码

1.hive> select * from hbase_table_2;

2.OK

3.row1 value1

4.row12 value3

5.Time taken: 0.197 seconds

6.hive>

对比一下test表中的列族为data:1的数据,

Java代码

1.row1 column=data:1, timestamp=1300847098

583, value=value1

2.row12 column=data:1, timestamp=1300849056

637, value=value3

和查询结果相符,没问题,然后我们在hbase中在给列族data:1新增一条数据,

Java代码

1.hbase(main):003:0> put 'test','row13','data:1','value4'

2.0 row(s) in 0.0050 seconds

3.hbase(main):004:0>

再查看hbase_table_2表,

Java代码

1.hive> select * from hbase_table_2;

2.OK

3.row1 value1

4.row12 value3

5.row13 value4

6.Time taken: 0.165 seconds

7.hive>

新增数据value4出现了,说明可以通过hbase_table_2查询hbase的test表

下面我们来查询一下test表中value值为value3的数据,

Java代码

1.hive> select * From hbase_table_2 where value='value3';

2.Total MapReduce jobs = 1

https://www.sodocs.net/doc/f75042731.html,unching Job 1 out of 1

4.Number of reduce tasks is set to 0 since there's no reduce operator

5.Starting Job = job_201103231022_0001, Tracking URL = http://localhost:500

30/jobdetails.jsp?jobid=job_201103231022_0001

6.Kill Command = /home/dream-victor/hadoop-0.20.2/bin/hadoop job -Dmapre

d.job.tracker=localhost:9001 -kill job_201103231022_0001

7.2011-03-2311:23:27,807 Stage-1 map = 0%, reduce = 0%

8.2011-03-2311:23:30,824 Stage-1 map = 100%, reduce = 0%

9.2011-03-2311:23:33,854 Stage-1 map = 100%, reduce = 100%

10.Ended Job = job_201103231022_0001

11.OK

12.row12 value3

13.Time taken: 11.929 seconds

14.hive>

和hbase的test表对比一下,

Java代码

1.row12 column=data:1, timestamp=1300849056637, value=value

3

OK,这样我们就可以使用SQL来对hbase进行查询了。

以上只是在命令行里左对应的查询,我们的目的是使用JAVA代码来查询出有用的数据,其实这个也很简单,

首先,启动Hive的命令有点变化,使用如下命令:

Java代码

1.bin/hive --service hiveserver

这里我们默认使用嵌入的Derby数据库,这里可以在hive-site.xml文件中查看到:

Java代码

1.

2. javax.jdo.option.ConnectionURL

3. jdbc:derby:;databaseName=metastore_db;create=true

ue>//指定了数据库默认的名字和地址

4.

5.

6.

7. javax.jdo.option.ConnectionDriverName

8. org.apache.derby.jdbc.EmbeddedDriver

9.

在此,数据库链接的URL可以使用默认的:

jdbc:hive://localhost:10000/default

有了上面的准备,下面我们就可以使用JAVA代码来读取数据了,如下:

Java代码

1.public class HiveTest extends TestCase {

2.

3. private static String driverName = "org.apache.hadoop.hive.

jdbc.HiveDriver";

4. private Connection con;

5. private boolean standAloneServer = true;

6.

7. public void testSelect() throws SQLException {

8. Statement stmt = con.createStatement();

9. ResultSet res = stmt.executeQuery("select * from hbase_

table_2");

10. boolean moreRow = res.next();

11. while (moreRow) {

12. System.out.println(res.getString(1)+","+res.getStri

ng(2));

13. moreRow = res.next();

14. }

15. }

16.

17. @Override

18. protected void setUp() throws Exception {

19. super.setUp();

20. Class.forName(driverName);

21. con = DriverManager.getConnection(

22. "jdbc:hive://localhost:10000/default", "", "");

23. }

24.}

结果,

Java代码

1.row1,value1

2.row12,value3

3.row13,value4

4.row14,test

查看一下hbase中的结果,

Java代码

1.ROW COLUMN+CELL

2. row1 column=data:1, timestamp=130084709

8583, value=value1

3. row12 column=data:1, timestamp=130084905

6637, value=value3

4. row13 column=data:1, timestamp=130085044

3699, value=value4

5. row14 column=data:1, timestamp=130086755

0502, value=test

OK,完美了,不过还是希望这样的需求少一点,毕竟Hbase产生的初衷不是为了支持结构化查询。

在hive中创建索引

create table TBL_FACT_SYMBIAN_PACKET(PROVICE_FK INT,DATE_FK INT,MODEL_FK INT,COUNTRY_FK INT,NETWORK_FK INT,OSLAG_FK INT,OS_FK INT,NQ_SOFTWARE_VER INT,SUBCOOP_FK INT,NQ_SOFTWARE_TYPE_FK INT,SCANTYPE_FK INT,SCANID STRING,NAME STRING,SECURITY STRING,CA_ISSUER STRING,CA_SUBJECT STRING,HAS_NOTE STRING,VIRUS_NAME STRING

)partitioned BY(dt STRING) row format delimited fields terminated by '\t'

STORED AS textfile

load data local inpath '/home/boss/symbian_pkgs_20110529.log.hive' overwrite into table TBL_FACT_SYMBIAN_PACKET partition(dt='2011-05-29');

1 创建索引

create index index_model_fk on table TBL_FACT_SYMBIAN_PACKET(model_fk) AS 'https://www.sodocs.net/doc/f75042731.html,pactIndexHandler' WITH DEFERRED REBUILD ;

2. 更新数据

ALTER INDEX index_model_fk ON TBL_FACT_SYMBIAN_PACKET REBUILD;

3. 删除索引

drop index index_model_fk on tbl_fact_symbian_packet;

4. 查看索引

show index on tbl_fact_symbian_packet;

hadoop2.7.2 伪分布式安装

hadoop:建立一个单节点集群伪分布式操作 安装路径为:/opt/hadoop-2.7.2.tar.gz 解压hadoop: tar -zxvf hadoop-2.7.2.tar.gz 配置文件 1. etc/hadoop/hadoop-env.sh export JAVA_HOME=/opt/jdk1.8 2. etc/hadoop/core-site.xml fs.defaultFS hdfs://localhost:9000 hadoop.tmp.dir file:/opt/hadoop-2.7.2/tmp 3. etc/hadoop/hdfs-site.xml https://www.sodocs.net/doc/f75042731.html,.dir file:/opt/hadoop-2.7.2/dfs/name dfs.datanode.data.dir file:/opt/hadoop-2.7.2/dfs/data dfs.replication 1 dfs.webhdfs.enabled true

hadoop集群完整配置过程详细笔记

本文为笔者安装配置过程中详细记录的笔记 1.下载hadoop hadoop-2.7.1.tar.gz hadoop-2.7.1-src.tar.gz 64位linux需要重新编译本地库 2.准备环境 Centos6.4 64位,3台 hadoop0 192.168.1.151namenode hadoop1 192.168.1.152 datanode1 Hadoop2 192.168.1.153 datanode2 1)安装虚拟机: vmware WorkStation 10,创建三台虚拟机,创建时,直接建立用户ha,密码111111.同时为root密码。网卡使用桥接方式。 安装盘 、 2). 配置IP.创建完成后,设置IP,可以直接进入桌面,在如下菜单下配置IP,配置好后,PING 确认好用。 3)更改三台机器主机名 切换到root用户,更改主机名。 [ha@hadoop0 ~]$ su - root Password: [root@hadoop0 ~]# hostname hadoop0 [root@hadoop0 ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop0 以上两步后重启服务器。三台机器都需要修改。 4)创建hadoop用户 由于在创建虚拟机时,已自动创建,可以省略。否则用命令创建。

5)修改hosts文件 [root@hadoop0 ~]# vi /etc/hosts 127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4 ::1localhostlocalhost.localdomain localhost6 localhost6.localdomain6 192.168.1.151 hadoop0 192.168.1.152 hadoop1 192.168.1.153 hadoop2 此步骤需要三台机器都修改。 3.建立三台机器间,无密码SSH登录。 1)三台机器生成密钥,使用hadoop用户操作 [root@hadoop0 ~]# su– ha [ha@hadoop0 ~]$ ssh -keygen -t rsa 所有选项直接回车,完成。 以上步骤三台机器上都做。 2)在namenode机器上,导入公钥到本机认证文件 [ha@hadoop0 ~]$ cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys 3)将hadoop1和hadoop2打开/home/ha/.ssh/ id_rsa.pub文件中的内容都拷贝到hadoop0的/home/ha /.ssh/authorized_keys文件中。如下: 4)将namenode上的/home/ha /.ssh/authorized_keys文件拷贝到hadoop1和hadoop2的/home/ha/.ssh文件夹下。同时在三台机器上将authorized_keys授予600权限。 [ha@hadoop1 .ssh]$ chmod 600 authorized_keys 5)验证任意两台机器是否可以无密码登录,如下状态说明成功,第一次访问时需要输入密码。此后即不再需要。 [ha@hadoop0 ~]$ ssh hadoop1 Last login: Tue Aug 11 00:58:10 2015 from hadoop2 4.安装JDK1.7 1)下载JDK(32或64位),解压 [ha@hadoop0 tools]$ tar -zxvf jdk-7u67-linux-x64.tar.gz 2)设置环境变量(修改/etx/profile文件), export JAVA_HOME=/usr/jdk1.7.0_67 export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin 3)使环境变量生效,然后验证JDK是否安装成功。

Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu_CentOS

Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS 本教程讲述如何配置Hadoop 集群,默认读者已经掌握了Hadoop 的单机伪分布式配置,否则请先查看Hadoop安装教程_单机/伪分布式配置或CentOS安装Hadoop_单机/伪分布式配置。 本教程由厦门大学数据库实验室出品,转载请注明。本教程适合于原生Hadoop 2,包括Hadoop 2.6.0, Hadoop 2.7.1 等版本,主要参考了官方安装教程,步骤详细,辅以适当说明,保证按照步骤来,都能顺利安装并运行Hadoop。另外有Hadoop安装配置简略版方便有基础的读者快速完成安装。 为了方便新手入门,我们准备了两篇不同系统的Hadoop 伪分布式配置教程。但其他Hadoop 教程我们将不再区分,可同时适用于Ubuntu 和CentOS/RedHat 系统。例如本教程以Ubuntu 系统为主要演示环境,但对Ubuntu/CentOS 的不同配置之处、CentOS 6.x 与CentOS 7 的操作区别等都会尽量给出注明。 环境 本教程使用Ubuntu 14.04 64位作为系统环境,基于原生Hadoop 2,在Hadoop 2.6.0 (stable)版本下验证通过,可适合任何Hadoop 2.x.y 版本,例如Hadoop 2.7.1,Hadoop 2.4.1 等。 本教程简单的使用两个节点作为集群环境: 一个作为Master 节点,局域网IP 为192.168.1.121;另一个作为Slave 节点,局域网IP 为192.168.1.122。 准备工作 Hadoop 集群的安装配置大致为如下流程: 1.选定一台机器作为Master 2.在Master 节点上配置hadoop 用户、安装SSH server、安装Java 环境 3.在Master 节点上安装Hadoop,并完成配置 4.在其他Slave 节点上配置hadoop 用户、安装SSH server、安装Java 环境 5.将Master 节点上的/usr/local/hadoop 目录复制到其他Slave 节点上 6.在Master 节点上开启Hadoop 配置hadoop 用户、安装SSH server、安装Java 环境、安装Hadoop 等过程已经在Hadoop安装教程_单机/伪分布式配置或CentOS安装Hadoop_单机/伪分布式配置中有详细介绍,请前往查看,不再重复叙述。 继续下一步配置前,请先完成上述流程的前 4 个步骤。 网络配置 假设集群所用的节点都位于同一个局域网。 如果使用的是虚拟机安装的系统,那么需要更改网络连接方式为桥接(Bridge)模式,才能实现多个节点互连,例如在VirturalBox 中的设置如下图。此外,如果节点的系统是在虚拟机中直接复制的,要确保各个节点的Mac 地址不同(可以点右边的按钮随机生成MAC 地址,否则IP 会冲突):

hadoop基本命令_建表-删除-导数据

HADOOP表操作 1、hadoop简单说明 hadoop 数据库中的数据是以文件方式存存储。一个数据表即是一个数据文件。hadoop目前仅在LINUX 的环境下面运行。使用hadoop数据库的语法即hive语法。(可百度hive语法学习) 通过s_crt连接到主机。 使用SCRT连接到主机,输入hive命令,进行hadoop数据库操作。 2、使用hive 进行HADOOP数据库操作

3、hadoop数据库几个基本命令 show datebases; 查看数据库内容; 注意:hadoop用的hive语法用“;”结束,代表一个命令输入完成。 usezb_dim; show tables;

4、在hadoop数据库上面建表; a1: 了解hadoop的数据类型 int 整型; bigint 整型,与int 的区别是长度在于int; int,bigint 相当于oralce的number型,但是不带小数点。 doubble 相当于oracle的numbe型,可带小数点; string 相当于oralce的varchar2(),但是不用带长度; a2: 建表,由于hadoop的数据是以文件有形式存放,所以需要指定分隔符。 create table zb_dim.dim_bi_test_yu3(id bigint,test1 string,test2 string)

row format delimited fields terminated by '\t' stored as textfile; --这里指定'\t'为分隔符 a2.1 查看建表结构: describe A2.2 往表里面插入数据。 由于hadoop的数据是以文件存在,所以插入数据要先生成一个数据文件,然后使用SFTP将数据文件导入表中。

hadoop伪分布式搭建2.0

1. virtualbox安装 1. 1. 安装步骤 1. 2. virtualbox安装出错情况 1. 2.1. 安装时直接报发生严重错误 1. 2.2. 安装好后,打开Vitualbox报创建COM对象失败,错误情况1 1. 2.3. 安装好后,打开Vitualbox报创建COM对象失败,错误情况2 1. 2.4. 安装将要成功,进度条回滚,报“setup wizard ended prematurely”错误 2. 新建虚拟机 2. 1. 创建虚拟机出错情况 2. 1.1. 配制好虚拟光盘后不能点击OK按钮 3. 安装Ubuntu系统 3. 1. 安装Ubuntu出错情况 3. 1.1. 提示VT-x/AMD-V硬件加速在系统中不可用 4. 安装增强功能 4. 1. 安装增强功能出错情况 4. 1.1. 报未能加载虚拟光盘错误 5. 复制文件到虚拟机 5. 1. 复制出错情况 5. 1.1. 不能把文件从本地拖到虚拟机 6. 配置无秘登录ssh 7. Java环境安装 7. 1. 安装Java出错情况 7. 1.1. 提示不能连接 8. hadoop安装 8. 1. 安装hadoop的时候出错情况 8. 1.1. DataNode进程没启动 9. 开机自启动hadoop 10. 关闭服务器(需要时才关) 1. virtualbox安装 1. 1. 安装步骤 1.选择hadoop安装软件中的VirtualBox-6.0.8-130520-Win

2.双击后进入安装界面,然后直接点击下一步 3.如果不想把VirtualBox安装在C盘,那么点击浏览

Hadoop-0.20.2详细安装及疑难问题

安装 2011年4月4日 10:13 Hadoop-0.20.2安装使用 1、Cygwin 安装 ssh 2、按照以下的文档配置ssh 在Windows上安装Ha doop教程.pdf 3、几个配置文件的配置 3.1、conf/core-site.xml https://www.sodocs.net/doc/f75042731.html, hdfs://localhost:9000 true hadoop.tmp.dir /workspace/temp/hadoop/tmp/hadoop- ${https://www.sodocs.net/doc/f75042731.html,} true 3.2、conf/hdfs-site.xml dfs.replication 1 true https://www.sodocs.net/doc/f75042731.html,.dir /workspace/temp/hadoop/data/hadoop/name true

dfs.data.dir /workspace/temp/hadoop/data/hadoop/data true 3.3、conf/mapred-site.xml mapred.job.tracker localhost:9001 true 3.4、conf/hadoop-env.sh export JAVA_HOME=D:/workspace/tools/jdk1.6 4、解决启动的时候 ClassNotFound: org.apache.hadoop.util.PlatformName 将 %hadoop_home%\bin\hadoop-config.sh中的第190行 修改为如下: JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m -classpath ${HADOOP_COMMON_HOME}/hadoop-common-0.21.0.jar org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"` 5、命令

hadoop3安装和配置

hadoop3.0.0安装和配置1.安装环境 硬件:虚拟机 操作系统:Centos 7 64位 IP:192.168.0.101 主机名:dbp JDK:jdk-8u144-linux-x64.tar.gz Hadoop:hadoop-3.0.0-beta1.tar.gz 2.关闭防火墙并配置主机名 [root@dbp]#systemctl stop firewalld #临时关闭防火墙 [root@dbp]#systemctl disable firewalld #关闭防火墙开机自启动 [root@dbp]#hostnamectl set-hostname dbp 同时修改/etc/hosts和/etc/sysconfig/network配置信息 3.配置SSH无密码登陆 [root@dbp]# ssh-keygen -t rsa #直接回车 [root@dbp]# ll ~/.ssh [root@dbp .ssh]# cp id_rsa.pub authorized_keys [root@dbp .ssh]# ssh localhost #验证不需要输入密码即可登录

4.安装JDK 1、准备jdk到指定目录 2、解压 [root@dbp software]# tar–xzvf jdk-8u144-linux-x64.tar.gz [root@dbp software]# mv jdk1.8.0_144/usr/local/jdk #重命名4、设置环境变量 [root@dbp software]# vim ~/.bash_profile 5、使环境变量生效并验证 5.安装Hadoop3.0.0 1、准备hadoop到指定目录 2、解压

centos下hadoop2.6.0配置

Hadoop-2.6.0配置 前面的部分跟配置Hadoop-1.2.1的一样就可以,什么都不用变,完全参考文档1即可。下面的部分就按照下面的做就可以了。 hadoop-2.6.0的版本用张老师的。 下面的配置Hadoop hadoop-2.6.0的部分 1.修改hadoop- 2.6.0/etc/hadoop/hadoop-env.sh,添加JDK支持: export JAVA_HOME=/usr/java/jdk1.6.0_45 如果不知道你的JDK目录,使用命令echo $JAVA_HOME查看。 2.修改hadoop-2.6.0/etc/hadoop/core-site.xml 注意:必须加在节点内 hadoop.tmp.dir /home/hadoop/hadoop-2.6.0/tmp Abase for other temporary directories. https://www.sodocs.net/doc/f75042731.html, hdfs://master:9000 3.修改hadoop-2.6.0/etc/hadoop/hdfs-site.xml https://www.sodocs.net/doc/f75042731.html,.dir /home/hadoop/hadoop-2.6.0/dfs/name Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently. dfs.data.dir /home/hadoop/hadoop-2.6.0/dfs/data Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks. dfs.replication 1 4.修改hadoop-2.6.0/etc/hadoop/mapred-site.xml

Hadoop 集群基本操作命令-王建雄-2016-08-22

Hadoop 集群基本操作命令 列出所有Hadoop Shell支持的命令 $ bin/hadoop fs -help (注:一般手动安装hadoop大数据平台,只需要创建一个用户即可,所有的操作命令就可以在这个用户下执行;现在是使用ambari安装的dadoop大数据平台,安装过程中会自动创建hadoop生态系统组件的用户,那么就可以到相应的用户下操作了,当然也可以在root用户下执行。下面的图就是执行的结果,只是hadoop shell 支持的所有命令,详细命令解说在下面,因为太多,我没有粘贴。) 显示关于某个命令的详细信息 $ bin/hadoop fs -help command-name (注:可能有些命令,不知道什么意思,那么可以通过上面的命令查看该命令的详细使用信息。例子: 这里我用的是hdfs用户。) 注:上面的两个命令就可以帮助查找所有的haodoop命令和该命令的详细使用资料。

创建一个名为 /daxiong 的目录 $ bin/hadoop dfs -mkdir /daxiong 查看名为 /daxiong/myfile.txt 的文件内容$ bin/hadoop dfs -cat /hadoop dfs -cat /user/haha/part-m-00000 上图看到的是我上传上去的一张表,我只截了一部分图。 注:hadoop fs <..> 命令等同于hadoop dfs <..> 命令(hdfs fs/dfs)显示Datanode列表 $ bin/hadoop dfsadmin -report

$ bin/hadoop dfsadmin -help 命令能列出所有当前支持的命令。比如: -report:报告HDFS的基本统计信息。 注:有些信息也可以在NameNode Web服务首页看到 运行HDFS文件系统检查工具(fsck tools) 用法:hadoop fsck [GENERIC_OPTIONS] [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]] 命令选项描述 检查的起始目录。 -move 移动受损文件到/lost+found -delete 删除受损文件。 -openforwrite 打印出写打开的文件。 -files 打印出正被检查的文件。 -blocks 打印出块信息报告。 -locations 打印出每个块的位置信息。 -racks 打印出data-node的网络拓扑结构。 打印版本信息 用法:hadoop version 运行集群平衡工具。管理员可以简单的按Ctrl-C来停止平衡过程(balancer)

在windows下安装hadoop

在windows下通过安装cygwin模拟linux环境,然后再安装hadoop,是一种简单方便的方式。 首先是搭建cygwin环境: 一、安装cygwin 二、安装sshd服务 三、启动sshd服务 四、配置ssh无密码登录 一、此处无话可说,按照网上的文档,选择必要的组件即可。 二、 1 以管理员身份运行cygwin 2 输入:ssh-host-config 有关键的两步:*** Query: Do you want to use a different name? (yes/no)选择yes *** Query: Create new privileged user account 'cyg_server'? (yes/no) 选择yes 创建的用户名最好为新的用户名,密码最好与windows用户的密码一致 三、在开始菜单运ervices.msc或其他手段进入服务列表,找到cygwin sshd服务,查看属性是否为上一步的用户名登陆的,否则更改之。此时可能不能启动,需要在计算机右击“管理”,用户和组的管理中将上面的用户加入管理员的组,即授予管理员权限。 四、此时使用ssh服务,即输入:ssh localhost会要求输入密码,若显示为“last login:......”则说明已经正确安装ssh服务并且可以启动。 接下来是配置ssh的无密码登陆: 1输入:ssh-keygen (一直回车,一般是三次回车) 2 输入:cd ~/.ssh 3 输入:cp id_rsa.pub authorized_keys 此时输入exit退出cygwin,再次以管理员身份进入cygwin,输入ssh localhost,若没有要求输入密码便显示“last login.....”则说明成功了。 接下来是安装Hadoop: 一、安装JDK 二、下载hadoop及配置hadoop环境 三、格式化namenode 四、启动hadoop

(完整word版)hadoop安装教程

1、VMware安装 我们使用Vmware 14的版本,傻瓜式安装即可。(只要) 双击 如过 2.安装xshell 双击 3.安装镜像: 解压centos6.5-empty解压 双击打开CentOS6.5.vmx 如果打不开,在cmd窗口中输入:netsh winsock reset 然后重启电脑。 进入登录界面,点击other 用户名:root 密码:root 然后右键open in terminal 输入ifconfig 回车 查看ip地址

打开xshell

点击链接 如果有提示,则接受 输入用户名:root 输入密码:root 4.xshell连接虚拟机 打开虚拟机,通过ifconfig查看ip

5.安装jkd 1.解压Linux版本的JDK压缩包 mkdir:创建目录的命令 rm -rf 目录/文件删除目录命令 cd 目录进入指定目录 rz 可以上传本地文件到当前的linux目录中(也可以直接将安装包拖到xshell窗口) ls 可以查看当前目录中的所有文件 tar 解压压缩包(Tab键可以自动补齐文件名)

pwd 可以查看当前路径 文档编辑命令: vim 文件编辑命令 i:进入编辑状态 Esc(左上角):退出编辑状态 :wq 保存并退出 :q! 不保存退出 mkdir /home/software #按习惯用户自己安装的软件存放到/home/software目录下 cd /home/software #进入刚刚创建的目录 rz 上传jdk tar包 #利用xshell的rz命令上传文件(如果rz命令不能用,先执行yum install lrzsz -y ,需要联网) tar -xvf jdk-7u51-linux-x64.tar.gz #解压压缩包 2.配置环境变量 1)vim /etc/profile 2)在尾行添加 #set java environment JAVA_HOME=/home/software/jdk1.8.0_65 JAVA_BIN=/home/software/jdk1.8.0_65/bin PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH Esc 退出编辑状态 :wq #保存退出 注意JAVA_HOME要和自己系统中的jdk目录保持一致,如果是使用的rpm包安

hadoop2.6基于yarn安装配置详解

Hadoop2.6配置详解 在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。 这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.6解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调 hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM(由cloudra提出,原理类似zookeeper)。这里我使用QJM完成。主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode 1安装前准备 1.1示例机器 192.168.0.10 hadoop1 192.168.0.20 hadoop2 192.168.0.30 hadoop3 192.168.0.40 hadoop4 每台机器都有一个hadoop用户,密码是hadoop 所有机器上安装jdk1.7。 在hadoop2,hadoop3,hadoop4上安装Zookeeper3.4集群。 1.2配置ip与hostname 用root用户修改每台机器的hosts

Hadoop命令大全

Hadoop命令大全 Hadoop配置: Hadoop配置文件core-site.xml应增加如下配置,否则可能重启后发生Hadoop 命名节点文件丢失问题: hadoop.tmp.dir /home/limingguang/hadoopdata 环境变量设置: 为了便于使用各种命令,可以在.bashrc文件中添加如下内容: export JAVA_HOME=/home/limingguang/jdk1.7.0_07 export HADOOP_HOME=/home/limingguang/hadoop-1.0.3 export HIVE_HOME=/home/limingguang/hive-0.9.0 export MAHOUT_HOME=/home/limingguang/mahout-distribution-0.7 export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$MAHOUT_HOME/bin: $PATH export HADOOP_HOME_WARN_SUPPRESS=1 具体目录请更改为安装目录,HADOOP_HOME_WARN_SUPPRESS变量为抑制HADOOP_HOME变量重复时的告警。 常用命令:

1、列出所有Hadoop Shell支持的命令 $ bin/hadoop fs -help 2、显示关于某个命令的详细信息 $ bin/hadoop fs -help command-name 3、用户可使用以下命令在指定路径下查看历史日志汇总 $ bin/hadoop job -history output-dir 这条命令会显示作业的细节信息,失败和终止的任务细节。 4、关于作业的更多细节,比如成功的任务,以及对每个任务的所做的尝试次数等可以用下面的命令查看 $ bin/hadoop job -history all output-dir 5、格式化一个新的分布式文件系统: $ bin/hadoop namenode -format 6、在分配的NameNode上,运行下面的命令启动HDFS: $ bin/start-dfs.sh bin/start-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动DataNode守护进程。 7、在分配的JobTracker上,运行下面的命令启动Map/Reduce: $ bin/start-mapred.sh bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves 文件的内容,在所有列出的slave上启动TaskTracker守护进程。 8、在分配的NameNode上,执行下面的命令停止HDFS: $ bin/stop-dfs.sh bin/stop-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上停止DataNode守护进程。 9、在分配的JobTracker上,运行下面的命令停止Map/Reduce: $ bin/stop-mapred.sh bin/stop-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上停止TaskTracker守护进程。 10、启动所有 $ bin/start-all.sh 11、关闭所有 $ bin/stop-all.sh DFSShell 10、创建一个名为 /foodir 的目录 $ bin/hadoop dfs -mkdir /foodir 11、创建一个名为 /foodir 的目录 $ bin/hadoop dfs -mkdir /foodir 12、查看名为 /foodir/myfile.txt 的文件内容 $ bin/hadoop dfs -cat /foodir/myfile.txt

hadoop安装简要过程和相关配置文件

Hadoop安装简要过程及配置文件 1、机器准备 ①、Linux版操作系统centos 6.x ②、修改主机名,方便配置过程中记忆。修改文件为: /etc/sysconfig/network 修改其中的HOSTNAME即可 ③、配置局域网内,主机名与对应ip,并且其中集群中所有的机器的文件相同,修改文件为 /etc/hosts 格式为: 10.1.20.241 namenode 10.1.20.242 datanode1 10.1.20.243 datanode2 2、环境准备 ①、配置ssh免密码登陆,将集群中master节点生成ssh密码文件。具体方法: 1)、ssh-keygen -t rsa 一直回车即可,将会生成一份 ~/.ssh/ 文件夹,其中id_rsa为私钥文件 id_rsa.pub公钥文件。 2)、将公钥文件追加到authorized_keys中然后再上传到其他slave节点上 追加文件: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 上传文件: scp ~/.ssh/authorized_keys root@dananode:~/.ssh/ 3)、测试是否可以免密码登陆:ssh 主机名或局域网ip ②、配置JDK ③、创建hadoop用户 groupadd hadoop useradd hadoop -g hadoop 4)、同步时间 ntpdate https://www.sodocs.net/doc/f75042731.html, 5)、关闭防火墙 service iptables stop 3、安装cdh5 进入目录/data/tools/ (个人习惯的软件存储目录,你可以自己随便选择); wget "https://www.sodocs.net/doc/f75042731.html,/cdh5/one-click-install/redhat/ 6/x86_64/cloudera-cdh-5-0.x86_64.rpm" yum --nogpgcheck localinstall cloudera-cdh-5-0.x86_64.rpm 添加cloudera仓库验证: rpm --importhttps://www.sodocs.net/doc/f75042731.html,/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera

(完整版)hadoop常见笔试题答案

Hadoop测试题 一.填空题,1分(41空),2分(42空)共125分 1.(每空1分) datanode 负责HDFS数据存储。 2.(每空1分)HDFS中的block默认保存 3 份。 3.(每空1分)ResourceManager 程序通常与NameNode 在一个节点启动。 4.(每空1分)hadoop运行的模式有:单机模式、伪分布模式、完全分布式。 5.(每空1分)Hadoop集群搭建中常用的4个配置文件为:core-site.xml 、hdfs-site.xml 、mapred-site.xml 、yarn-site.xml 。 6.(每空2分)HDFS将要存储的大文件进行分割,分割后存放在既定的存储块 中,并通过预先设定的优化处理,模式对存储的数据进行预处理,从而解决了大文件储存与计算的需求。 7.(每空2分)一个HDFS集群包括两大部分,即namenode 与datanode 。一般来说,一 个集群中会有一个namenode 和多个datanode 共同工作。 8.(每空2分) namenode 是集群的主服务器,主要是用于对HDFS中所有的文件及内容 数据进行维护,并不断读取记录集群中datanode 主机情况与工作状态,并通过读取与写入镜像日志文件的方式进行存储。 9.(每空2分) datanode 在HDFS集群中担任任务具体执行角色,是集群的工作节点。文 件被分成若干个相同大小的数据块,分别存储在若干个datanode 上,datanode 会定期向集群内namenode 发送自己的运行状态与存储内容,并根据namnode 发送的指令进行工作。 10.(每空2分) namenode 负责接受客户端发送过来的信息,然后将文件存储位置信息发 送给client ,由client 直接与datanode 进行联系,从而进行部分文件的运算与操作。 11.(每空1分) block 是HDFS的基本存储单元,默认大小是128M 。 12.(每空1分)HDFS还可以对已经存储的Block进行多副本备份,将每个Block至少复制到 3 个相互独立的硬件上,这样可以快速恢复损坏的数据。 13.(每空2分)当客户端的读取操作发生错误的时候,客户端会向namenode 报告错误,并 请求namenode 排除错误的datanode 后,重新根据距离排序,从而获得一个新的的读取路径。如果所有的datanode 都报告读取失败,那么整个任务就读取失败。14.(每空2分)对于写出操作过程中出现的问题,FSDataOutputStream 并不会立即关闭。 客户端向Namenode报告错误信息,并直接向提供备份的datanode 中写入数据。备份datanode 被升级为首选datanode ,并在其余2个datanode 中备份复制数据。 NameNode对错误的DataNode进行标记以便后续对其进行处理。 15.(每空1分)格式化HDFS系统的命令为:hdfs namenode –format 。 16.(每空1分)启动hdfs的shell脚本为:start-dfs.sh 。 17.(每空1分)启动yarn的shell脚本为:start-yarn.sh 。 18.(每空1分)停止hdfs的shell脚本为:stop-dfs.sh 。 19.(每空1分)hadoop创建多级目录(如:/a/b/c)的命令为:hadoop fs –mkdir –p /a/b/c 。 20.(每空1分)hadoop显示根目录命令为:hadoop fs –lsr 。 21.(每空1分)hadoop包含的四大模块分别是:Hadoop common 、HDFS 、

Hadoop入门—Linux下伪分布式计算的安装与wordcount的实例展示

开始研究一下开源项目hadoop,因为根据本人和业界的一些分析,海量数据的分布式并行处理是趋势,咱不能太落后,虽然开始有点晚,呵呵。首先就是安装和一个入门的小实例的讲解,这个恐怕是我们搞软件开发的,最常见也最有效率地入门一个新鲜玩意的方式了,废话不多说开始吧。 本人是在ubuntu下进行实验的,java和ssh安装就不在这里讲了,这两个是必须要安装的,好了我们进入主题安装hadoop: 1.下载hadoop-0.20.1.tar.gz: https://www.sodocs.net/doc/f75042731.html,/dyn/closer.cgi/hadoop/common/ 解压:$ tar –zvxf hadoop-0.20.1.tar.gz 把Hadoop 的安装路径添加到环/etc/profile 中: export HADOOP_HOME=/home/hexianghui/hadoop-0.20.1 export PATH=$HADOOP_HOME/bin:$PATH 2.配置hadoop hadoop 的主要配置都在hadoop-0.20.1/conf 下。 (1)在conf/hadoop-env.sh 中配置Java 环境(namenode 与datanode 的配置相同): $ gedit hadoop-env.sh $ export JAVA_HOME=/home/hexianghui/jdk1.6.0_14 3.3)配置conf/core-site.xml, conf/hdfs-site.xml 及conf/mapred-site.xml(简单配置,datanode 的配置相同) core-site.xml: hadoop.tmp.dir /home/yangchao/tmp A base for other temporary directories. https://www.sodocs.net/doc/f75042731.html, hdfs://localhost:9000 hdfs-site.xml:( replication 默认为3,如果不修改,datanode 少于三台就会报错)

Hadoop最全面试题整理(附目录)

Hadoop面试题目及答案(附目录) 选择题 1.下面哪个程序负责HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案C datanode 2. HDfS 中的block 默认保存几份? a)3 份b)2 份c)1 份d)不确定 答案A 默认3 份 3.下列哪个程序通常与NameNode 在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 答案D 分析:hadoop 的集群是基于master/slave 模式,namenode 和jobtracker 属于master,datanode 和tasktracker 属于slave,master 只有一个,而slave 有多个SecondaryNameNode 内存需求和NameNode 在一个数量级上,所以通常secondaryNameNode(运行在单独的物理机器上)和NameNode 运行在不同的机器上。 JobTracker 和TaskTracker JobTracker 对应于NameNode,TaskTracker 对应于DataNode,DataNode 和NameNode 是针对数据存放来而言的,JobTracker 和TaskTracker 是对于MapReduce 执行而言的。mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:jobclient,JobTracker 与TaskTracker。 1、JobClient 会在用户端通过JobClient 类将应用已经配置参数打包成jar 文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker 创建每一个Task(即MapTask 和ReduceTask)并将它们分发到各个TaskTracker 服务中去执行。 2、JobTracker 是一个master 服务,软件启动之后JobTracker 接收Job,负责调度Job 的每一个子任务task 运行于TaskTracker 上,并监控它们,如果发现有失败的task 就重新运行它。一般情况应该把JobTracker 部署在单独的机器上。 3、TaskTracker 是运行在多个节点上的slaver 服务。TaskTracker 主动与JobTracker 通信,接收作业,并负责直接执行每一个任务。TaskTracker 都需要运行在HDFS 的DataNode 上。 4. Hadoop 作者 a)Martin Fowler b)Kent Beck c)Doug cutting 答案C Doug cutting 5. HDFS 默认Block Size a)32MB b)64MB c)128MB 答案:B 6. 下列哪项通常是集群的最主要瓶颈 a)CPU b)网络c)磁盘IO d)内存 答案:C 磁盘 首先集群的目的是为了节省成本,用廉价的pc 机,取代小型机及大型机。小型机和大型机

相关主题