Hadoop单机、伪分布式集群搭建(十分详细)

 

要搭建Hadoop HA集群请戳这

今天终于把老师布置的项目做完了,闲来无事在机房的电脑上装了Ubuntu(用EasyBCD步骤非常简单,请自行百度),上学期在虚拟机上装了Hadoop,现在可以在实体机搭个伪分布式了。

下面我就一边搭建一边写怎么搭建Hadoop伪分布模式。

 

1.下载jdk并安装

去官网下就可以了,下完之后把文件移到/opt/Java下

guo@guo:~/下载$ mv ./hadoop-2.7.2-src.tar.gz /opt/Hadoop/
mv: 无法创建普通文件"/opt/Hadoop/hadoop-2.7.2.tar.gz": 权限不够
guo@guo:~/下载$ su root #你用sudo也可以,我是直接换到root用户了,写顺手了
密码: 
root@guo:/home/guo/下载# mv ./hadoop-2.7.2.tar.gz /opt/Hadoop/
root@guo:/home/guo/下载# mv ./jdk-8u73-linux-x64.tar.gz /opt/Java/

解压

root@guo:/opt# cd Java/
root@guo:/opt/Java# ll
总用量 177072
drwxr-xr-x 2 root root      4096  3月 14 15:54 ./
drwxr-xr-x 4 root root      4096  3月 14 15:51 ../
-rw-rw-r-- 1 guo  guo  181310701  3月 14 15:47 jdk-8u73-linux-x64.tar.gz
root@guo:/opt/Java# tar -zxvf jdk-8u73-linux-x64.tar.gz 

修改文件所有者(用户:用户组)

 

root@guo:/home/guo# chown -R guo:guo /opt/Java/jdk1.8.0_73/
root@guo:/home/guo# cd /opt/Java/
root@guo:/opt/Java# ll
总用量 177076
drwxr-xr-x 3 root root      4096  3月 14 15:59 ./
drwxr-xr-x 4 root root      4096  3月 14 15:51 ../
drwxr-xr-x 8 guo  guo       4096  1月 30 09:53 jdk1.8.0_73/
-rw-rw-r-- 1 guo  guo  181310701  3月 14 15:47 jdk-8u73-linux-x64.tar.gz

 

设置java环境变量

sudo gedit /etc/profile

在文件最后加上

#java
export JAVA_HOME=/opt/Java/jdk1.8.0_73
export JRE_HOME=/opt/Java/jdk1.8.0_73/jre
export CLASSPATH=$JAVA_HOME/lib
export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

之后更新配置文件

source /etc/profile

然后查看java是否配置成功

guo@guo:~$ java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

恭喜你第一步已经完成了!

 

2.配置SSH无密码登录(报错看这:ssh: connect to host localhost port 22: Connection refused

注:ssh 用户名@主机名 ,如果直接ssh 主机名,它会以你那台机器的当前用户登录,所以另一台机器要有同样的用户。

多台实体机进行通信(发送或者读取数据,namenode和datanode之间)就是借助ssh,在通信过程中如果需要操作人员频繁输入密码是不切实际的,所以需要ssh的无密码登录

安装openssh-server

guo@guo:~$ su root
密码: 
root@guo:/home/guo# apt-get install openssh-server

创建ssh-key(用rsa这种加密算法)

root@guo:/home/guo# ssh-keygen -t rsa

多次回车即可,然后进入~/.ssh目录(“.”表示这是一个隐藏文件)

root@guo:/home/guo# cd ~/.ssh
root@guo:~/.ssh# ll
总用量 16
drwx------ 2 root root 4096  3月 14 16:20 ./
drwx------ 4 root root 4096  3月 14 16:20 ../
-rw------- 1 root root 1679  3月 14 16:20 id_rsa
-rw-r--r-- 1 root root  390  3月 14 16:20 id_rsa.pub

复制一份,改名为公钥

root@guo:~/.ssh# cp id_rsa.pub authorized_keys
root@guo:~/.ssh# ll
总用量 20
drwx------ 2 root root 4096  3月 14 16:22 ./
drwx------ 4 root root 4096  3月 14 16:20 ../
-rw-r--r-- 1 root root  390  3月 14 16:22 authorized_keys
-rw------- 1 root root 1679  3月 14 16:20 id_rsa
-rw-r--r-- 1 root root  390  3月 14 16:20 id_rsa.pub

修改公钥权限(一定要改)

 

guo@guo:~/.ssh$ chmod 600 authorized_keys #4+2 0 0
guo@guo:~/.ssh$ ll
总用量 56
drwx------  2 guo guo 4096  3月 15 18:41 ./
drwx------ 20 guo guo 4096  3月 15 17:56 ../
-rw-------  1 guo guo  389  3月 15 18:41 authorized_keys
-rw-------  1 guo guo 1679  3月 15 18:41 id_rsa
-rw-r--r--  1 guo guo  389  3月 15 18:41 id_rsa.pub
-rw-r--r--  1 guo guo  444  3月 15 18:37 known_hosts

 

然后测试是否成功

 

guo@guo:~/.ssh$ ssh guo
Welcome to Ubuntu 15.10 (GNU/Linux 4.2.0-16-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

0 packages can be updated.
0 updates are security updates.

Last login: Tue Mar 15 18:39:56 2016 from 127.0.0.1
guo@guo:~$ exit
注销
Connection to guo closed.
guo@guo:~/.ssh$ 

 

3.Hadoop单机模式配置

 

去官网下最新的Hadoop(http://apache.opencas.org/hadoop/common/stable/),目前最新的是2.7.2,下载完之后把它放到/opt/Hadoop下

guo@guo:~/下载$ mv ./hadoop-2.7.2.tar.gz /opt/Hadoop/
mv: 无法创建普通文件"/opt/Hadoop/hadoop-2.7.2.tar.gz": 权限不够
guo@guo:~/下载$ su root 
密码: 
root@guo:/home/guo/下载# mv ./hadoop-2.7.2.tar.gz /opt/Hadoop/

解压

guo@guo:/opt/Hadoop$ sudo tar -zxf hadoop-2.7.2.tar.gz 
[sudo] guo 的密码:

解压jdk的时候我用的是tar -zxvf,其中的v呢就是看一下解压的过程,不想看你可以不写。

修改文件所有者(用户:用户组)

 

root@guo:/opt/Hadoop# chown -R guo:guo /opt/Hadoop/hadoop-2.7.2
root@guo:/opt/Hadoop# ll
总用量 224960
drwxr-xr-x  4 root root      4096  3月 14 18:14 ./
drwxr-xr-x  4 root root      4096  3月 14 15:51 ../
drwxr-xr-x 11 guo  guo       4096  3月 14 21:16 hadoop-2.7.2/

 

设置环境变量

guo@guo:/opt/Hadoop$ sudo gedit /etc/profile

在最后加上(这样设置在执行bin/sbin目录下的命令时就不用进入该目录用了)

#hadoop
export HADOOP_HOME=/opt/Hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$HADOOP_HOME/bin

然后更新配置

guo@guo:/opt/Hadoop$ source /etc/profile

修改/opt/Hadoop/hadoop-2.7.2/etc/hadoop下的hadoop-env.sh

guo@guo:/opt/Hadoop$ cd hadoop-2.7.2
guo@guo:/opt/Hadoop/hadoop-2.7.2$ cd etc/hadoop/
guo@guo:/opt/Hadoop/hadoop-2.7.2/etc/hadoop$ sudo gedit ./hadoop-env.sh

进入文件后

export JAVA_HOME=${JAVA_HOME}#将这个改成JDK路径,如下
export JAVA_HOME=/opt/Java/jdk1.8.0_73

然后更新文件配置

guo@guo:/opt/Hadoop/hadoop-2.7.2/etc/hadoop$ source ./hadoop-env.sh

恭喜你单机模式已经配置好了!这时你就可以运行一下wordcount试试了。

 

4.Hadoop伪分布模式配置

修改core-site.xml

guo@guo:/opt/Hadoop/hadoop-2.7.2/etc/hadoop$ sudo gedit ./core-site.xml 
[sudo] guo 的密码: 

进入文件后加入以下内容

<configuration>
   <property>
	<name>fs.default.name</name>
	<value>hdfs://localhost:9000</value>
   </property>
   <property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/Hadoop/hadoop-2.7.2/tmp</value>
   </property>

</configuration>

修改hdfs-site.xml

<configuration>
    <property><!--设置副本数1,不写默认是3份-->
	<name>dfs.replication</name>
	<value>1</value>
    </property>
</configuration>

拷贝mapred-site.xml.template一份,修改为mapred-site.xml

sudo cp mapred-site.xml.template 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>
</configuration>

 

 
 

格式化hdfs

guo@guo:/opt/Hadoop/hadoop-2.7.2# hdfs namenode -format

启动hdfs

 

guo@guo:/opt/Hadoop/hadoop-2.7.2# start-dfs.sh

启动yarn

guo@guo:/opt/Hadoop/hadoop-2.7.2# start-yarn.sh

查看是否成功启动

guo@guo:/opt/Hadoop/hadoop-2.7.2# jps
10144 NodeManager
9668 SecondaryNameNode
9833 ResourceManager
9469 DataNode
10285 Jps
9311 NameNode

如果出现NodeManager DataNode Jps SecondaryNameNode ResourceManage NameNode则表示启动成功(缺一不可)

如果出现下面的情况

 

guo@guo:/opt/Hadoop/hadoop-2.7.2$ jps
程序 'jps' 已包含在下列软件包中:
 * openjdk-7-jdk (您必须启用main 组件)
 * openjdk-6-jdk (您必须启用universe 组件)
 * openjdk-8-jdk (您必须启用universe 组件)
请尝试:sudo apt-get install <选定的软件包>

则执行

root@guo:/etc# update-alternatives --install /usr/bin/jps jps /opt/Java/jdk1.8.0_73/bin/jps 1
update-alternatives: 使用 /opt/Java/jdk1.8.0_73/bin/jps 来在自动模式中提供 /usr/bin/jps (jps)

 

 

查看resourcemanager:http://localhost:8088

查看namenode:http://localhost:50070

恭喜你伪分布模式已经配置好了!

 

 

 

下一篇博客我会专门写一下如何运行wordcount

 

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光于前裕于后

您的打赏将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值