分享

Hadoop

 qweertt4747 2017-04-12

#环境

该教程系统环境为 Ubuntu15.04(其他版本的Linux操作系统可以借鉴) ,Hadoop版本为Hadoop2.6.0


#创建一个Hadoop的用户

在安装 Hadoop 之前,尽量创建一个专门的 Hadoop 用户,我的Hadoop用户名:hadoop,密码自己设计一个简单容易记的。


[ -m ] 使用者目录如果不在则自动创建

[ -s ]  使用 /bin/bash 作为 shell


Ubuntu将用户加入用户组和cenOS不同,要注意。(centOS将普通用户添加到用户组和免密码(含Ubuntu)使用 sudo


#更新apt

sudo apt-get update 

如果遇到Hash校验和不符等问题可以更换源来解决(Ubuntu15.04 更换源 · Linux闲谈杂记1)


#安装 SSH server、配置SSH无密码登录


SSH了解:

SSH 分 openssh-client(Ubuntu已默认安装) 与 openssh-server(sudo apt-get install openssh-server,

前者用来登录到别的机子上,后者为其他机子登录到本机。


ssh-server配置文件位于/ etc/ssh/sshd_config


启动SSH服务:

sudo /etc/init.d/ssh stop

sudo /etc/init.d/ssh start


这里我们只需要安装 openssh-server

sudo apt-get install openssh-server

然后登录到 本机

ssh localhost

exit //退出刚才的登录


利用 ssh-keygen 生成密钥,并将密钥加入到授权中:(Linux/UNIX下使用ssh-keygen设置SSH无密码登录)


将公钥 id_rsa.pub 加入 授权 authorized_keys 中



#下载安装JDK

下载jdk1.7(官方下载

根据操作系统选择合适的版本(我选择的是Linux x64 ××.tar.gz)



解压到安装的位置(我解压到/usr/Java/jdk××)

tar -zxvf jdk××(全名).tar.gz  -C /usr/java/

tar命令

-c 压缩

-x 解压

-z (gzip)

-v 显示

-f 后面接 要处理文件的名字

-C 后面接 处理之后的目标路径

配置java环境变量(可以在/etc/profile、/etc/bashrc、/etc/environment等多个文件中配置)

vim /etc/profile


java -version



#下载安装Hadoophttp://mirrors./apache/hadoop/common/hadoop-2.6.0/

下载 hadoop××.tar.gz 这个格式的文件,这是编译好的,包含 src 的则是 Hadoop 源代码。

同时也可以下载 hadoop-2.x.y.tar.gz.mds 用来校验 hadoop××.tar.gz 的完整性。



进入下载目录:(对比md5检验值)

cat./hadoop-2.6.0.tar.gz.mds| grep 'MD5'# 列出md5检验值
md5sum./hadoop-2.6.0.tar.gz| tr "a-z""A-Z"# 计算md5值,并转化为大写,方便比较


将 Hadoop 安装至 /usr/local/ 中:

sudo tar-zxvf /home/peerslee/下载/hadoop/hadoop-2.6.0.tar.gz -C /usr/local

cd /usr/local/

sudo mv ./hadoop-2.6.0/ ./hadoop 

sudo chown -R hadoop:hadoop ./hadoop# 修改文件权限,这部真的很重要(我被这步坑过)


配置Hadoop环境变量(同Java环境变量):



#Hadoop伪分布式节点既作为 NameNode 也作为 DataNode配置

1.core-site.xml

[plain] view plain copy
  1. vim /usr/local/hadoop/etc/hadoop/core-site.xml  
  2. <configuration>  
  3.     <property>  
  4.         <name>hadoop.tmp.dir</name>  
  5.         <value>file:/usr/local/hadoop/tmp</value>  
  6.         <description>Abase for other temporary directories.</description>  
  7.     </property>  
  8.     <property>  
  9.         <name>fs.defaultFS</name>  
  10.         <value>hdfs://localhost:9000</value>  
  11.     </property>  
  12. </configuration></span>  
2.hdfs-site.xml  

[plain] view plain copy
  1. vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml  
  2. <configuration>  
  3.     <property>  
  4.         <name>dfs.replication</name>  
  5.         <value>1</value>  
  6.     </property>  
  7.     <property>  
  8.         <name>dfs.namenode.name.dir</name>  
  9.         <value>file:/usr/local/hadoop/tmp/dfs/name</value>  
  10.     </property>  
  11.     <property>  
  12.         <name>dfs.datanode.data.dir</name>  
  13.         <value>file:/usr/local/hadoop/tmp/dfs/data</value>  
  14.     </property>  
  15. </configuration></span>  

3.在hadoop-env.sh配置JAVA_HOME:

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh 


 
4.配置完成后,执行 namenode 的格式化:

hdfs namenode -format



5.start-all.sh/stop-all.sh测试:


jps 看现在都哪些进程跑起来了,如果有进程没跑起来,可以耐心查看日志,然后GG。









6.web访问

可以通过http://localhost:50070/访问Hadoop的web界面查看信息





#运行Hadoop伪分布式实例

1.首先创建用户目录


2.将需要处理的文件 -put 到 分布式文件系统 的 /uer/hadoop/input 文件夹中
hdfs dfs -put etc/hadoop/*.xml input

hdfs dfs -ls input #检测复制


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

运行MapReduce作业,从分布式文件系统下 input 文件夹中提取输入文本



hdfs dfs -cat output/* 查看输出结果



将结果提取到本机上
rm -R ./output #将原来的output删掉

hdfs dfs -get output output

cat ./output/*





注意!

Hadoop运行程序的时候,默认输出目录input不能存在,因此一定要在执行之前将其删除

注意!!(被坑过)
























    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多