peace唠叨

Hadoop简单入门之伪分布式搭建

Hadoop简单入门教学,服务器单机完成伪分布的搭建,介绍Hadoop配置,启动,以及简单测试。我的机器:阿里云服务器,64位,Java64,Hadoop2.4.1(64)

所有软件下载百度云 密码:uup8

讲在开头:对于笔者的完全分布式环境请见该文:Hadoop完全分布式安装

写文章不易,欢迎大家采我的文章,以及给出有用的评论,当然大家也可以关注一下我的github;多谢;

1,Hadoop简单介绍:

Apache Hadoop是一款支持数据密集型分布式应用,并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。Hadoop是根据Google公司发表的MapReduceGoogle文件系统的论文自行实现而成。

Hadoop框架透明地为应用提供可靠性和数据移动。它实现了名为MapReduce的编程范式:应用程序被分区成许多小部分,而每个部分都能在集群中的任意节点上运行或重新运行。此外,Hadoop还提供了分布式文件系统,用以存储所有计算节点的数据,这为整个集群带来了非常高的带宽。MapReduce和分布式文件系统的设计,使得整个框架能够自动处理节点故障。它使应用程序与成千上万的独立计算的电脑和PB级的数据。现在普遍认为整个Apache Hadoop“平台”包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS)以及一些相关项目,有Apache Hive和Apache HBase等等。

2.开发环境搭建

主要环境:java 和Hadoop

2.1Java开发环境搭建

  1. 下载jdk8的安装包:jdk-8u60-linux-x64.tar.gz;这是linux系统的安装包;
    可以下载我分享的链接:百度云链接;
  2. 安装jdk8步骤:万试万灵的步骤:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1.复制文件到云服务器
sudo scp -r /home/peace/jdk-8u60-linux-x64.tar.gz root@192.168.1.127:/root/
2登陆云服务器:
##创建文件夹,和解压文件
$ mkdir /usr/lib/jvm
$ mv jdk-8u60-linux-x64.tar.gz /usr/lib/jvm/
$ cd /usr/lib/jvm/
$ tar -zxvf jdk-8u60-linux-x64.tar.gz
$ rm ./jdk-8u60-linux-x64.tar.gz
$mvjdk-8u60 jdk8
##配置环境变量:
$vi /etc/environment
在environment中修改PATH,追加JDK路径,添加CLASSPATHJAVA_HOME后如下:
export JAVA_HOME=/usr/lib/jvm/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
PATH="/usr/lib/jvm/jdk8/bin:/usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
##告诉系统,我们使用的sun的JDK,而非OpenJDK了:
$update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk8/bin/java 300
$update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk8/bin/javac 300
$update-alternatives --config java
##测试一下运行 java -version
可以看到版本号 :
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

2.2网络环境搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1.1修改主机名
vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=itcast ###

1.2修改IP
两种方式:
第一种:通过Linux图形界面进行修改(强烈推荐)
进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.1.101 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply

第二种:修改配置文件方式(屌丝程序猿专用)
vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
BOOTPROTO="static" ###
HWADDR="00:0C:29:3C:BF:E7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
IPADDR="192.168.1.101" ###
NETMASK="255.255.255.0" ###
GATEWAY="192.168.1.1" ###

1.3修改主机名和IP的映射关系
vim /etc/hosts

192.168.1.101 itcast

1.4关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off

1.5重启Linux
reboot

2.3Hadoop开发环境搭建(安装hadoop2.4.1)

先上传hadoop的安装包到服务器上去/home/hadoop/ 然后解压到该目录下;
注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
伪分布式需要修改5个配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
第一个:hadoop-env.sh
vim hadoop-env.sh
#第27行
export JAVA_HOME=/usr/java/jdk1.7.0_65

第二个:core-site.xml

<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://weekend-1206-01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<!--你自己定义的目录-->
<value>/home/hadoop/hadoop-2.4.1/tmp</value>
</property>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.127:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/peace/app/hadoop-2.4.1/tmp</value>
</property>
</configuration>
第三个:hdfs-site.xml hdfs-default.xml (3)
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>

第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

第五个:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.1.127</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

2.4将hadoop添加到环境变量

1
2
3
4
vim /etc/proflie
export HADOOP_HOME=/itcast/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

3.测试

1.格式化namenode(是对namenode进行初始化)

1
hdfs namenode -format (hadoop namenode -format)

2.启动hadoop

1
start-all.sh

3.验证是否启动成功

1
2
3
4
5
6
7
使用jps命令验证
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode

web页面观看:
http://192.168.1.101:50070 (HDFS管理界面)
http://192.168.1.101:8088 (MR管理界面)
笔者此处使用的是阿里云服务器进行测试
1
2
4.配置配置ssh免登陆(请参考改文章:http://blog.csdn.net/peace1213/article/details/51334508)
5.文件系统hdfs测试:

1
2
3
4
5
6
7
8
存储文件:
hadoop fs -put hadoop-2.4.1.tar.gz hdfs://115.29.52.140:9000/
查看文件:
hadoop fs -ls hdfs://115.29.52.140:9000/
显示如下:
-rw-r--r-- 1 root supergroup 138656756 2016-04-11 15:46 hdfs://115.29.52.140:9000/hadoop-2.4.1.tar.gz
get文件:
hadoop fs -get hdfs://115.29.52.140:9000/hadoop-2.4.1.tar.gz

本章介绍到这里
来自伊豚(wpeace.cn)

Peace wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!