当前位置:首页 » 存储配置 » hadoop怎么安装配置

hadoop怎么安装配置

发布时间: 2023-06-04 08:24:05

1. 如何在linux下安装hadoop

如何在linux下安装hadoop

建议使用自动化部署吧。 这个还是不太难做到哦。 能否看一下my网名呢?帮助搞定一下

一、前期准备:
下载hadoop: :hadoop.apache./core/releases.
:hadoop.apache./mon/releases.
:apache./dyn/closer.cgi/hadoop/core/
:labs.xiaonei./apache-mirror/hadoop/core/hadoop-0.20.1/hadoop-0.20.1.tar.gz
:labs.xiaonei./apache-mirror/hadoop/
二、硬体环境
共有3台机器,均使用的CentOS,java使用的是jdk1.6.0。
三、安装JAVA6
sudo apt-get install sun-java6-jdk
/etc/environment
开启之后加入:#中间是以英文的冒号隔开,记得windows中是以英文的分号做为宏没分隔的
CLASSPATH=.:/usr/local/java/lib
JAVA_HOME=/usr/local/java
三、配置host表
[root@hadoop ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.108 datanode1
192.168.13.110 datanode2
[root@test ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.108 datanode1
[root@test2 ~]# vi /etc/host
127.0.0.1 localhost
192.168.13.100 namenode
192.168.13.110 datanode2
新增使用者和使用者组
addgroup hadoop
adser hadoop
usermod -a -G hadoop hadoop
passwd hadoop
配置ssh:
服务端:
su hadoop
ssh-keygen -t rsa
cp id_rsa.pub authorized_keys
客户端
chmod 700 /home/hadoop
chmod 755 /home/hadoop/.ssh
su hadoop
cd /home
mkdir .ssh
服务端:
chmod 644 /home/hadoop/.ssh/authorized_keys
scp authorized_keys datanode1:/home/hadoop/.ssh/
scp authorized_keys datanode2:/home/hadoop/.ssh/
ssh datanode1
ssh datanode2
如果ssh配置好了就会蔽和纳出现以下提示棚纤资讯
The authenticity of host [dbrg-2] can't be established.
Key fingerpr is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.
Are you sure you want to continue connecting (yes/no)?
OpenSSH告诉你它不知道这台主机但是你不用担心这个问题你是第次登入这台主机键入“yes”这将把
这台主机“识别标记”加到“~/.ssh/know_hosts”档案中第 2次访问这台主机时候就不会再显示这条提示信
不过别忘了测试本机sshdbrg-1

mkdir /home/hadoop/HadoopInstall
tar -zxvf hadoop-0.20.1.tar.gz -C /home/hadoop/HadoopInstall/
cd /home/hadoop/HadoopInstall/
ln -s hadoop-0.20.1 hadoop
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:/usr/local/java/lib
export HADOOP_HOME=/home/hadoop/HadoopInstall/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop-conf
export PATH=$HADOOP_HOME/bin:$PATH
cd $HADOOP_HOME/conf/
mkdir /home/hadoop/hadoop-conf
cp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves /home/hadoop/hadoop-conf
vi $HADOOP_HOME/hadoop-conf/hadoop-env.sh
# The java implementation to use. Required. --修改成你自己jdk安装的目录
export JAVA_HOME=/usr/local/java

export HADOOP_CLASSPATH=.:/usr/local/java/lib
# The maximum amount of heap to use, in MB. Default is 1000.--根据你的记忆体大小调整
export HADOOP_HEAPSIZE=200
vi /home/hadoop/.bashrc
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:/usr/local/java/lib
export HADOOP_HOME=/home/hadoop/HadoopInstall/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop-conf
export PATH=$HADOOP_HOME/bin:$PATH
配置
namenode
#vi $HADOOP_CONF_DIR/slaves
192.168.13.108
192.168.13.110
#vi $HADOOP_CONF_DIR/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>

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

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs:192.168.13.100:9000</value>
</property>
</configuration>
#vi $HADOOP_CONF_DIR/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>

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

<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
</configuration>
#vi $HADOOP_CONF_DIR/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>

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

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.13.100:11000</value>
</property>
</configuration>
~
在slave上的配置档案如下(hdfs-site.xml不需要配置):
[root@test12 conf]# cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs:namenode:9000</value>
</property>
</configuration>
[root@test12 conf]# cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type=text/xsl href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>namenode:11000</value>
</property>
</configuration>
启动
export PATH=$HADOOP_HOME/bin:$PATH
hadoop namenode -format
start-all.sh
停止s-all.sh
在hdfs上建立danchentest资料夹,上传档案到此目录下
$HADOOP_HOME/bin/hadoop fs -mkdir danchentest
$HADOOP_HOME/bin/hadoop fs -put $HADOOP_HOME/README.txt danchentest
cd $HADOOP_HOME
hadoop jar hadoop-0.20.1-examples.jar wordcount /user/hadoop/danchentest/README.txt output1
09/12/21 18:31:44 INFO input.FileInputFormat: Total input paths to process : 1
09/12/21 18:31:45 INFO mapred.JobClient: Running job: job_200912211824_0002
09/12/21 18:31:46 INFO mapred.JobClient: map 0% rece 0%
09/12/21 18:31:53 INFO mapred.JobClient: map 100% rece 0%
09/12/21 18:32:05 INFO mapred.JobClient: map 100% rece 100%
09/12/21 18:32:07 INFO mapred.JobClient: Job plete: job_200912211824_0002
09/12/21 18:32:07 INFO mapred.JobClient: Counters: 17
09/12/21 18:32:07 INFO mapred.JobClient: Job Counters
09/12/21 18:32:07 INFO mapred.JobClient: Launched rece tasks=1
检视输出结果档案,这个档案在hdfs上
[root@test11 hadoop]# hadoop fs -ls output1
Found 2 items
drwxr-xr-x - root supergroup 0 2009-09-30 16:01 /user/root/output1/_logs
-rw-r--r-- 3 root supergroup 1306 2009-09-30 16:01 /user/root/output1/part-r-00000
[root@test11 hadoop]# hadoop fs -cat output1/part-r-00000
(BIS), 1
(ECCN) 1
检视hdfs执行状态,可以通过web接口来访问:192.168.13.100:50070/dfshealth.jsp;检视map-rece资讯,
可以通过web接口来访问:192.168.13.100:50030/jobtracker.jsp;下面是直接命令列看到的结果。
出现08/01/25 16:31:40 INFO ipc.Client: Retrying connect to server: foo.bar./1.1.1.1:53567. Already tried 1 time(s).
的原因是没有格式化:hadoop namenode -format

如何在windows下安装hadoop

建议你在windows上安装linux的虚拟机器,然后在linux上安装hadoop

1、安装Cygwin
下载cygwin的setup.exe,双击执行:

选择从Inter安装:
设定安装目录:

设定安装包目录:

设定“Inter Connection”的方式,选择“Direct Connection”:

选择一个下载站点:
“下一步”之后,可能会弹出下图的“Setup Alert”对话方块,直接“确定”即可
在“Select Packages”对话方块中,必须保证“Net Category”下的“OpenSSL”被安装:

如果还打算在eclipse 上编译Hadoop,则还必须安装“Base Category”下的“sed”:

“Devel Category”下的subversion 建议安装:

下载并安装:

当下载完后,会自动进入到“setup”的对话方块:

在上图所示的对话方块中,选中“Create icon on Desk”,以方便直接从桌面上启动
Cygwin,然后点选“完成”按钮。至此,Cgywin 已经安装完成。
2、配置环境变数
需要配置的环境变数包括PATH 和JAVA_HOME:将JDK 的bin 目录、Cygwin 的bin 目录
以及Cygwin 的usrin( *** in)目录都新增到PATH 环境变数中;JAVA_HOME 指向JRE 安装目录。
3、windows系统上执行hadoop丛集,伪分散式模式安装步骤:
①启动cygwin,解压hadoop安装包。通过cygdrive(位于Cygwin根目录中)可以直接对映到windows下的各个逻辑磁盘分割槽。例如hadoop安装包放在分割槽D:下,则解压的命令为$ tar -zxvf /cygdrive/d/hadoop-0.20.2.tar.gz,解压后可使用ls命令检视,如下图:
预设的解压目录为使用者根目录,即D:cygwinhomelsq(使用者帐户)。
②编辑conf/hadoop-env.sh档案,将JAVA_HOME变数设定为java的安装目录。例如java安装在目录C:Program Filesjavajdk1.6.0_13,如果路径没空格,直接配置即可。存在空格,需将Program Files缩写成Progra_1,如下图:
③依次编辑conf目录下的core-site.xml、mapred-site.xml和hdfs-site.xml档案,如下图:
④安装配置SSH
点选桌面上的Cygwin图示,启动Cygwin,执行ssh-host-config命令,然后按下图上的选择输入:

当提示Do you want to use a different name?输入yes,这步是配置安装的sshd服务,以哪个使用者登入,预设是cyg_server这个使用者,这里就不事先新建cyg_server这个使用者,用当前本机的超管本地使用者:chenx,后续根据提示,2次输入这个账户的密码

出现Host configuration finished. Have fun! 一般安装顺利完成。如下图:

输入命令$ start sshd,启动SSH,如下图:

注:sshd服务安装完之后,不会预设启动,如果启动报登入失败,不能启动,可在服务属性-Log On视窗手工修改,在前述的过程之中,cygwin不会校验密码是否正确,应该只是校验了2次的输入是否一致,然后再手工启动。不知道为什么,sshd服务如果选择local system的登入方式,后续会有问题,所以sshd服务最好设定成当前的登入使用者。

⑤配置ssh登入
执行ssh-keygen命令生成金钥档案
输入如下命令:
cd ~/.ssh
ls -l
cat id_rsa.pub >> authorized_keys
完成上述操作后,执行exit命令先退出Cygwin视窗,如果不执行这一步操作,下面的操作可能会遇到错误。接下来,重新执行Cygwin,执行ssh localhost命令,在第一次执行ssh localhost时,会有“are you sure you want to continue connection<yes/no>?”提示,输入yes,然后回车即可。当出现下图提示,即顺利完成该步:

⑥hadoop执行
格式化namenode
开启cygwin视窗,输入如下命令:
cd hadoop-0.20.2
mkdir logs
bin/hadoop namenode –format

启动Hadoop
在Cygwin 中,进入hadoop 的bin 目录,
执行./start-all.sh 启动hadoop;
可以执行./hadoop fs -ls /命令,检视hadoop 的根目录;
可以执行jps 检视相关程序;
如下图:(如果显示和下图类似,一般hadoop安装/启动成功)

如何在hadoop 环境下安装hive

不行。 安装 vm 下载:去官网下 VMware-player-5.0.1-894247.zip 安装和配置ubanto 下载:去官网下 ubuntu-12.10-desk-i386.iso 开启vm,载入ubanto iso档案,进行安装更新 进入ubanto,如果是第一个进入,则需要设定root的密码

如何在ubantu环境下安装hadoop

上apache的hadoop页下编译好的包,解压,配一些档案就行了 很容易 网上教程很多

如何在 Linux 下安装 PyCharm

PyCharm 是由 Jetbrains 公司开发的一个跨平台编辑器。如果你之前是在 Windows 环境下进行开发,那么你会立刻认出 Jetbrains 公司,它就是那个开发了 Resharper 的公司。 这篇文章将讨论如何在 Linux 系统上获取、安装和执行 PyCharm 。

如何在linux下安装opencv

新建一个perl,名为bar.pl
内容如下:
#!/usr/bin/perl
while (<>){
chomp;
s/([^-]+) - .*/1/g;
system "apt-get install ".$_;
}
然后apt-cache search opencv | perl bar.pl

2. 如何配置Hadoop环境

资源下载

1、JDK下载:下载链接
2、hadoop:下载链接
3、下载完成后验证一下下载,将计算的MD5值与官网的进行对比已验证安装包的准确性:

md5sum ./hadoop-2.6.*.tar.gz | tr "a-z" "A-Z" # 计算md5值,并转化为大写,方便比较1

一、创建Hadoop用户

创建hadoop用户,并分配以用户名为家目录/home/hadoop,并将其加入到sudo用户组,创建好用户之后,以hadoop用户登录:

sudo useradd -m hadoop -s /bin/bash sudo adser hadoop sudo
sudo passwd hadoop # 设置hadoop用户密码123

二、安装JDK、Hadoop及配置环境变量

安装,解压JDK到/usr/lib/java/路径下,Hadoop到/usr/local/etc/hadoop/路径下:

tar zxf ./hadoop-2.6.*.tar.gz
mv ./hadoop-2.6.* /usr/local/etc/hadoop # 将 /usr/local/etc/hadoop作为Hadoop的安装路径12

解压完成之后,可验证hadoop的可用性:

cd /usr/local/etc/hadoop
./bin/hadoop version # 查看hadoop的版本信息12

若在此处,会出现类似以下的错误信息,则很有可能是该安装包有问题。

Error: Could not find or load main class org.apache.hadoop.util.VersionInfo1

配置环境,编辑“/etc/profile”文件,在其后添加如下信息:

export HADOOP_HOME=/usr/local/etc/hadoopexport JAVA_HOME=/usr/lib/java/jdk1.8.0_45export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin12345

使配置的变量生效:

source /etc/profile1

三、测试一下

在此我们可以运行一个简单的官方Demo:

cd `echo $HADOOP_HOME` # 到hadoop安装路径
mkdir ./input
cp ./etc/hadoop/*.xml ./input
hadoop jar ./share/hadoop/maprece/hadoop-maprece-examples-*.jar grep ./input ./output 'dfs[a-z.]+'1234

输出的结果应该会是:

1 dfsadmin 1

  • 这里有一点需要注意,该Example程序运行时不能已存在output目录,否则或将无法执行!

  • 四、Hadoop的伪分布式环境搭建

    什么是伪分布式?Hadoop 伪分布式模式是在一台机器上模拟Hadoop分布式,单机上的分布式并不是真正的分布式,而是使用线程模拟的分布式。分布式和伪分布式这两种配置也很相似,唯一不同的地方是伪分布式是在一台机器上配置,也就是名字节点(namenode)和数据节点(datanode)均是同一台机器。

    需要配置的文件有core-site.xml和hdfs-site.xml这两个文件他们都位于${HADOOP_HOME}/etc/hadoop/文件夹下。
    其中core-site.xml:

  • 1 <?xml version="1.0" encoding="UTF-8"?>

  • 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

  • 3 <!--

  • 4 Licensed ...

  • -->

  • 18

  • 19 <configuration>

  • 20 <property>

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

  • 22 <value>file:/home/hadoop/tmp</value>

  • 23 <description>Abase for other temporary directories.</description>

  • 24 </property>

  • 25 <property>

  • 26 <name>fs.default.name</name>

  • 27 <value>hdfs://master:9000</value>

  • 28 </property>

  • 29 </configuration> 1234567891011121314151617

  • 文件hdfs-site.xml的配置如下:

  • 1 <?xml version="1.0" encoding="UTF-8"?>

  • 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

  • 3 <!--

  • 4 Licensed ...

  • -->

  • 18

  • 19 <configuration>

  • 20 <property>

  • 21 <name>dfs.replication</name>

  • 22 <value>1</value>

  • 23 </property>

  • 24 <property>

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

  • 26 <value>file:/home/hadoop/tmp/dfs/name</value>

  • 27 </property>

  • 28 <property>

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

  • 30 <value>file:/home/hadoop/tmp/dfs/data</value>

  • 31 </property>

  • 32 </configuration>

  • 配置完成后,执行格式化命令,使HDFS将制定的目录进行格式化:

  • hdfs namenode -format1

  • 若格式化成功,在临近输出的结尾部分可看到如下信息:

    如果发现并没有出现如上信息,则使用刷新节点命令进行刷新:

  • hdfs dfsadmin -refreshNodes1

  • 八、HDFS集群实例测试

    依然是之前的那个示例,首先,创建一个数据源文件夹,并添加数据:

  • hdfs dfs -mkdir /input

  • hdfs dfs -put /usr/local/etc/hadoop/etc/hadoop/*.xml /input12

  • 运行maprece示例:

  • hadoop jar /usr/local/etc/hadoop/share/hadoop/maprece/hadoop-maprece-examples-*.jar grep /input /output 'dfs[a-z.]+'1

  • holding…

3. 使用root用户完成相关配置,安装hadoop需要配置前置环境

可以使用 root 用户来完成 Hadoop 的相关配置和安装,但在此之前,需要确保系统安装了一些必要的前置环境和软件。以下是配置 Hadoop 环境的基本步骤:

安装 Java 运行环境(JRE)或 Java 开发工具包(JDK)。Hadoop 是使用 Java 语言开发的,因此需要安装 Java 运行环境才能运行。

配置 Java 环境变量。在 Linux 系统中,可以使用 export 命令设置 PATH 和或明戚 JAVA_HOME 环境变量,以便系统能够识别 Java 运行环境。

下载 Hadoop 的最新版本,例如 Apache Hadoop 2.9.2。

解压 Hadoop 压缩包,并将其槐枯放置在某个有读写权限的目录下。

配置 Hadoop 的环境变量衫陵,以便系统可以找到 Hadoop 的二进制文件。在 Linux 系统中,可以在 .bashrc 文件中添加以下语句:

Copy code
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
配置 Hadoop 的相关文件,如 core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml,这些文件记录了 Hadoop 的基本配置信息,例如 NameNode 的地址、DataNode 的地址等等。

格式化 Hadoop 的文件系统。在 Hadoop 安装目录中运行以下命令:

Copy code
$HADOOP_HOME/bin/hdfs namenode -format
完成以上步骤后,Hadoop 环境就可以正常运行了,您可以使用 Hadoop 开发应用程序或处理大数据了。需要注意的是,Hadoop 配置和部署比较复杂,需要一定的经验和技能,建议在操作前先了解相关资料或请有经验的人进行指导。

4. HADOOP安装(安装详情私)-

2.1 准备

克隆三台虚拟机:hadoop102 hadoop103 hadoop104,

修改克隆虚拟机的静态 IP:vim /etc/sysconfig/network-scripts/ifcfgens33

修改主机名称 vim /etc/hostname

配置 Linux 克隆机主机名称映射 hosts 文件:vim /etc/hosts

reboot

安装 JDK 前,一定确保提前删除了虚拟机自带的 JDK

解压、配置 JDK 环境变量,测试:java -version

Hadoop 下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

解压、将 Hadoop 添加到环境变量

2.2 Hadoop 重要目录

bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本

etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件

lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)

sbin 目录:存放启动或停止 Hadoop 相关服务的脚本

share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例

2.3 Hadoop运行模式

Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式

本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。

伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模 拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。

完全分布式模式:多台服务器组成分布式环境。生产环境使用。

完全分布式运行模式(开发重点) 分析:1)准备 3 台客户机(关闭防火墙、静态 IP、主机名称) 2)安装 JDK 3)配置环境变量 4)安装 Hadoop 5)配置环境变量 6)配置集群 7)单点启动 8)配置 ssh 9)群起并测试集群

编写集群分发脚本 xsync

scp安全拷贝语法:

scp -r $pdir/$fname $user@$host:$pdir/$fname

命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

rsync 远程同步工具语法:

rsync -av $pdir/$fname $user@$host:$pdir/$fname

命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更 新。scp 是把所有文件都复制过去。

rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

SSH 无密登录配置

命令:ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要免密登录的目标机器上:ssh--id hadoop102

2.4 集群安装

注意

NameNode 和 SecondaryNameNode 不要安装在同一台服务器

ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在 同一台机器上。

Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认 配置值时,才需要修改自定义配置文件,更改相应属性值

自定义配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在 $HADOOP_HOME/etc/hadoop 这个路径

5. 安装hadoop的步骤有哪些

hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFSHA、YARN等。最新的hadoop-2.4.1又增加了YARNHA

注意:apache提供的hadoop-2.4.1的安装包是在32位操作系统编译的,因为hadoop依赖一些C++的本地库,
所以如果在64位的操作上安装hadoop-2.4.1就需要重新在64操作系统上重新编译
(建议第一次安装用32位的系统,我将编译好的64位的也上传到群共享里了,如果有兴趣的可以自己编译一下)

前期准备就不详细说了,课堂上都介绍了
1.修改Linux主机名
2.修改IP
3.修改主机名和IP的映射关系
######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机、阿里云主机等)
/etc/hosts里面要配置的是内网IP地址和主机名的映射关系
4.关闭防火墙
5.ssh免登陆
6.安装JDK,配置环境变量等

集群规划:
主机名 IP 安装的软件 运行的进程
HA181 192.168.1.181 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
HA182 192.168.1.182 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
HA183 192.168.1.183 jdk、hadoop ResourceManager
HA184 192.168.1.184 jdk、hadoop ResourceManager
HA185 192.168.1.185 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
HA186 192.168.1.186 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
HA187 192.168.1.187 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain

说明:
1.在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。ActiveNameNode对外提供服务,而StandbyNameNode则不对外提供服务,仅同步activenamenode的状态,以便能够在它失败时快速进行切换。
hadoop2.0官方提供了两种HDFSHA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode
这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当ActiveNameNode挂掉了,会自动切换StandbyNameNode为standby状态
2.hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.4.1解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调
安装步骤:
1.安装配置zooekeeper集群(在HA185上)
1.1解压
tar-zxvfzookeeper-3.4.5.tar.gz-C/app/
1.2修改配置
cd/app/zookeeper-3.4.5/conf/
cpzoo_sample.cfgzoo.cfg
vimzoo.cfg
修改:dataDir=/app/zookeeper-3.4.5/tmp
在最后添加:
server.1=HA185:2888:3888
server.2=HA186:2888:3888
server.3=HA187:2888:3888
保存退出
然后创建一个tmp文件夹
mkdir/app/zookeeper-3.4.5/tmp
再创建一个空文件
touch/app/zookeeper-3.4.5/tmp/myid
最后向该文件写入ID
echo1>/app/zookeeper-3.4.5/tmp/myid
1.3将配置好的zookeeper拷贝到其他节点(首先分别在HA186、HA187根目录下创建一个weekend目录:mkdir/weekend)
scp-r/app/zookeeper-3.4.5/HA186:/app/
scp-r/app/zookeeper-3.4.5/HA187:/app/

注意:修改HA186、HA187对应/weekend/zookeeper-3.4.5/tmp/myid内容
HA186:
echo2>/app/zookeeper-3.4.5/tmp/myid
HA187:
echo3>/app/zookeeper-3.4.5/tmp/myid

2.安装配置hadoop集群(在HA181上操作)
2.1解压
tar-zxvfhadoop-2.4.1.tar.gz-C/weekend/
2.2配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)
#将hadoop添加到环境变量中
vim/etc/profile
exportJAVA_HOME=/app/jdk1.7.0_79
exportHADOOP_HOME=/app/hadoop-2.4.1
exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

#hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
cd/home/hadoop/app/hadoop-2.4.1/etc/hadoop

2.2.1修改hadoop-env.sh
exportJAVA_HOME=/app/jdk1.7.0_79

2.2.2修改core-site.xml
<configuration>
<!--指定hdfs的nameservice为ns1-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>
</property>
<!--指定hadoop临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop-2.4.1/tmp</value>
</property>

<!--指定zookeeper地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>HA185:2181,HA186:2181,HA187:2181</value>
</property>
</configuration>

2.2.3修改hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!--ns1下面有两个NameNode,分别是nn1,nn2-->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>HA181:9000</value>
</property>
<!--nn1的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>HA181:50070</value>
</property>
<!--nn2的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>HA182:9000</value>
</property>
<!--nn2的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>HA182:50070</value>
</property>
<!--指定NameNode的元数据在JournalNode上的存放位置-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://HA185:8485;HA186:8485;HA187:8485/ns1</value>
</property>
<!--指定JournalNode在本地磁盘存放数据的位置-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/app/hadoop-2.4.1/journaldata</value>
</property>
<!--开启NameNode失败自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置失败自动切换实现方式-->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.</value>
</property>
<!--配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!--使用sshfence隔离机制时需要ssh免登陆-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!--配置sshfence隔离机制超时时间-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

2.2.4修改mapred-site.xml
<configuration>
<!--指定mr框架为yarn方式-->
<property>
<name>maprece.framework.name</name>
<value>yarn</value>
</property>
</configuration>

2.2.5修改yarn-site.xml
<configuration>
<!--开启RM高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定RM的clusterid-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!--指定RM的名字-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--分别指定RM的地址-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>HA183</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>HA184</value>
</property>
<!--指定zk集群地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>HA185:2181,HA186:2181,HA187:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>maprece_shuffle</value>
</property>
</configuration>


2.2.6修改slaves(slaves是指定子节点的位置,因为要在HA181上启动HDFS、在HA183启动yarn,
所以HA181上的slaves文件指定的是datanode的位置,HA183上的slaves文件指定的是nodemanager的位置)
HA185
HA186
HA187

2.2.7配置免密码登陆
#首先要配置HA181到HA182、HA183、HA184、HA185、HA186、HA187的免密码登陆
#在HA181上生产一对钥匙
ssh-keygen-trsa
#将公钥拷贝到其他节点,包括自己
ssh--idHA181
ssh--idHA182
ssh--idHA183
ssh--idHA184
ssh--idHA185
ssh--idHA186
ssh--idHA187
#配置HA183到HA184、HA185、HA186、HA187的免密码登陆
#在HA183上生产一对钥匙
ssh-keygen-trsa
#将公钥拷贝到其他节点
ssh--idHA184
ssh--idHA185
ssh--idHA186
ssh--idHA187
#注意:两个namenode之间要配置ssh免密码登陆,别忘了配置HA182到HA181的免登陆
在HA182上生产一对钥匙
ssh-keygen-trsa
ssh--id-iHA181

2.4将配置好的hadoop拷贝到其他节点
scp-r/app/hadoop-2.5.1/HA182:/app/
scp-r/app/hadoop-2.5.1/HA183:/app/
scp-r/app/hadoop-2.5.1/HA184:/app/
scp-r/app/hadoop-2.5.1/HA185:/app/
scp-r/app/hadoop-2.5.1/HA186:/app/
scp-r/app/hadoop-2.5.1/HA187:/app/
###注意:严格按照下面的步骤
2.5启动zookeeper集群(分别在HA185、HA186、tcast07上启动zk)
cd/app/zookeeper-3.4.5/bin/
./zkServer.shstart
#查看状态:一个leader,两个follower
./zkServer.shstatus

2.6启动journalnode(分别在在HA185、HA186、HA187上执行)
cd/app/hadoop-2.5.1
hadoop-daemon.shstartjournalnode
#运行jps命令检验,HA185、HA186、HA187上多了JournalNode进程
2.7格式化ZKFC(在HA181上执行即可) hdfszkfc-formatZK
2.8格式化HDFS
#在HA181上执行命令:
hdfsnamenode-format
#格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/app/hadoop-2.4.1/tmp,然后将/weekend/hadoop-2.4.1/tmp拷贝到HA182的/weekend/hadoop-2.4.1/下。
scp-rtmp/HA182:/app/hadoop-2.5.1/
##也可以这样,建议hdfsnamenode-bootstrapStandby



2.9启动HDFS(在HA181上执行)
sbin/start-dfs.sh

2.10启动YARN(#####注意#####:是在HA183上执行start-yarn.sh,把namenode和resourcemanager分开是因为性能问题,因为他们都要占用大量资源,所以把他们分开了,他们分开了就要分别在不同的机器上启动)
sbin/start-yarn.sh


到此,hadoop-2.4.1配置完毕,可以统计浏览器访问:
http://192.168.1.181:50070
NameNode'HA181:9000'(active)
http://192.168.1.182:50070
NameNode'HA182:9000'(standby)

验证HDFSHA
首先向hdfs上传一个文件
hadoopfs-put/etc/profile/profile
hadoopfs-ls/
然后再kill掉active的NameNode
kill-9<pidofNN>
通过浏览器访问:http://192.168.1.182:50070
NameNode'HA182:9000'(active)
这个时候HA182上的NameNode变成了active
在执行命令:
hadoopfs-ls/
-rw-r--r--3rootsupergroup19262014-02-0615:36/profile
刚才上传的文件依然存在!!!
手动启动那个挂掉的NameNode
sbin/hadoop-daemon.shstartnamenode
通过浏览器访问:http://192.168.1.181:50070
NameNode'HA181:9000'(standby)

验证YARN:
运行一下hadoop提供的demo中的WordCount程序:
hadoopjarshare/hadoop/maprece/hadoop-maprece-examples-2.4.1.jarwordcount/profile/out

OK,大功告成!!!
CID-74d21742-3e4b-4df6-a99c-d52f703b49c0



测试集群工作状态的一些指令:
bin/hdfsdfsadmin-report 查看hdfs的各节点状态信息


bin/hdfshaadmin-getServiceStatenn1 获取一个namenode节点的HA状态

sbin/hadoop-daemon.shstartnamenode单独启动一个namenode进程


./hadoop-daemon.shstartzkfc单独启动一个zkfc进程

热点内容
html编译成JavaScript 发布:2024-04-29 00:00:15 浏览:367
html编译器手机 发布:2024-04-28 23:59:22 浏览:518
大宇精雕机的密码是多少 发布:2024-04-28 23:50:02 浏览:457
androidapi查询 发布:2024-04-28 23:44:06 浏览:58
怎么升级加密狗 发布:2024-04-28 23:24:57 浏览:665
netgear远程访问 发布:2024-04-28 23:06:18 浏览:533
javaweb整合开发 发布:2024-04-28 23:03:49 浏览:458
福康中国服务器地址 发布:2024-04-28 22:47:20 浏览:747
mcryptphp 发布:2024-04-28 22:29:12 浏览:195
程序源代码加密 发布:2024-04-28 22:10:42 浏览:836