hadoop及其组件安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop及其组件安装相关的知识,希望对你有一定的参考价值。

参考技术A 操作系统集群配置

搭建3节点完全分布式集群,即1个nameNode,2个dataNode,分别如下:

1、创建虚拟机CentOS7并安装配置JDK,克隆两台

2、修改主机名:master、slave1、slave2

3、设置静态:10.221.101.1、10.221.101.2、10.221.101.3

4、关闭防火墙

5、免密设置

每台节点生成公钥:

master中将公钥id_dsa.pub添加进keys,实现master免密:

将master中公钥分别添加到slave1及slave2的keys中,实现master对slave1及slave2节点免密:

master执行 如下命令,进行验证

6、组件所用版本

安装路径:mkdir /usr/local/hadoop/hadoop-2.7.3/bin/

1、解压hadoop

2、 执行命令检查hadoop是否可用

查看是否显示hadoop版本信息Hadoop 2.7.3 显示即正常

3、创建所需目录

4、设置hadoop环境变量

任意目录输入 hado,然后按Tab,如果自动补全为hadoop,则说明环境变量配正确

同步到其他节点上

5、修改hadoop配置文件

—hadoop-env.sh

—core-site.xml

—hdfs-site.xml

—mapred-site.xml

—yarn-env.sh

—yarn-site.xml

— slaves

将localhost删掉,加入如下内容,即dataNode节点的hostname

6、 以上配置同步到slave1,slave2中

7、启动hadoop

— 首次启动需要先在 master 节点进行 NameNode 的格式化:

— 在master机器上,进入hadoop的sbin目录

8、查看是否启动成功

—jps 查看当前java的进程

输入jps 查看当前java的进程,列出当前java进程的PID和Java主类名,nameNode节点除了JPS,有3个进程

在slave1和slave2节点上分别输入 jps 查看进程如下,说明配置成功

— 查看运行状况

在浏览器访问nameNode节点的8088端口和50070端口可以查看hadoop的运行状况

192.168.1.110:50070

192.168.1.110:8088

zookeeper集群搭建要至少3个节点(master,slave1, slave2),所以三台服务器都要部署zookeeper

1、解压到安装目录

2、添加环境变量

同步到其他节点上

3、 修改配置文件

/usr/local/hadoop/zookeeper-3.4.10/conf

删除原有内容

4 、根据以上配置 创建zookeeper的数据文件和日志存放目录

同步到其它节点

5 、在三台zookeeper的/usr/local/storage/zookeeper/data目录下分别创建并编辑myid

—创建

—编辑

6 、将以上配置同步到其他hadoop节点

7、启动zookeeper

如果zookeeper集群还没有启动的话, 首先把各个zookeeper起来。最好三个节点上同时启动

(1个leader,2个follower)

输入jps,会显示启动进程:QuorumPeerMain

前提安装mysql

1、解压到安装目录

2、 添加环境变量

同步到其他节点上

3 、配置文件修改

—hive-env.sh

—hive-site.xml

4、 hive lib中添加所需jar包

—添加mysql驱动

【以下可不配置】

—从hbase/lib下复制必要jar包

—同步hive和hadoop的jline版本

查看版本

若有低版本则删除

例如:jline 0.9 rm jline-0.9.94.jar

—复制jdk的tools.jar

5 、在配置的mysql中创建hive库

【需外界可连接上】

6 、hdfs创建存储数据的目录

7、 启动hive

hive 远程服务 (端口号10000) 启动方式[metastore和hiveserver2在同一台上启动即可]

hive 命令行模式

或者输入

查看进程为:2个RunJar

注意:可以在任意一台服务器上启动hive,都可以。

8 、查看启动进程

通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode进程

Master上:

在 Slave 节点可以看到 DataNode 和 NodeManager 进程

Slave上:

程序启动成功后可以在任意一台启动hive

可以在启动MR-JobHistory服务,

Hadoop2 MR-JobHistory服务介绍

1)MR-JobHistory服务目标

主要是向用户提供历史的mapred Job 查询

详细解释:

a)在运行MR Job时,MR 的 ApplicationMaster会根据mapred-site.xml配置文件中的配置,将MR Job的job history信息保存到指定的hdfs路径(首先保存到临时目录,然后mv到最终目录)

b)如果在yarn-site.xml中,没有配置nodemanage的LogAggregation功能,则historyserver无法提供mr日志明细查询的功能(在提交mr job时,yarn和mapred的配置都是必须的)

c)historyserver向外提供两个接口,web接口可以提供jobhistory和明细日志查询的功能,而restApi只提供jobhistory查询的功能

1、 解压到安装目录

2、添加环境变量

同步到其他节点上

3、配置文件修改

/usr/local/hadoop/hbase-1.3.1/conf

—regionservers 文件

—hbase-env.sh

—hbase-site.xml

4、创建hbase-site.xml配置文件中的hbase目录

同步软件到其他节点

5、同步上述配置到其他节点

6、启动Hbase

—启动

—验证安装成功

—查看进程为:HMaster,HRegionServer

主节点:HMaster,HRegionServer

从节点:HRegionServer

—通过web UI访问hbase状态

http://192.168.1.110:16010/master-status

Hadoop学习-hdfs安装及其一些操作

hdfs:分布式文件系统

有目录结构,顶层目录是:  /,存的是文件,把文件存入hdfs后,会把这个文件进行切块并且进行备份,切块大小和备份的数量有客户决定。

存文件的叫datanode,记录文件的切块信息的叫namenode

Hdfs的安装

准备四台linux服务器

先在hdp-01上进行下面操作

  1. 配置域名映射

vim /etc/hosts

主机名:hdp-01  对应的ip地址:192.168.33.61

主机名:hdp-02  对应的ip地址:192.168.33.62

主机名:hdp-03  对应的ip地址:192.168.33.63

主机名:hdp-04  对应的ip地址:192.168.33.64

  1. 更改本机的域名映射文件

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

192.168.33.61  hdp-01

192.168.33.62  hdp-02

192.168.33.63  hdp-03

192.168.33.64  hdp-04

  1. 关闭防火墙

service iptables stop 

setenforce 0

  1. 安装jdk

在linux中 tar –zxvf jdk-8u141-linux-x64.tar.gz –C /root/apps/

然后vim /etc/profile

export JAVA_HOME=/root/apps/ jdk1.8.0_141

export PATH=$PATH:$JAVA_HOME/bin

然后source /etc/profile

Ok

  1. 安装scp

yum install -y openssh-clients

yum list

yum list | grep ssh

  1. 配置免密登录(在hdp-01上)

输入ssh-keygen

然后三次回车

 

然后

ssh-copy-id hdp-02

ssh-copy-id hdp-03

ssh-copy-id hdp-04

 

  1. 然后开始安装hadoop

上传压缩包,然后

[root@hdp-01 ~]# tar -zxvf hadoop-2.8.1.tar.gz -C apps/

然后修改配置文件

要点提示

核心配置参数:

1)         指定hadoop的默认文件系统为:hdfs

2)         指定hdfsnamenode节点为哪台机器

3)         指定namenode软件存储元数据的本地目录

4)         指定datanode软件存放文件块的本地目录

1) 修改hadoop-env.sh

export JAVA_HOME=/root/apps/ jdk1.8.0_141

 

2) 修改core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp-01:9000</value>

</property>

</configuration>

 

3) 修改hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/root/hdpdata/name/</value>

</property>

 

<property>

<name>dfs.datanode.data.dir</name>

<value>/root/hdpdata/data</value>

</property>

 

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>hdp-02:50090</value>

</property>

 

</configuration>

 

  1. 然后配置hadoop的环境变量 vi /etc/profile

export HADOOP_HOME=/root/apps/hadoop-2.8.1

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

  1. 讲apps下的东西和/etc/profile和/etc/hosts/都拷贝到其他的机器上

scp -r /root/apps/hadoop-2.8.1  hdp-02:/root/apps/

scp -r /root/apps/hadoop-2.8.1  hdp-03:/root/apps/

scp -r /root/apps/hadoop-2.8.1  hdp-04:/root/apps/

  1. 初始化元数据目录

hadoop namenode –format(在hdp-01上)

然后启动namenode进程

hadoop-daemon.sh start namenode

然后,在windows中用浏览器访问namenode提供的web端口:50070

http://hdp-01:50070

hadoop内部端口为9000

然后,启动众datanode们(在任意地方)

hadoop-daemon.sh start datanode

 

 

增加datanode随时可以,减少可不能瞎搞。。。。

或者一种方便的启动方法

修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)

hdp-01

hdp-02

hdp-03

hdp-04

 

在hdp-01上用脚本:start-dfs.sh 来自动启动整个集群

如果要停止,则用脚本:stop-dfs.sh

 

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

切块大小的参数: dfs.blocksize

副本数量的参数: dfs.replication

 

上面两个参数应该配置在客户端机器的hadoop目录中的hdfs-site.xml中配置

<property>

<name>dfs.blocksize</name>

<value>64m</value>

</property>

 

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

 

 

至此完成

 

hdfs的一些操作

查看目录信息

hadoop fs -ls /

 

上传文件从/xxx/xx上传到/yy

hadoop fs -put /xxx/xx /yyy

 

hadoop fs -copyFromLocal /本地文件  /hdfs路径   ##  copyFromLocal等价于 put

 

hadoop fs -moveFromLocal /本地文件  /hdfs路径  ## 跟copyFromLocal的区别是:从本地移动到hdfs中

 

 

下载文件到本地

hadoop fs -get /hdfs路径 /local路径

 

hadoop fs -copyToLocal /hdfs中的路径 /本地磁盘路径   ## 跟get等价

hadoop fs -moveToLocal /hdfs路径  /本地路径  ## 从hdfs中移动到本地

 

追加内容到已存在的文件

hadoop fs -appendToFile /本地文件   /hdfs中的文件

 

其他命令和linux的基本差不多只不过前面加hadoop fs –

 

 

 

额外知识

1.

元数据:对数据的描述信息,namenode记录的就叫元数据

2.

配置yum源配置文件

先将那个磁盘挂载到一个文件夹下比如/mnt/cdrom

技术图片

 

 

然后配置yum

技术图片

 

 技术图片

 

 

 

 

 

改为这样的技术图片

 技术图片

 

 

3.

命令netstat –nltp 监听端口号

或者ps –ef是查看进程号

4.

 

让防火墙每次开机不重启

chkconfig iptables off

service的执行脚本放在  /etc/service下

凡是能使用   service 服务  动作 的指令

都可以在/etc/init.d目录下执行

例如:  /etc/init.d/sshd start

使用 service 服务 动作  例子  service papche2 restart

其实是执行了一个脚本

/etc/init.d apache2 restatr

 

linux服务器启动的时候分为6个等级

0.表示关机

1.单用户模式

2.无网络的多用户模式

3.有网络的多用户模式

4.不可用

5.图形化界面

6.重新启动

具体和默认的启动等级可以在 /etc/inittab目录下查看

 

查看各个级别下服务开机自启动情况  可以使用  chkconfig --list

 

增加一个自启动服务 chkconfig --add 服务名   例如  chkconfig --add sshd

减少一个自启动服务 chkconfig --add 服务名    例如   chkconfig --del sshd

chkconfig --level 等级 服务  off/on  

chkconfig是当前不生效,Linux重启之后才生效的命令(开机自启动项)

service是即使生效,重启后失效的命令

 

5.

C语言写的东西和平台是有关系的,在Windows下写的东西放到linux不一定可以

而java可以,因为有java虚拟机

6.

Hdfs的url  hdfs://hdp-01:9000/

 

ll –h

 

在类 Unix 系统中,/dev/null 称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个 EOF。

而使用 cat $filename > /dev/null 则不会得到任何信息,因为我们将本来该通过标准输出显示的文件信息重定向到了 /dev/null 中。

使用 cat $filename 1 > /dev/null 也会得到同样的效果,因为默认重定向的 1 就是标准输出。 如果你对 shell 

 

7

Cat 来拼接两个文件,如在hdfs下的两个block文件

 技术图片

 

如此拼接就成了一个完整的源文件

源文件的路径在

 技术图片

 

 

 

java客户端的api

//官方文档

//先把hadoop安装包解压后的share目录下的hadoop目录下的相关jar包都拷到你的esclipe下。

//http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

//会先默认读取classpath中加载的core-default.xml.hdfs-default.xml core-size.xml....

//这些都是一个个jar包,你也可以在src目录下自己写一个hdfs-site.xml文件

 

Configuration conf = new Configuration();

conf.set("dfs.replication","2");//指定副本数

conf.set("dfs.blocksize","64m");//指定切块大小

 

 

//模拟一个客户端

FileSystem fs = FileSystem.get(new URI("hdfs://hdp-01:9000/"),conf,"root");

然后可以通过fs.xxxxx的方法来使用

 

以上是关于hadoop及其组件安装的主要内容,如果未能解决你的问题,请参考以下文章

原生hadoop生态系统组件安装文档

安装配置hadoop组件hive问题集锦

Hadoop大数据平台组件搭建系列——Zookeeper组件配置

Hadoop集群及组件

Hadoop YARN架构组件及其交互流程

hadoop安装教程