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


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.参考文章



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行Hadoop开发前,需要先配置好Hadoop开发环境,包括安装Hadoop搭建伪分布式集群。以下是Hadoop安装和伪分布式集群搭建的步骤: 1. 下载HadoopHadoop官网下载最新本的Hadoop压缩包。当前最新本是3.3.1。 2. 解压缩Hadoop 将下载的Hadoop压缩包解压缩到本地目录,比如/opt/hadoop。解压缩后,会得到一个hadoop-3.3.1目录。 3. 配置Hadoop环境变量 在~/.bashrc文件中添加以下内容: export HADOOP_HOME=/opt/hadoop/hadoop-3.3.1 export PATH=$PATH:$HADOOP_HOME/bin 然后执行source ~/.bashrc,使配置生效。 4. 配置Hadoop 进入Hadoop的安装目录,修改配置文件。以下是必须修改的配置文件: - core-site.xml 在Hadoop安装目录的/etc/hadoop/目录下,创建core-site.xml文件,并添加以下内容: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> 这个配置指定了Hadoop的默认文件系统为HDFS,并且HDFS的访问地址为localhost:9000。 - hdfs-site.xml 在Hadoop安装目录的/etc/hadoop/目录下,创建hdfs-site.xml文件,并添加以下内容: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> 这个配置指定了HDFS的副本数为1。 - mapred-site.xml 在Hadoop安装目录的/etc/hadoop/目录下,创建mapred-site.xml文件,并添加以下内容: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 这个配置指定了MapReduce的框架为YARN。 - yarn-site.xml 在Hadoop安装目录的/etc/hadoop/目录下,创建yarn-site.xml文件,并添加以下内容: <configuration> <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> </configuration> 这个配置指定了NodeManager的辅助服务为mapreduce_shuffle,并且指定了ShuffleHandler类。 5. 格式化HDFS 在Hadoop安装目录下,执行以下命令: $ hdfs namenode -format 这个命令会格式化HDFS,清空HDFS中的所有文件。 6. 启动HadoopHadoop安装目录下,执行以下命令: $ start-all.sh 这个命令会启动Hadoop的所有组件,包括NameNode、DataNode、ResourceManager、NodeManager等。 7. 验证Hadoop是否正常工作 在浏览器中访问http://localhost:8088/,可以看到YARN的Web界面。在浏览器中访问http://localhost:50070/,可以看到HDFS的Web界面。 至此,Hadoop的安装和伪分布式集群搭建完成。可以开始进行Hadoop开发了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值