Ubuntu下配置Hadoop环境

1. 下载Hadoop

到官网下载Hadoop:

http://hadoop.apache.org/#Download+Hadoop

这里我使用的是hadoop-2.6.5.tar.gz版本。

2. 安装Hadoop

直接将压缩包解压到目标路径(我选择安装在'/opt'路径下):

sudo tar -zxvf hadoop-2.6.5.tar.gz -C /opt
复制代码

3. 创建Hadoop用户

为了方便管理、配置hadoop,我们最好在ubuntu中创建一个hadoop用户:

sudo useradd -m hadoop -s /bin/bash
复制代码

并设置密码:

sudo passwd hadoop
复制代码

然后为hadoop用户添加管理员权限:

sudo adduser hadoop sudo
复制代码

最后,“注销”用户选择“hadoop”用户重新登陆。

4. 安装SSH、配置SSH无密码登陆

Hadoop中会使用到SSH登陆,所以我们应该安装SSH远程登陆软件,为了方便起见并选择无密码登陆:

sudo apt-get install openssh-server
复制代码

安装完成后,登陆本机:

ssh localhost
复制代码

但是这样每次都需要输入密码,方便起见可以设置:

exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权
复制代码

5. 安装Java环境

由于Hadoop是基于Java开发的,所以要求配置好Java环境,具体配置过程可参见:

http://www.jianshu.com/p/abce8e64bb56

6. 配置Hadoop环境

(1). 首先更改权限,这样hadoop用户可以直接对该文件夹中的文件进行操作:

sudo chown -R hadoop ./hadoop-2.6.5      //"hadoop"是指用户名,"./hadoop-2.6.5"是指被更改权限的文件夹
复制代码

(2). 配置环境变量

sudo gedit /etc/profile
复制代码

添加:

#java
export JAVA_HOME=/opt/jdk1.8.0_144  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
#hadoop
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$HADOOP_HOME/bin:$PATH
复制代码

更新配置文件使生效:

source /etc/profile    //或者重启电脑
复制代码

(3). 因为Hadoop默认是“单机模式”,可以直接通过下面的命令启动Hadoop:

cd /opt/hadoop-2.6.5    //进入hadoop根目录
mkdir ./input      //创建输入文件夹
cp ./etc/hadoop/*.xml ./input    //将某些文件复制到输入文件夹
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'    //执行
cat ./output/*    //查看运行结果
复制代码

(4). 但是记得要删除output输出目录,Hadoop不会覆盖输出目录,否则会出错:

rm -r ./output
复制代码

下面主要介绍下“伪分布式Hadoop的配置”。

7. 配置伪分布式Hadoop环境

(1). 配置启动文件,否则会出现找不到JAVA_HOME错误

首先进入路径:"/hadoop-2.6.5/etc/hadoop/"

cd /opt/hadoop-2.6.5/etc/hadoop/
复制代码

配置hadoop-env.sh:

#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/opt/jdk1.8.0_144        //根据自己的JAVA_HOME填写
复制代码

配置yarn-env.sh:

export JAVA_HOME=/opt/jdk1.8.0_144        //根据自己的JAVA_HOME填写
复制代码
(2). 修改*.xml配置文件

首先进入路径:"/hadoop-2.6.5/etc/hadoop/"

cd /opt/hadoop-2.6.5/etc/hadoop/
复制代码

修改配置文件core-site.xml:

<configuration>
    <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/opt/hadoop-2.6.5/tmp</value>
         <description>Abase for other temporary directories.</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:/opt/hadoop-2.6.5/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/opt/hadoop-2.6.5/tmp/dfs/data</value>
        </property>
</configuration>
复制代码

修改mapred-site.xml:

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
</configuration>
复制代码

修改yarn-site.xml:

<configuration>
        <property>
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</value>
        </property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>127.0.0.1:8032</value>
	</property>
	<property>
	    <name>yarn.resourcemanager.scheduler.address</name>
		<value>127.0.0.1:8030</value>
	</property>
	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>127.0.0.1:8031</value>
	</property>
</configuration>
复制代码

8. 启动Hadoop

(1). 格式化namenode

./bin/hdfs namenode -format
复制代码

成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。 (2). 启动NameNode 和 DataNode 守护进程

./sbin/start-dfs.sh
复制代码

(3). 启动ResourceManager 和 NodeManager 守护进程

./sbin/start-yarn.sh      # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver  # 开启历史服务器,才能在Web中查看任务运行
复制代码

(4). 验证开启成功

jps
复制代码

输出如下:

6338 NameNode
7668 Jps
7541 NodeManager
7237 ResourceManager
6651 SecondaryNameNode
6477 DataNode
复制代码

(5). 创建hdfs输入文件夹 与单机模式不同,伪分布式Hadoop使用的是hdfs的文件系统,而不是Hadoop根路径下的"/input"文件夹,所以我们需要用Hadoop的工具创建hdfs类型的输入文件夹:

hadoop fs -mkdir -p /user/hadoop      //创建用户目录
复制代码

创建输入文件夹:

hadoop fs -mkdir /user/hadoop/input    //创建输入文件夹
hadoop fs -put ./etc/hadoop/*.xml input    //复制到输入文件夹
hadoop fs -ls input    //查看输入文件夹内容
复制代码

(6). 运行:

hadoop jar /opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount input output
复制代码
  • 不启动 YARN 需重命名 mapred-site.xml

如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。 将运行结果取回到本地并删除输出文件夹(防止报错):

rm -r ./output    # 先删除本地的 output 文件夹(如果存在)
./bin/hdfs dfs -get output ./output     # 将 HDFS 上的 output 文件夹拷贝到本机
cat ./output/*
hadoop fs -rm -r output    # 删除 output 文件夹
复制代码

(7). web查看任务窗口:

http://localhost:8088/cluster ##9. 关闭Hadoop

./sbin/stop-all.sh
复制代码
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值