Hadoop 伪分布式安装、运行测试例子

本文详细介绍了在Linux系统中配置虚拟机环境、安装并配置Hadoop单节点集群的方法,并通过词频统计示例演示了Hadoop的基本操作流程。包括虚拟机的配置、防火墙关闭、主机名修改、DNS解析、用户创建与权限设置、SSH免密码登录、JDK和Hadoop的安装与配置等步骤。

1. 配置linux系统环境
  1. centos 6.4 下载地址:http://pan.baidu.com/s/1geoSWuvVMWare专用CentOS.rar】(安装打包好的VM压缩包)
  2. 并配置虚拟机网络连接为“仅主机模式”(使主机和虚拟机可以互通)
     3.  设置虚拟机固定ip,设置好重启网络:service network restart
          

2. 关闭防火墙
1
2
3
4
5
6
su  root
service iptables stop  #关闭防火墙
service iptables status  #验证是否关闭
chkconfig iptables off  #关闭防火墙的开机自动运行
chkconfig –list |  grep  iptables  #验证防火墙的开机自动运行
vim  /etc/sysconfig/selinux  # 禁用selinux,将SELINUX=disabled

3. 修改主机名(必须要修改为hadoop)
1
2
3
hostname  #查看当前主机名
hostname  hadoop  #设置主机名,本次生效
vim  /etc/sysconfig/network  #修改HOSTNAME=hadoop,永久生效

4. 把hostname和ip绑定(设置DNS解析)
1
2
vim  /etc/hosts  #增加 192.168.17.100    hadoop
reboot

5. 创建用户(一般生产不直接给root的)
  1. adduser hadoop01
  2. passwd hadoop01设置密码:hadoop01
  3. 却换root用户给hadoop01设置权限,设置允许root命令的用户
su root
chmod 751 /etc/sudoers #设置可读写
vim /etc/sudoers 
hadoop01        ALL=(ALL)       ALL #在Allow root to run any commands anywhere 下添加一行
直接使用root
6. SSH免密码登陆
1
2
3
ssh -keygen -t rsa  #回车,产生密钥,位于~/.ssh下
cp  ~/. ssh /id_rsa .pub ~/. ssh /authorized_keys2  #(或ssh-copy-id localhost)
ssh localhost  #验证,免密码登陆

7. 安装jdk(64bit: http://pan.baidu.com/s/1nua41oljdk-7u79-linux-x64.gz ,32bit: http://pan.baidu.com/s/1dDJPDNrjdk-7u79-linux-i586.gz
     (Hadoop2.7.x 支持到1.7,所以推荐安装1.7的jdk, http://wiki.apache.org/hadoop/HadoopJavaVersions
1
2
3
4
5
6
7
8
9
cd  /usr/local/src
mkdir  java 
cd  java 
mkdir  jdk  #jdk解压到此处 sudo tar -zxvf xxx
vim  /etc/profile  #配置环境变量,追加
     export  JAVA_HOME= /usr/local/src/java/jdk
     export  PATH=$PATH:$JAVA_HOME /bin
source  /etc/profile  # 让配置生效
  java –version  # 查看是否安装成功
8. 安装Hadoop(单节点安装)
    下载hadoop, http://apache.fayea.com/hadoop/common/hadoop-2.7.2/ (如果为64bit系统要自己编译源码,具体参考下面参考的视频连接,64bit编译好的下载地址: http://pan.baidu.com/s/1c0TuAgo
    1.  配置hdfs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
cd  /usr/local/src
mkdir  hadoop  # 解压hadoop压缩包到此处
cd  hadoop 
mkdir  data  
cd  data 
mkdir  tmp   #存放临时目录运行时产生数据
vim etc /hadoop/hadoop-env .sh  # JAVA_HOME修改为实际路径JAVA_HOME=/usr/local/src/java/jdk
vim etc /hadoop/core-site .xml  #配置新增:配置hdfs访问的端口 8020(2.x以后支持8020)
         <property>
                 <name>fs.defaultFS< /name >
                 <value>hdfs: //hadoop :8020< /value >
         < /property >
#修改临时目录运行时产生数据的目录:(默认在tmp,在linux系统中可能回被删除)
         <property>
                 <name>hadoop.tmp. dir < /name >
                 <value> /usr/local/src/hadoop/data/tmp < /value >
         < /property >
vim etc /hadoop/hdfs-site .xml  # 配置默认副本的备份个数(一般是3个,这里伪分布式只要1份就可以)
         <property>
                 <name>dfs.replication< /name >
                 <value>1< /value >
          < /property >
bin /hdfs  namenode - format  # 格式化文件系统
sbin /start-dfs .sh  # 启动 jps查看启动进行情况,启动三个进程,namenode存储元数据,datanode存储数据
sbin /stop-dfs .sh  #关闭
            查看日志目录logs
            查看hdfs的状态: http://192.168.17.100:50070/

    2.  安装yarn(资源调度)
1
2
3
4
5
6
7
8
9
10
11
12
13
mv  etc /hadoop/mapred-site .xml.template etc /hadoop/mapred-site .xml
vim etc /hadoop/mapred-site .xml  #使mapreduce用yarn来调度
         <property>
                 <name>mapreduce.framework.name< /name >
                 <value>yarn< /value >
         < /property >
vim etc /hadoop/yarn-site .xml  #配置Reduce取数据的方式是shuffle
         <property>
                  <name>yarn.nodemanager.aux-services< /name >
                  <value>mapreduce_shuffle< /value >       
         < /property >
sbin /start-yarn .sh  # 启动( jsp可以看到多了两个进程 resourcesManage管理总的资源分配, NodeManage 管理该台节点的资源)
sbin /stop-yarn .sh  #关闭
             yarn的监控界面  http://192.168.17.100:8088/cluster   
关闭所有:stop-all.sh
分别启动各个进程: 执行的命令是“hadoop-daemon.sh start [进程名称]”,这种启动方式适合于单独增加

9. 测试hadoop(词频统计)
1
2
3
4
5
6
7
8
9
cd  /usr/local/src/hadoop/data
vim words  # 输入  hello a,hello b 
cd  /usr/local/src/hadoop
bin /hadoop  fs -put  /usr/local/src/hadoop/data/words  /words  # 把words上传到hdfs,
# 可以在http://192.168.17.100:50070/看到 hdfd默认128M的超过的话回切分多个128M的快来处理
bin /hadoop  jar share /hadoop/mapreduce/hadoop-mapreduce-examples-2 .7.2.jar wordcount  /words  /out  #运行demo
#查看运行状态 http://192.168.17.100:8088
bin /hadoop  fs - ls  /out 
bin/hadoop fs - cat  /out/part-r-00000
10. 词频统计 MapReduce原理简单分析
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
map阶段:
     输入数据:
         < 0 ,"hello a">
         < 8 ,"hello b">
     
     输出数据:
         map(key,value,context) {
             String line = value; //hello a
             String[] words  = value.split("\t");
             for(String word : words) {
                 //hello
                 // a
                 // hello 
                 // b
                 context.write(word,1);
             }
         }
     < hello ,1>
     < a ,1>
     < hello ,1>
     < b ,1>
 
reduce阶段(分组排序):
     输入数据:
         < a ,1>
         < b ,1>
         < hello ,{1,1}>
     
     
     输出数据:
         reduce(key,value,context) {
             int sum = 0;
             String word = key;
             for(int i : value) {
                 sum += i;
             }
             context.write(word,sum);
         }

10. 其他问题
    1. NameNode进程没有启动成功
        1. 没有格式化
        2. 配置文件只copy不修改
        3. hostname没有和ip绑定
        4. ssh的免密码登陆没有配置成功
    2. 多次格式化hadoop也是错误的?
        1. 删除/usr/local/src/hadoop/data/tmp文件夹,从新格式化

参考:
1.  http://www.jikexueyuan.com/course/2475_3.html?ss=1 【hadoop入门】,资料  链接: http://pan.baidu.com/s/1hrh0mhA  密码:w779【 press-2949-package-v1.zip

### Hadoop伪分布式安装教程及配置语法 #### 1. 安装环境准备 在开始Hadoop伪分布式模式的安装之前,需要确保操作系统已经正确配置好Java开发环境以及SSH无密码登录功能。具体操作如下: - **安装JDK**:下载并解压适合版本的JDK到指定目录,并设置`JAVA_HOME`变量[^3]。 - **配置SSH免密登录**:通过执行命令 `ssh-keygen -t rsa` 创建公钥私钥对,并将其添加至授权列表中以便本地节点间通信无障碍。 #### 2. 配置核心参数文件core-site.xml 编辑位于`${HADOOP_HOME}/etc/hadoop/core-site.xml` 的配置文件,在其中定义默认文件系统的URI地址以及其他必要的临时存储位置等属性值: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/app/tmp/hadoop-${user.name}</value> </property> </configuration> ``` 此部分设定指定了NameNode服务监听端口为9000,并设置了用于保存元数据和其他运行时所需资料的工作区路径[^4]。 #### 3. 设置HDFS特定选项 hdfs-site.xml 继续修改 `${HADOOP_HOME}/etc/hadoop/hdfs-site.xml`, 添加副本因子等相关信息来增强单机模拟环境下数据可靠性保障机制: ```xml <configuration> <!-- 设定DataNodes上的block复制级别 --> <property> <name>dfs.replication</name> <value>1</value> </property> <!-- 可选增加其他高级特性支持--> </configuration> ``` 这里我们将replication factor设为了1因为是在同一台机器上测试用途[^4]. #### 4. MapReduce框架调整 mapred-site.xml 最后一步涉及到了MapReduce作业管理器的选择与初始化工作。如果发现当前不存在名为mapred-site.xml模板,则可以从备份copy一份出来重命名为实际使用的名称后再做相应改动: ```bash cp ${HADOOP_HOME}/etc/hadoop/mapred-site.xml.template \ ${HADOOP_HOME}/etc/hadoop/mapred-site.xml ``` 随后打开该文档加入下面的内容片段完成最终定制化处理: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 至此为止所有的基础准备工作均已就绪可以启动各个组件验证整个流程是否正常运作了[^4]。 #### 5. 启动Hadoop集群并提交WordCount任务实例演示 依次开启Namenode,Datanode,YARN ResourceManager 和 NodeManager进程之后就可以尝试跑一些简单的例子比如经典的单词统计程序来看看效果如何啦! ```bash start-dfs.sh && start-yarn.sh # 执行样例应用 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount input output ``` 以上就是关于Apache Hadoop平台下实现伪分布部署方式的一个概括介绍及其关联指令解析[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值