centos搭建hadoop单机模式与伪分布模式

一、安装jdk

安装过程可参考http://blog.csdn.net/tianyunzqs/article/details/78758804

二、添加用户,并设置免密登陆

1、 添加用户

1)创建用户

useradd -m hadoop -s /bin/bash

这条命令创建了可以登陆的 hadoop用户,并使用 /bin/bash作为shell

2)之后设置登陆密码

passwd hadoop

输入2次密码就可以了(密码可以随意,比如:hadoop)

3)为hadoop用户设置管理员权限,方便部署环境

visudo

新增hadoop    ALL=(ALL)       ALL

Ps:可直接将上一行复制下来,再将root改为hadoop


2、 SSH安装

1) 退出root用户(可直接用ctrl+d快捷键,也可以用exit命令)

2) 安装SSH,

集群、单节点模式都需要用到 SSH登陆(类似于远程登陆,你可以登录某台 Linux主机,并且在上面运行命令),一般情况下,CentOS默认已安装了 SSH clientSSH server,打开终端执行如下命令进行检验:

rpm -qa | grep ssh

如果返回的结果如下图所示,包含了 SSH client SSH server,则不需要再安装


如果需要安装,可用如下命令安装:

sudo yum install openssh-clients
sudo yum install openssh-server

3) 安装好SSH后,测试是否可用:

ssh localhost

密码是刚才设置的hadoop用户密码

3、 设置免密登陆

结点之间通信都需要登陆,所以设置免密登陆会使通信无障碍。

1) 退出刚才的ssh,登陆hadoop用户

2) 利用ssh-keygen生成密钥,并将密钥加入到授权中

exit                                # 退出刚才的 ssh localhost
cd ~/.ssh/                          # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa                   # 会有提示,都按回车就可以,执行完后会在.ssh文件夹下多出id_rsa和id_rsa.pub两个文件,分别为私钥和公钥(成对出现)
cat id_rsa.pub >> authorized_keys   # 加入授权,执行完后,.ssh文件夹下会多出authorized_keys文件,授权文件
chmod 600 ./authorized_keys         # 修改文件权限




3)再次登陆localhost就可以不用密码了,测试完后,退出。

 

三、安装hadoop

1) 下载hadoop

https://mirrors.cnnic.cn/apache/hadoop/common/ 下载hadoop,本文使用hadoop-2.7.4.tar.gz

2) 利用scp将hadoop压缩文件上传到服务器,并将其解压到/usr/local/文件夹下。

sudo tar -zxvfhadoop-2.7.4.tar.gz -C /usr/local/

3)进入/usr/local/目录,修改hadoop-2.7.4的目录权限

sudo chown -Rhadoop:hadoop hadoop-2.7.4/

四、Hadoop单机模式

Hadoop 默认模式为非分布式模式,无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。

现在我们可以执行例子来感受下Hadoop 的运行。Hadoop 附带了丰富的例子(运行 ./bin/hadoopjar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。

在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。


注意Hadoop默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除。

五、Hadoop伪分布式

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

1)在设置 Hadoop 伪分布式配置前,我们还需要设置 HADOOP 环境变量,

执行命令vim ~/.bashrc,打开 ~/.bashrc文件,在文件最后添加如下内容:

# HadoopEnvironment Variables
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

保存后退出,执行命令source~/.bashrc使其立即生效

2)修改hadoop的配置文件,位于/usr/local/Hadoop-2.7.4/etc/hadoop/中,伪分布式需要修改2个配置文件 core-site.xml  hdfs-site.xml Hadoop的配置文件是 xml 格式,每个配置以声明 property name value的方式来实现。

修改配置文件 core-site.xml,将如下内容替换原来内容:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporarydirectories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

修改配置文件 hdfs-site.xml,将如下内容替换原来内容:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

3) 配置完成后,格式化NameNode

./bin/hdfs namenode -format

成功的话,会看到 “successfully formatted” “Exitting with status0”的提示,若为 “Exitting with status 1”则是出错。

4)接着开启 NaneNode  DataNode 守护进程(启动hadoop):

./sbin/start-dfs.sh

5)启动hadoop后,输入jps,列出如下进程,说明hadoop环境搭建成功

6)测试hdfs

hdfs dfs -put README.txt /README.txt
hdfs dfs -cat /README.txt

如果能打印出README.txt中的内容,说明hdfds文件系统正常。


7)在浏览器输入http://111.230.248.70:50070即可看到hadoop的相关信息


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值