简介:
Hadoop是处理大数据的主要工具,其核心部分是HDFS、MapReduce。为了学习的方便,我在虚拟机上搭建了一个伪分布式环境,来进行开发学习。
一、安装前准备:
1)linux服务器:Vmware 上CentOS6.4 mini安装
2) JDK:jdk-7u65-linux-x64.gz
3) SSH:ssh client
4) YUM源配置妥当:yum list查看
5)Hadoop:hadoop-2.5.2.tar.gz
二、环境配置
1)linux环境基本设置:
vi /etc/sysconfig/network
编辑HOSTNAME=Master
vi
/etc/hosts
#添加
本机IP地址 Master
#关闭防火墙iptables,并设置为开机不启动
service iptables stop
chkconfig iptables off
2)JDK的安装配置
#将jdk解压到指定目录/opt/java
mkdir /opt/java
tar -zxvf jdk-7u65-linux-x64.gz -C /opt/java
#配置环境变量
vi /etc/profile
#在文件最后添加以下内容
export JAVA_HOME=/opt/java/jdk1.7.0_65
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#保存退出,立即生效该配置文件
source /etc/profile
#查看java是否配置好
java -version
重启系统,接下来是配置ssh无密码登陆。配置这个的理由是在启动hadoop可以不用输入密码。
3)配置SSH无密码登录
vi
/etc/ssh/sshd_config
#以下4行的注释需要打开
HostKey
/etc/ssh/ssh_host_rsa_key
RSAAuthentication
yes
PubkeyAuthentication
yes
AuthorizedKeysFile .
ssh
/authorized_keys
#保存,并重启sshd
service sshd restart
#生成免登陆秘钥
ssh
-keygen -t rsa
#一路回车就行。之后会在当前登陆用户主目录中的.ssh文件夹里生成2个文件。
#进入.ssh目录。
cat
id_rsa.pub >> authorized_keys
#现在可以用ssh无密码登陆系统了。
ssh
localhost
PS:如果提示出错,则是没有安装SSH客户端导致的
yum list|grep ssh
#找到ssh客户端
yum install -y ssh客户端名称
三、Hadoop安装与配置
1)上传
通过ftp将下载的hadoop安装包(hadoop-2.5.2.tar.gz)上传到/tmp目录下
2)解压
将hadoop安装包解压到指定目录下
mkdir /opt/hadoop
tar -zxvf hadoop-2.5.2.tar.gz -C /opt/hadoop
3) 配置环境变量
vi /etc/profile
#在文件最后添加以下内容
export HADOOP_HOME=/usr/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib
#保存,并执行source /etc/profile
#cd $HADOOP_HOME,看能否进入hadoop的home目录
4)配置Hadoop
#Hadoop配置文件放在:$HADOOP_HOME/etc/hadoop
#Hadoop主要配置五个文件:hadoop_env.sh,core_site.sh,hdfs_site.xml,mapred-site.xml,yarn-site.xml
#创建hadoop的name与data目录
mkdir
-p
/usr/hdfs/name
mkdir
-p
/usr/hdfs/data
mkdir
-p
/usr/tmp
#hadoop_env.sh
vi hadoop_env.sh
#配置export JAVA_HOME的目录
#core_site.sh
vi core_site.sh
#在configuration节点里面加入以下配置,Master也为为本地ip地址
<property>
<name>hadoop.tmp.
dir
<
/name
>
<value>
/usr/tmp
<
/value
>
<description>A base
for
other temporary directories.<
/description
>
<
/property
>
<!--
file
system properties-->
<property>
<name>fs.defaultFS<
/name
>
<value>Master
:9000<
/value
>
<
/property
>
#hdfs_site.xml
vi hdfs_site.xml
#同样在configuration节点里面加入以下配置,配置分片数和namenode和datanode的目录
<property>
<name>dfs.replication<
/name
>
<value>1<
/value
>
<
/property
>
<property>
<name>dfs.namenode.name.
dir
<
/name
>
<value>
/usr/hdfs/name
<
/value
>
<
/property
>
<property>
<name>dfs.datanode.data.
dir
<
/name
>
<value>
/usr/hdfs/data
<
/value
>
<
/property
>
#mapred-site.xml
#从模板复制一份mapred-site.xml
cp
mapred-site.xml.template mapred-site.xml
vi
mapred-site.xml
#同样在configuration节点里面加入以下配置,因为从0.23.0版本开始,就用新的mapreduce框架YARN来代替旧的框架了,所以,这里要配置成yarn
<property>
<name>mapreduce.framework.name<
/name
>
<value>yarn<
/value
>
<
/property
>
#yarn-site.xml
vi
yarn-site.xml
#同样在configuration节点里面加入以下配置,注意使用Master或者本机的ip地址
<property>
<name>yarn.nodemanager.aux-services<
/name
>
<value>mapreduce_shuffle<
/value
>
<
/property
>
<property>
<description>The address of the applications manager interface
in
the RM.<
/description
>
<name>yarn.resourcemanager.address<
/name
>
<value>Master:18040<
/value
>
<
/property
>
<property>
<description>The address of the scheduler interface.<
/description
>
<name>yarn.resourcemanager.scheduler.address<
/name
>
<value>Master:18030<
/value
>
<
/property
>
<property>
<description>The address of the RM web application.<
/description
>
<name>yarn.resourcemanager.webapp.address<
/name
>
<value>Master:18088<
/value
>
<
/property
>
<property>
<description>The address of the resource tracker interface.<
/description
>
<name>yarn.resourcemanager.resource-tracker.address<
/name
>
<value>Master:8025<
/value
>
<
/property
>
至此,就将Hadoop的基本环境配置好了,现在可以开始我们的Hadoop之旅了!
四、Hadoop启动
1)HDFS格式化
#在启动Hadoop之前,我们需要先将HDFS的namenode格式化
输入命令:hadoop namenode -format
2)启动Hadoop,这几个sh文件在$HADOOP_HOME/sbin
启动命令:
start-dfs.sh
start-yarn.sh
停止命令:
stop-dfs.sh
stop-yarn.sh
3) 查看启动状况
#我们通过java自带的命令来查看
jps
#我们可以看到6个进程
9293 Jps
5762 ResourceManager
4652 NameNode
5850 NodeManager
4907 SecondaryNameNode
4733 DataNode
至此,我们就将Hadoop启动起来了!
我们可以通过浏览器来查看,打开浏览器输入 http://Master的IP:50070 与 http://Master的IP:8088 验证安装。
五、测试Hadoop
#通过运行hadoop自带的wordcount来验证安装是否正确。
#进入hadoop安装的目录,输入以下命令。
mkdir
example
cd
example
#编辑file1.txt与file2.txt
vi
file1.txt
hellozhmsdd
hello hadoop
hello cz
vi
file2.txt
hadoop is ok
hadoop is newbee
hadoop 2.5.2
#拷贝fiel1和file2到输入目录:data目录下
cd
..
hadoop fs -
mkdir
/data
hadoop fs -put -f example
/file1
.txt example
/file2
.txt
/data
#进入HADOOP_HOME目录,运行wordcount例子
hadoop jar .
/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2
.5.2-sources.jar org.apache.hadoop.examples.WordCount
/data
/output
#查看运行结果
hadoop fs -
cat
/output/part-r-00000
#结果如下:
2.5.2 1
cz 1
hadoop 4
hello 3
is 2
newbee 1
ok 1
zhm 1
到这里,环境就已经配置好了,下面就是搞使用Maven开发Hadoop项目了。