大数据平台搭建笔记一:hadoop

0.机器准备

准备4台测试笔记本用于做服务器(装上CentOS6.5_x86_64系统)作部署集群。

配置每台机器上的/etc/hosts文件,例如:

[[email protected] ~]$ sudo vi /etc/hosts

192.168.110.1  master

192.168.110.2   slave1

192.168.110.3   slave2

192.168.110.4   slave3

1.ssh免密码登录设置

[[email protected] ~]$ ssh -version

OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

Bad escape character ‘rsion‘.

查看ssh的版本后,如果ssh未安装则需要执行如下安装命令:

[[email protected] ~]$ sudo  yum  install openssh-server

在每台机器上都执行一次下面的命令:

$  ssh-keygen   –t   rsa     #一路回车,提示要填的都默认不填,按回车

上面执行完成后,每台机器上都会生成一个~/.ssh文件夹

$  ls -al  ~/.ssh     #查看.ssh文件下的文件列表

-rw-------. 1 hadoop hadoop 1580 Apr 18 16:53 authorized_keys

-rw-------. 1 hadoop hadoop 1675 Apr 15 16:01 id_rsa

-rw-r--r--. 1 hadoop hadoop  395 Apr 15 16:01 id_rsa.pub

把slave1,slave2,slave3上生成的公钥id_rsa.pub发给master机器:

在slave1机器上:

[[email protected] ~]$ scp  ~/.ssh/id_rsa.pub  [email protected]:~/.ssh/id_rsa.pub.slave1

在slave2机器上:

[[email protected] ~]$ scp  ~/.ssh/id_rsa.pub  [email protected]:~/.ssh/id_rsa.pub.slave2

在slave3机器上:

[[email protected] ~]$ scp  ~/.ssh/id_rsa.pub  [email protected]:~/.ssh/id_rsa.pub.slave3

在master机器上,将所有公钥加到新增的用于认证的公钥文件authorized_keys中:

[[email protected]  ~]$  cat  ~/.ssh/id_rsa.pub*  >>  ~/.ssh/authorized_keys

[[email protected]  ~]$  chmod  600  ~/.ssh/authorized_keys  #如果免密码不成功有可能缺少这步

将公钥文件authorized_keys分发给每台slave:

[[email protected]  ~]$  scp  ~/.ssh/authorized_keys   [email protected]:~/.ssh/

[[email protected]  ~]$  scp  ~/.ssh/authorized_keys   [email protected]:~/.ssh/

[[email protected]  ~]$  scp  ~/.ssh/authorized_keys   [email protected]:~/.ssh/

2.Java环境的安装

下载jdk-8u60-linux-x64.tar.gz安装包后(放在~/bigdataspace路径下):

[[email protected] ~]$ cd  ~/bigdataspace

[[email protected] bigdataspace]$  tar  -zxvf  jdk-8u60-linux-x64.tar.gz

修改环境变量配置文件:

[[email protected] bigdataspace]$ sudo vi /etc/profile

(在配置文件末尾加上如下配置)

export JAVA_HOME=/home/hadoop/bigdataspace/jdk1.8.0_60

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

让环境变量设置生效:

[[email protected] bigdataspace]$ source /etc/profile

验证Java是否安装成功:

[[email protected] bigdataspace]$  java  -version

java version "1.8.0_60"

Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

(每台机器上都需要按照上面的操作安装Java)

每台机器上执行:

[[email protected] ~]$ sudo chmod 777 /data/  #让所有用户可操作/data目录下的数据

3.集群上的机器实现同步时间

检查时间服务是否安装:

[[email protected] ~]$ rpm -q ntp

ntp-4.2.6p5-1.el6.centos.x86_64    #这表示已安装了,如果没有安装,这是空白

如果没有安装,需要执行下面的安装命令:

[[email protected] ~]$ sudo yum install ntp

需要配置NTP服务为自启动:

[[email protected] ~]$ sudo chkconfig ntpd on

[[email protected] ~]$ chkconfig --list ntpd

ntpd      0:off   1:off   2:on    3:on    4:on    5:on    6:off

(需要打开master机器上udp协议的123端口是为了其他节点使用ntpdate通过该端口同步master机器的时间)

[[email protected] ~]$ sudo vi /etc/sysconfig/iptables

(新增的端口配置)

-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT

[[email protected] ~]$ sudo service iptables restart

在配置前,先使用ntpdate手动同步下时间,免得本机与外部时间服务器时间差距太大,让ntpd不能正常同步。

[[email protected] ~]$ sudo ntpdate  pool.ntp.org

26 Apr 17:12:15 ntpdate[7376]: step time server 202.112.29.82 offset 13.827386 sec

更改master机器上的相关配置文件:

[[email protected] ~]$ sudo  vim  /etc/ntp.conf

(下面只显示修改的必要项)

# Hosts on local network are less restricted.

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

#让同一局域网ip段可以进行时间同步:

restrict 10.3.19.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.

# Please consider joining the pool (http://www.pool.ntp.org/join.html).

#server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst

#外部时间服务器

server pool.ntp.org iburst

server 0.asia.pool.ntp.org iburst

server 1.asia.pool.ntp.org iburst

server 1.asia.pool.ntp.org iburst

server 2.asia.pool.ntp.org iburst

#broadcast 192.168.1.255 autokey        # broadcast server

#broadcastclient                        # broadcast client

#broadcast 224.0.1.1 autokey            # multicast server

#multicastclient 224.0.1.1              # multicast client

#manycastserver 239.255.254.254         # manycast server

#manycastclient 239.255.254.254 autokey # manycast client

# allow update time by the upper server

# Undisciplined Local Clock. This is a fake driver intended for backup

# and when no outside source of synchronized time is available.

# 外部时间服务器不可用时,以本地时间作为时间服务

server  127.127.1.0

fudge   127.127.1.0 stratum 10

#############################################################

其他节点/etc/ntp.conf(slave1,slave2,slave3)的配置

……..

#server 3.centos.pool.ntp.org iburst

#外部时间服务器,以master时间为准进行同步

server master  iburst

……..

[[email protected] ~]$ sudo  service  ntpd  start

(每台机器上都需要,设置ntpd开机启动,并第一次手动打开ntpd),命令如下:

$  sudo chkconfig ntpd on  #开机启动ntpd

$  sudo service ntpd start  #启动 ntpd

时间同步设置参考:http://cn.soulmachine.me/blog/20140124/

时间同步设置总结:

每个节点上安装ntpd,并设置为开机启动,当然第一次要先手动启动,通过配置/etc/ntp.conf文件,让master作为时间同步服务器,这台机器的时间是根据联网同步网络时间的,其他节点以master的ip作为同步的地址

配置完成后,发现后面的节点时间可能还未同步,可能需要等30分钟左右,一段时间后时间都会以master为准,进行同步

4.Hadoop的安装、配置

下载hadoop-2.6.0-cdh5.5.0.tar.gz安装包后(放在master机器上的~/bigdataspace路径下):

[[email protected] ~]$ cd  ~/bigdataspace

[[email protected] bigdataspace]$  tar  -zxvf  hadoop-2.6.0-cdh5.5.0.tar.gz

进入hadoop配置文件路径:

[[email protected] ~]$ cd  ~/bigdataspace/hadoop-2.6.0-cdh5.5.0/etc/hadoop

1>     在hadoop-env.sh中配置JAVA_HOME:

[[email protected] hadoop]$ vi  hadoop-env.sh

# set JAVA_HOME in this file, so that it is correctly defined on

# The java implementation to use.

export JAVA_HOME=/home/hadoop/bigdataspace/jdk1.8.0_60

2>     在yarn-env.sh中配置JAVA_HOME:

[[email protected] hadoop]$ vi  yarn-env.sh

# some Java parameters

export JAVA_HOME=/home/hadoop/bigdataspace/jdk1.8.0_60

3>     在slaves中配置slave节点的ip或者host

[[email protected] hadoop]$ vi  slaves

slave1

slave2

slave3

4>     修改core-site.xml

[[email protected] hadoop]$ vi  core-site.xml

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:8020</value>

</property>

<property>

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

<value>/data/hadoop-2.6.0-cdh5.5.0/tmp</value>

</property>

</configuration>

5>     修改hdfs-site.xml

[[email protected] hadoop]$ vi  hdfs-site.xml

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

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

<value>master:50090</value>

</property>

<property>

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

<value>file:/data/hadoop-2.6.0-cdh5.5.0/dfs/name</value>

</property>

<property>

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

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

<value>file:/data/hadoop-2.6.0-cdh5.5.0/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

</configuration>

6>     修改mapred-site.xml

[[email protected] hadoop]$ vi  mapred-site.xml

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>master:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>master:19888</value>

</property>

</configuration>

7>     修改yarn-site.xml

[[email protected] hadoop]$ vi  yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>master:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

</configuration>

因为CDH版本缺少hadoop的native库,因此需要引入,否则会报错,解决方法

http://www.cnblogs.com/huaxiaoyao/p/5046374.html

本次安装具体采取的解决方法:

[[email protected] ~]$ cd ~/bigdataspace

[[email protected] bigdataspace]$ wget  http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.5.0/RPMS/x86_64/hadoop-2.6.0+cdh5.5.0+921-1.cdh5.5.0.p0.15.el6.x86_64.rpm

[[email protected] bigdataspace]$  rpm2cpio *.rpm | cpio -div

在bigdataspace文件夹下

$ cp -r ./usr/lib/hadoop/lib/native/  ~/bigdataspace/hadoop-2.6.0-cdh5.5.0/lib/native/

删除解压后得到的文件:

[[email protected] bigdataspace]$ rm -r ~/bigdataspace/etc/

[[email protected] bigdataspace]$ rm -r ~/bigdataspace/usr/

[[email protected] bigdataspace]$ rm -r ~/bigdataspace/var//

$  rm  ~/ bigdataspace/hadoop-2.6.0+cdh5.5.0+921-1.cdh5.5.0.p0.15.el6.x86_64.rpm

5.使用scp命令分发配置好的hadoop到各个子节点

$  scp  –r  ~/bigdataspace/hadoop-2.6.0-cdh5.5.0/  [email protected]:~/bigdataspace/

$  scp  –r  ~/bigdataspace/hadoop-2.6.0-cdh5.5.0/  [email protected]:~/bigdataspace/

$  scp  –r  ~/bigdataspace/hadoop-2.6.0-cdh5.5.0/  [email protected]:~/bigdataspace/

(每台机器)修改环境变量配置文件:

[[email protected] bigdataspace]$ sudo vi /etc/profile

(在配置文件末尾加上如下配置)

export HADOOP_HOME=/home/hadoop/bigdataspace/hadoop-2.6.0-cdh5.5.0

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

让环境变量设置生效:

[[email protected] bigdataspace]$ source  /etc/profile

6.启动并验证Hadoop

[[email protected] ~]$ cd  ~/bigdataspace/hadoop-2.6.0-cdh5.5.0   #进入hadoop目录

[[email protected] hadoop-2.6.0-cdh5.5.0]$ ./bin/hdfs namenode –format #格式化namenode

[[email protected] hadoop-2.6.0-cdh5.5.0]$ ./sbin/start-dfs.sh     #启动dfs

[[email protected] hadoop-2.6.0-cdh5.5.0]$ ./sbin/start-yarn.sh    #启动yarn

可以通过jps命令查看各个节点启动的进程是否正常。在 master 上应该有以下几个进程

[[email protected] hadoop-2.6.0-cdh5.5.0]$ jps

3407 SecondaryNameNode

3218 NameNode

3552 ResourceManager

3910 Jps

在 slave1 上应该有以下几个进程

[[email protected] ~]$ jps

2072 NodeManager

2213 Jps

1962 DataNode

或者在浏览器中输入 http://master:8088 ,应该有 hadoop 的管理界面出来了,并通过http://master:8088/cluster/nodes能看到 slave1、slave2、slave3节点

7.启动Hadoop自带的jobhistoryserver

[[email protected] ~]$ cd  ~/bigdataspace/hadoop-2.6.0-cdh5.5.0   #进入hadoop目录

[[email protected] hadoop-2.6.0-cdh5.5.0]$ sbin/mr-jobhistory-daemon.sh  start historyserver

(mapred-site.xml配置文件有对jobhistory的相关配置)

[[email protected] hadoop-2.6.0-cdh5.5.0]$ jps

5314 Jps

19994 JobHistoryServer

19068 NameNode

19422 ResourceManager

19263 SecondaryNameNode

参考:

http://blog.csdn.net/liubei_whut/article/details/42397985

8.停止hadoop集群的问题

Linux运行一段时间后,/tmp下的文件夹下面会清空一些文件,hadoop的停止脚本stop-all.sh是需要根据/tmp下面的pid文件关闭对应的进程,当/tmp下的文件被自动清理后可能会出出先的错误:

$   ./sbin/stop-all.sh

Stopping namenodes on [master]

master: no namenode to stop

slave1: no datanode to stop

slave2: no datanode to stop

slave3: no datanode to stop

Stopping secondary namenodes [master]

master: no secondarynamenode to stop

……

方法1:这时需要在/tmp文件夹下手动创建恢复这些pid文件

master节点(每个文件中保存对应的进程id):

hadoop-hadoop-namenode.pid

hadoop-hadoop-secondarynamenode.pid

yarn-hadoop-resourcemanager.pid

slave节点(每个文件中保存对应的进程id):

hadoop-hadoop-datanode.pid

yarn-hadoop-nodemanager.pid

方法2:使用kill -9逐个关闭相应的进程id

从根本上解决的方法:

(首先使用了方法1或方法2关闭了hadoop集群)

1.修改配置文件hadoop-env.sh:

#export HADOOP_PID_DIR=${HADOOP_PID_DIR}

export HADOOP_PID_DIR=/data/hadoop-2.6.0-cdh5.5.0/pids

#export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}

export HADOOP_SECURE_DN_PID_DIR=/data/hadoop-2.6.0-cdh5.5.0/pids

2.修改配置文件yarn-env.sh:

export YARN_PID_DIR=/data/hadoop-2.6.0-cdh5.5.0/pids

3.创建文件夹pids:

$  mkdir /data/hadoop-2.6.0-cdh5.5.0/pids(发现会自动创建pids文件,因此不需要创建)

这2个步骤需要在各个节点都执行

The End.

时间: 2024-10-16 02:51:29

大数据平台搭建笔记一:hadoop的相关文章

Cloudera Manager大数据平台搭建

在企业里快速搭建大数据平台除了Ambria外还可以用Cloudera Manager,这两种工具相对于纯手工搭建确实便捷很多,但是有利也有弊,相对于新手来说就不便于掌握内部原理,不好排错等,而纯手工搭建,出错较多,不容易成功. 一. 规划:192.168.3.201 server/agent mysql 192.168.3.202 agent namenode 192.168.3.203 agent namenode(备) resourcemanager192.168.3.204 agent r

Hadoop集群大数据平台搭建

Hadoop集群环境搭建配置 前言 Hadoop的搭建分为三种形式:单机模式.伪分布模式.完全分布模式,只要掌握了完全分布模式,也就是集群模式的搭建,剩下的两种模式自然而然就会用了,一般前两种模式一般用在开发或测试环境下,Hadoop最大的优势就是分布式集群计算,所以在生产环境下都是搭建的最后一种模式:完全分布模式. 硬件选择 须知: 分布式环境中一个服务器就是一个节点 节点越多带来的是集群性能的提升 一个Hadoop集群环境中,NameNode,SecondaryNameNode和DataNo

小型大数据平台搭建

目录 前言 一. 搭建环境 1.1集群规划 二. 集群的相关配置 2.1 新建用户hadoop 2.2 更改主机名 2.3 主机和IP做相关映射 2.4 SSH免密码登录 2.5 时间配置 2.6 整体安装目录安排 三. Hadoop HA环境搭建 3.1 JDK配置 3.2 安装配置Zookeeper集群 3.3 安装配置hadoop HA集群 四. Hive+MySQL 的安装与配置 4.1 Hive的安装部署 4.2 MySQL数据库安装配置 4.3 修改hive-site.xml 4.4

大数据平台搭建 - cdh5.11.1 - oozie安装

一.简介 oozie是hadoop平台开源的工作流调度引擎,用来管理hadoop作业,属于web应用程序,由oozie server 和oozie client构成. oozie server运行与tomcat容器中 oozie的工作流必须是一个有向无环图,当用户需要执行多个关联的MapReduce作业时,只需要把作业写进workflow.xml中,再提交到oozie,oozie便可以托管服务,按照预先的配置有序执行任务. 二.安装 1.下载编译好的cdh版本 http://archive.cl

大数据平台搭建:Hadoop-3.1.3+Hive-3.1.2+HBase-2.2.3+Zookeeper-3.5.7+Kafka_2.11-2.4.0+Spark-2.4.5

1.框架选型 hadoop-3.1.3 hive-3.1.2 zookeeper-3.5.7 hbase-2.2.3 kafka_2.11-2.4.0 spark-2.4.5-bin-hadoop2.7 2.安装前准备 1.关闭防火墙 2.安装 JDK 3.安装 Scala 4.配置ssh 免密 5.配置 IP 和 主机名映射 6.Mysql 安装 3.安装 3.1 Hadoop 安装 1.hadoop-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_1

大数据平台CDH搭建学习(5.10.0)

又是一个周末,本来是已经打开wegame,更新一下许久未碰的lol,后来实在等不下去了,还是想想写写博客,正好最近也在学习CDH:刚刚就像女生买东西一样,毫不犹豫地买了3个云主机,好了,废话不多说,下面我们正式开始CDH搭建大数据平台. 一.Hadoop是什么? Hadoop是一个分布式系统架构,由Apache基金会开发.用户可以在不理解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储. 不足之处:①版本管理混乱 ②部署过程繁琐,升级过程复杂 ③兼容性差 ④安全性低 二.

数据仓库和Hadoop大数据平台有什么差别?

广义上来说,Hadoop大数据平台也可以看做是新一代的数据仓库系统, 它也具有很多现代数据仓库的特征,也被企业所广泛使用.因为MPP架构的可扩展性,基于MPP的数据仓库系统有时候也被划分到大数据平台类产品. 但是数据仓库和Hadoop平台还是有很多显著的不同.针对不同的使用场景其发挥的作用和给用户带来的体验也不经相同.用户可以根据下表简单判断什么场景更适合用什么样的产品.  数据仓库和Hadoop大数据平台特性比较 特性 Hadoop Data Warehouse 计算节点数 可到数千个 一般在

大数据知识点分享:大数据平台应用 17 个知识点汇总

一.大数据中的数据仓库和Mpp数据库如何选型? 在Hadoop平台中,一般大家都把hive当做数据仓库的一种选择,而Mpp数据库的典型代表就是impala,presto.Mpp架构的数据库主要用于即席查询场景,暨对数据查询效率有较高要求的场景,而对数据仓库的查询效率要求无法做大MPP那样,所以更多地适用与离线分析场景. Hadoop已经是大数据平台的实时标准,其中Hadoop生态中有数据仓库Hive,可以作为大数据平台的标准数据仓库, 对于面向应用的MPP数据库,可以选择MYCAT(mySql的

FusionInsight,一个融合的大数据平台

随着物联网技术和应用的普及,以运营商.互联网以及实体经济行业为代表的企业产生了越来越多的数据,大数据的发展越来越蓬勃. 从2007年开始,大数据应用成为很多企业的需求,2012年兴起并产生了大数据平台,使用者主要是程序员:2013年到2017年间,数据逐渐增多,大数据平台变成了融合大数据平台,使用者从程序员变成数据管理员和数据分析师:从2018年开始,大数据进入企业数据智能新阶段,普通的工程师也能轻松应用. 当数据越来越多,需求也越来越高,环境越来越复杂,分析处理的方式也多种多样,这对平台有了更