您的位置:首页 > 运维架构

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

2016-12-30 19:25 633 查看

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop ubuntu 分布式 java