Hadoop学习笔记1:伪分布式环境搭建

Hadoop学习笔记1:伪分布式环境搭建

虚拟机:Ubuntu16.0,jdk1.8.0_111, hadoop-2.7.3
hadoop2.7.3下载:
http://apache.fayea.com/hadoop/common/hadoop-2.7.3/
jdk1.8.0_111下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在整个配置及运行时注意输入命令的路径

1.Java环境
1)解压到/usr/local:

yhh@ubuntu:~$ sudo tar -zxvf ./jdk-8u111-linux-x64.tar.gz -C /usr/local

2)配置jdk环境:sudo vim ~/.bashrc
在bashrc文件开头复制如下:

export JAVA_HOME=/usr/local/jdk1.8.0_111
export JRE_HOME=/usr/local/jdk1.8.0_111/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

使配置生效:source ~/.bashrc
3)查看java配置成功及版本:java -version

2.ssh配置
1)安装:sudo apt-get install openssh-server
(如果提示安装失败找不到**,可以先更新一下
sudo apt-get update)
2)安装后,测试(开始未配置需要输入密码)ssh localhost
3)配置无需密码登录

cd ~/.ssh/  #进入失败,先执行下ssh localhost
ssh-keygen -t rsa  # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys

4)测试(配置成功无需输入密码ssh localhost

3.hadoop安装
1)切换到home目录下,解压hadoop到 /usr/local:
sudo tar -zxvf ./hadoop-2.7.3.tar.gz -C /usr/local
2)将文件夹名改为hadoop
cd /usr/local
sudo mv ./hadoop-2.7.3 ./hadoop

3)修改文件夹权限(**为你的ubuntun当前用户名,如我的yhh)sudo chown -R ** ./hadoop
4)hadoop版本测试

cd /usr/local/hadoop
./bin/hadoop version


5)hadoop文件配置(在/usr/local/hadoop目录下)
core-site.xml 配置:sudo vim ./etc/hadoop/core-site.xml
修改为如下

<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
         <value>file:/usr/local/hadoop/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 配置修改为如下:sudo vim ./etc/hadoop/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>

经过以上1,2,3步骤后,进行haoop的初次格式化(只进行一次初始化,以后重启电脑或者重新打开终端可以直接启动hadoop):

./bin/hdfs namenode -format

格式化成功如下:

启动:./sbin/start-dfs.sh
查看:jps
通过web查看:http://localhost:50070
成功如下图:

重启Ubuntun或者重新打开终端测试一下:

4.格式化出错常见错误原因
1)jdk配置不对
2)sudo chown -R ** ./hadoop # 修改文件夹权限,此处不对导致格式化时无法在此目录下创建文件夹
3)有的用profile文件进行配置,重启或者重新打开终端时,需要重新source /etc/profile或者source ~/.profile
启动与关闭#
4)针对 DataNode 没法启动的解决方法
./sbin/stop-dfs.sh # 关闭
rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format # 重新格式化 NameNode
./sbin/start-dfs.sh # 重启
5.运行hadoop自带的例子
伪分布式、分布式,hadoop运行时需要将数据上传到hdfs目录下,所有需要先在hdfs创建存储数据的文件夹;再次运行同一个例子时需要先删除上次的输出。
1)运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar 可以看到所有例子

2)在hdfs下创建文件夹(这里直接创建一个/input)

./bin/hdfs dfs -mkdir /input

3) grep例子
这里将/etc/hadoop/下的xml文件输入到hdfs下的input文件夹中,作为输入数据

./bin/hdfs dfs -put ./etc/hadoop/*.xml /input

运行grep例子,结果输出到output文件夹下

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /input/*.xml /output 'dfs[a-z.]+'

查看output文件夹下的结果

./bin/hdfs dfs -cat /output/*


可以用./bin/hdfs dfs -ls /output 查看/output下的文件。
4)wordcount例子
先在/usr/local下创建一个文件夹(这里随便创个文件夹叫input),在/input下建两个txt文件,然后将/usr/local/input下的两个txt文件上传到hdfs下的input文件夹下,作为wordcount例子的输入。

cd /usr/local
mkdir ./input
cd ./input
sudo vim f1.txt
#f1中输入:
hello hadoop
hello hdfs
hello mapreduce
hello yarn
sudo vim f2.txt
#f2中输入:
hello hadoop
hello hdfs
hello mapreduce
hello yarn

先删除 上个例子生成的output 文件夹
./bin/hdfs dfs -rm -r /output

上传文件到hdfs下的input文件夹

./bin/hdfs dfs -put /usr/local/input/f*.txt /input

可以查看下hdfs下的input文件夹的内容

./bin/hdfs dfs -ls /input

运行wordcount例子

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input/f*.txt /output

查看输出:./bin/hdfs dfs -cat /output/*
也可以将 HDFS 上的 output 文件夹拷贝到本机,查看输出

./bin/hdfs dfs -get /output ./output    
cat ./output/*


关闭hadoop命令:
./sbin/stop-dfs.sh

至此,简单的伪分布式hadoop环境搭建及简单测试成功。
参考:
一些大牛的博客:
(http://www.powerxing.com/install-hadoop/)
(http://www.cnblogs.com/zjfstudio/p/3859704.html)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值