Ubuntu16配置Hadoop伪分布模式

来源:互联网 发布:仿卷皮网淘宝客源码 编辑:程序博客网 时间:2024/06/10 09:14

一:配置Java环境
0.ubuntu16安装配置jdk http://www.th7.cn/system/lin/201607/173578.shtml
1.打开/etc/environment ,配置JAVA_HOME =java安装路径
2.在etc/environment中配置PATH,追加:java安装路径/bin
二:配置Hadoop环境
1.打开/etc/environment,配置HADOOP_INSTALL,(为什么不是HADOOP_HOME,因为在HADOOP的安装目录下,bin和sbin下的文件会动态创建HADOOP_HOME),如果我们加了会干扰HADOOP_HOME的创建。
2.配置HADOOP_INSTALL=/usr/hadoop/hadoop-2.7.3(hadoop安装目录),在PATH中加入:/usr/hadoop/hadoop-2.7.3/bin:/usr/hadoop/hadoop-2.7.3/sbin ,注意冒号。
3.使用source /etc/environment使配置立即生效.
4使用echo $HADOOP_INSTALL查看配置。
5.使用hadoop version若提示JAVA_HOME不存在,存在未生效问题,可以重启。

                                Hadoop(http://www.powerxing.com/install-hadoop/)

一:Hadoop三种模式
1.独立模式
2.伪分布式
3.完全分布式
二:
处理海量数据,hadoop the definitive guide 下载地址http://download.csdn.net/detail/xinconan1992/8743847
1.存储
分布式文件系统:HDFS,hadoop distributed file system
2.运算
mapreduce,map()+reduce
三:
1.独立模式
(1)没有守护进程
(2)local FileSystem和 local MR job runner(mapreduce作业运行器?)
(3)hadoop fs -ls / 查看独立模式下的文件系统,会输出当前系统根目录下所有目录
2.伪分布模式(所有程序在一个主机上)
(0)所有文件在hadoop安装目录/etc/hadoop,配置伪分布模式先把 hadoop安装目录 cp -r /usr/hadoop/hadoop-2.7.3/etc/hadoop hadoop_pseudo
(1)配置core-site,存在多个数据节点用来存储海量数据
Name-node 名称节点 存放文件节点目录 NN ,名称节点备份 secondaryNamenode
Data-node 数据节点 DN,数据节点存在若干个备份 replication
(2)配置core_site.xml的fs.defaultFS的值是hdfs://localhost/,代表名称节点存储在本机(hdfs代表分布式文件系统)

<property>    <name>fs.defaultFS</name>    <value>hdfs://localhost/</value></property>
    (3)配置hdfs-site,属性dfs.replication,伪分布模式下只有一个数据节点,所有他的值是1。
<property>    <name>dfs.replication</name>    <value>1</value></property>
    (4)配置mapred-site,需要根据mapred-site.xml.templated创建,  cp mapred-site.xml.template mapred-site.xml   配置mapreduce.framework.name,配置mapreduce框架为yarn。
<property><name>mapreduce.framework.name</name><value>yarn</value></property>
    (5)配置yarn-site,配置yarn.resourcemanager.hostname(资源管理器主机名称)为localhost,配置yarn.nodemanager.aux-services为mapreduce-shuffle
<property>                            <name>yarn.resourcemanager.hostname</name>    <value>localhost</value></property><property>    <name>yarn.nodemanager.aux-services</name>    <value>mapreduce_shuffle</value></property>
    (6)想在主机之间进行通信,安装ssh ,使用 **which ssh**,出现/usr/bin/ssh是不行的,这里(apt-cache search ssh)使用安装**apt-get install ssh**,安装ssh成功,which ssh-keygen出现/usr/bin/ssh-keygen        (ssh: public key:给别人                private key:自己            用private key 加密,可以用public key解密。Public key 加密的数据只能private key解密,private key只能public key解密。)    (7)使用**ssh-keygen -t rsa -P '' -f  ~/.ssh/id_rsa**  ,-t rsa 是一个算法  -P '',没有口令,-f  ~/.ssh/id_rsa是生成目录        (cd ~命令是,进入用户在该系统的home目录,例如xz用户,则进入/root/xz目录)    (8)**cat id_rsa.pub >> authorized_keys**  现在ssh localhost命令相当于以ssh连接到本机,exit可退出,产生known_hosts文件    (9)以**ssh localhost**登陆,第一次需要输入yes,第二次不需要输入任何东西,执行hadoop文件格式化命令 **hadoop namenode -format**    (10)启动hadoop,在hadoop安装目录下的etc文件夹中            **start-dfs.sh --config $HADOOP_INSTALL/etc/hadoop_pseudo            start-yarn.sh --config $HADOOP_INSTALL/etc/hadoop_pseudo**    (11)at http://localhost:50070/ for the namenode, http://localhost:        8088/ for the resource manager, and http://localhost:19888/ for the history server. You         can also use Java’s jps command to see whether the processes are running.     (12)        **stop-yarn.sh            stop -dfs.sh**    (13)在安装目录的etc的文件夹下可以用 **start-all.sh --config $HADOOP_INSTALL/etc/hadoop_pseudo** 来启动,会依次启动dfs和yarn    (14)配置HADOOP_CONF_DIR指定伪分布模式文件目录  **export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop_pseudo**(export设置只对当前的bash登录session有效。这是存在内存里面的。你可以写入文件一般的文件。之后source它。或者放到/etc/profile 等等的位置里,不同的地方效果不同)    (15)**hadoop fs -ls /** 查看目录下文件和文件夹    (16)hadoop文件系统下创建目录  **hadoop fs -mkdir /user/**   ,再查看目录 hadoop fs -ls /  ,可以看到user文件夹    (17)问题1:第二次开机启动使用 start-all.sh --config $HADOOP_INSTALL/etc/hadoop_pseudo,发现namenode不能启动,需要在home目录下新建hadoop_tmp,修改core-site文件
<property>    <name>hadoop.tmp.dir</name>    <value>/usr/local/hadoop_tmp</value>    <description>A base for other temporary directories.</description></property>
    问题2:而且HADOOP_CONF_DIR只对一次会话有效。        在/etc/profile末尾中写入 **export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop_pseudo**
0 0