hadoop开发(一)hadoop集群搭建(小白版)

原创 2015年07月08日 18:41:53


1. 实验环境

1.1 机器环境

三台Linux服务器
203.91.121.67 ngn67
203.91.121.73 ngn73
203.91.121.91 ngn91

1.2 软件环境

hadoop-2.5.2, jdk-1.8.0_45

1.3 环境配置

1.3.1网络环境配置

修改 /etc/hosts文件,在原有hostname后加上新的hostname。
203.91.121.67 ngn67 dataNode1
203.91.121.73 ngn73 dataNode2
203.91.121.91 ngn91 nameNode

配置机器之间的ssh免登陆
ssh免登陆的配置目的是方便hadoop集群之间的交流,否则集群之间的每次通信均需手动操作输入密码。
1) 在三台机器上分别建立hadoop账户,需要注意的是在账号建立时需要手动为账户添加sudo权限,具体做法如下:
使用visudo命令;
在文件末尾加入
hadoop ALL = (ALL) ALL
退出保存即可
2) 生成ssh密钥
在nameNode(主节点)上利用ssh工具生成密钥
ssh-keygen -t rsa
一路回车,最后会在当前用户的工作目录.ssh文件夹中生成两个文件,id_rsa与id_rsa.pub
这两个文件即生成的公钥
3) 添加公钥
cat id_rsa.pub >> authorized_keys
4) 上传密钥
将生成的authorized_keys文件上传到dataNode1和2的~/.ssh目录(或者上传id_rsa.pub过去再添加也行)。
5)在每个节点修改权限(注意每个节点都必须执行,如果不进行设置,在验证时,扔提示你输入密码)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
6)修改SSH配置文件(nameNode节点执行)
用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容。
vi /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
重启sshd服务,使得配置生效
service sshd restart
修改/etc/ssh/ssh_config文件,将PasswordAuthentication no修改为yes,保存退出并重启ssh服务
重启SSH服务,使刚才设置有效
service ssh restart
退出root登录,使用hadoop普通用户验证是否成功。
ssh dataNode1
ssh dataNode2

1.3.2 软件安装

安装jdk1.8.0_45
1) 下载jdk
官方下载链接如下:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
或者使用我自己提供的网盘链接:
http://pan.baidu.com/s/1o622HmE
或者在服务器上使用命令(linux x64系统)
wget http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz
2)解压到服务器指定目录
一般来说放在 /usr/lib/jvm/jdk目录下

3) 修改环境变量
修改/etc/profile文件,在文件末尾添加如下内容
#set Java Environment
export JAVA_HOME=/usr/lib/jvm/jdk/jdk1.8.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPAH=".:$JAVA_HOME/lib:$CLASSPATH:{JRE_HOME}/lib"
export PATH="$JAVA_HOME/bin:$PATH"
使用
source /etc/profile
命令是修改生效(不用重启)
4) 修改默认java程序
(从未安装过java的机器可以跳过这一步)
依次执行以下命令,部分内容根据自己的目录进行改变
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_45/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_45/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/java/jdk1.8.0_45/bin/jar 300
sudo update-alternatives --install /usr/bin/javah javah /usr/java/jdk1.8.0_45/bin/javah 300
sudo update-alternatives --install /usr/bin/javap javap /usr/java/jdk1.8.0_45/bin/javap 300
sudo update-alternatives --config java
这一步很重要,在修改完环境变量后,实际上仍然未将链接指向新安装的java版本,需要使用update-alternatives命令来手动指定,否则,新安装的java程序不会被执行。
5) 检测
执行
java -version
检验,输出应该如下

2.集群安装

2.1 下载解压hadoop

在官方网站上下载hadoop文件至主节点
http://mirrors.ibiblio.org/apache/hadoop/common/hadoop-2.5.2/
或者直接使用wget
wget http://mirrors.ibiblio.org/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz
下载完成后将hadoop文件解压到你想好的安装目录下。我是安装在~/目录中,因此,最后的hadoop根目录为~/hadoop-2.5.2。

2.2 配置hadoop环境变量

在/etc/profile文件末尾添加如下内容。
#set hadoop_env
export HADOOP_HOME=/home/hadoop/hadoop-2.5.2
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
使用source命令,使配置生效
source /etc/profile

2.3 配置hadoop

依次对$HADOOP_HOME/etc/hadoop中的以下文件进行修改
hadoop-env.sh
设置JAVA_HOME,位置为25行
export JAVA_HOME=/usr/lib/jvm/jdk/jdk1.8.0_45

yarn-env.sh
设置JAVA_HOME,位置为23行
export JAVA_HOME=/usr/lib/jvm/jdk/jdk1.8.0_45

core-site.xml
configuration标签中添加如下内容。
部分目录信息可以根据自己的配置调整
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-2.5.2/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://nameNode:9000</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>
hdfs-site.xml
configuration标签中添加如下内容。
    <property>
        <name>dfs.nameservices</name>
        <value>hadoop-cluster1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>nameNode:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///home/hadoop/hadoop-2.5.2/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///home/hadoop/hadoop-2.5.2/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
mapred-site.xml
configuration标签中添加如下内容。
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>nameNode:50030</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>nameNode:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>nameNode:19888</value>
    </property>
yarn-site.xml
configuration标签中添加如下内容
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>nameNode:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>nameNode:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>nameNode:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>nameNode:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>nameNode:8088</value>
    </property>
slaves
在slaves文件中添加从节点。(希望增加更多节点时,在这里直接添加即可)
dataNode1
dataNode2

2.4 其他节点

在完成主节点的配置后,将整个文件夹拷贝到其他从节点的hadoop用户目录下即可。

2.5 启动hadoop集群

执行
hdfs namenode -format
命令,完成hdfs格式化。需要说明的是,此处的格式化并不是对文件系统,而是对hdfs的相关目录文件进行清理。
依次启动hdfs和yarn服务。
进入hadoop根目录下的sbin目录。
./start-dfs.sh
./start-yarn.sh
执行jps命令查看服务启动情况。

至此已经完成了全部的hadoop集群安装工作
用户可以通过浏览器方式访问hadoop集群
http://203.91.121.91:50070/   hdfs管理
http://203.91.121.91:8088/    map-reduce job管理

3. WordCount测试

1.dfs上创建input目录
hadoop fs -mkdir -p input
2.把hadoop目录下的README.txt拷贝到dfs新建的input里
hadoop fs -copyFromLocal README.txt input
3.运行WordCount
hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.5.2-sources.jar org.apache.hadoop.examples.WordCount input output
4.运行完毕后,查看单词统计结果
hadoop fs -cat output/*
注意:输出路径设置为output,如果该文件夹已经存在,先删除,否则报错
hadoop fs -rm -r output


4.参考文章

hadoop-2.5.2集群安装配置详解
ubuntu + hadoop2.5.2分布式环境配置


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

hadoop集群搭建

  • 2017年11月06日 16:47
  • 4KB
  • 下载

hadoop集群搭建——轻松版

#首先编写 ssh 脚本,然后去每台机器上执行 1.sh 2.sh #注意:在每台机器上执行完相同脚本号的脚本之后才可以执行下一个脚本。 #相同脚本好的脚本可以同时运行。...
  • xu9392
  • xu9392
  • 2015年10月26日 01:22
  • 119

搭建hadoop集群的全部配置文件

  • 2012年12月28日 16:03
  • 7KB
  • 下载

linux下hadoop集群搭建

  • 2014年01月13日 14:34
  • 93KB
  • 下载

hadoop集群搭建(一)——单机版配置

这个寒假和团队一起历经千辛万苦,从一开始的迷茫,然后慢慢的摸索终于完成了我们的集群搭建,成功建立起一个小小的云端。 单机版hadoop的配置; 九死一生,完成hadoop的配置   ...

Linux_RedHat、CentOS上搭建Hadoop集群

  • 2012年08月13日 17:52
  • 21KB
  • 下载

Hadoop集群配置及MapReduce开发手册

  • 2013年11月12日 22:05
  • 987KB
  • 下载

搭建hadoop集群开发环境1

最近没事学习一下hadoop,搭建一个hadoop集群,由于之前接触linux较少,就顺带着学学linux,这里将遇到的问题记录下来 我用的是ubuntu-14.10-desktop-amd64,因为...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hadoop开发(一)hadoop集群搭建(小白版)
举报原因:
原因补充:

(最多只允许输入30个字)