ubuntu14.04 配置hadoop 单机+伪分布式

来源:互联网 发布:最新手机淘宝开店教程 编辑:程序博客网 时间:2024/05/17 06:42

两台电脑上配了两次 看了n多教程 遇到小问题不少 记录一下  感谢各位教程 主要参考了两篇。

1.Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

2.Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)


环境:Ubuntu-Kylin 14.04.1    hadoop-1.2.1

1.添加用户到系统用户

~$ sudo addgroup hadoop  ~$ sudo adduser --ingroup hadoop hadoop
添加管理员权限

~$ sudo usermod -aG root hadoop
一开始我用的指令是
sudo usermod -aG admin hadoop
系统提示没有admin这个组,然后就
~$ sudo gedit /etc/sudoers

看了一下,admin那行是注释的。可以直接在sudoers里面给hadoop用户赋予权限 在最后一行加上hadoop ALL=(ALL:ALL) ALL

~$ sudo usermod -aG root hadoop

的效果是一样的。

2.安装ssh

因为hadoop通信使用ssh,所以得安装。。不用下载安装包,直接输入(一开始我还以为得上网找安装包)

~$ sudo apt-get install openssh-server

安装之后启动服务

~$ sudo /etc/init.d/ssh start  

然后输入命令 看服务是否正常启动

~$ ps -e | grep ssh  


这就对了。

然后要设置免密码登录,生成公钥和私钥

记得下面要变成hadoo身份来设置公钥和私钥(输入su -hadoop就变了),一个身份对应一个公钥私钥 应该是这样的。

~$ssh-keygen -t rsa -P ""  
生成公钥和私钥之后 就按默认保存就好,如果之前生成过会让你选择是否覆盖,覆盖就好了。

然后授权一下

~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  
现在登录就不需要密码了,试一下就知道了

退出

~$ exit

来回登录退出几次,不需要密码了。

3.安装JAVA JDK

这个两种方式都可以的,可以从网上下jdk,然后手动安装 也可以直接

<pre name="code" class="html">~$ sudo apt-get install openjdk-7-jdk 
如果是自己下载jdk安装需要配置环境  网上教程很多。

输入

~$ java -version
看到当前java版本号就对了。


4.安装hadoop

我装的是hadoop 1.2.1

去官网下载就行了

下载完解压到想要的文件夹。我也是放在了/usr/local/hadoop里

确保安装hadoop的操作是在hadoop身份下完成的。

~$ sudo chown -R hadoop:hadoop /usr/local/hadoop


5.设置hadoop-env.sh

进入hadoop安装目录的conf文件夹,打开hadoop-env.sh(具体路径视情况而定)

~$ sudo gedit /usr/local/hadoop/conf/hadoop-env.sh
最后添加三句

            export JAVA_HOME=/usr/lib/jvm/java-7-openjdk (视你机器的java安装路径而定)
            export HADOOP_HOME=/usr/local/hadoop
            export PATH=$PATH:/usr/local/hadoop/bin
保存,然后输入指令

~$ source /usr/local/hadoop/conf/hadoop-env.sh 
使其生效。

6.写配置文件 完成伪分布式搭建

接下来要写配置文件来完成伪分布式的搭建。

编辑conf文件夹下面的三个xml文件

core-site.xml:

<configuration>      <property>          <name>fs.default.name</name>          <value>hdfs://localhost:9000</value>      </property>      <property>          <name>hadoop.tmp.dir</name>          <value>/usr/local/hadoop/tmp</value>      </property>  </configuration>  
hdfs-site.xml:
<configuration>      <property>          <name>dfs.replication</name>          <value>1</value>      </property>      <property>          <name>dfs.name.dir</name>          <value>/usr/local/hadoop/hdfs/name</value>      </property>      <property>          <name>dfs.data.dir</name>          <value>/usr/local/hadoop/hdfs/data</value>      </property>  </configuration>  
mapred-site.xml:

<configuration>      <property>          <name>mapred.job.tracker</name>          <value>localhost:9001</value>      </property>  </configuration> 


7.开始运行hadoop

先输入(以hadoop身份运行)

~$ source /usr/local/hadoop/conf/hadoop-env.sh 
让配置生效,然后格式化namenode

~$ hadoop namenode -format  


然后启动hadoop的各种进程

<pre name="code" class="html">~$ cd /usr/local/hadoop/bin../bin$ start-all.sh


输入

<pre name="code" class="html">../bin$<span style="font-family: Arial, Helvetica, sans-serif;"> jps</span>
如果显示

6个都在 就对了。


之后可以在浏览器上查看hadoop的运行状态

http://localhost:50030/     - Hadoop 管理介面
http://localhost:50060/     - Hadoop Task Tracker 状态
http://localhost:50070/     - Hadoop DFS 状态


运行一个wordcount实例

在dfs上创建一个input文件夹

<pre name="code" class="html"><pre name="code" class="html">/usr/local/hadoop$ hadoop dfs -mkdir input
向input文件夹里随便放几个文件(把conf本地磁盘上)
/usr/local/hadoop$ hadoop dfs -copyFromLocal conf/* input 

运行自带的示例程序

/usr/local/hadoop$ hadoop jar hadoop-examples-1.2.1.jar wordcount input output  

运行结束后查看输出文件
<pre name="code" class="html"><pre name="code" class="html">/usr/local/hadoop$ hadoop dfs -cat output/* 

统计各个单词的个数

/usr/local/hadoop$ bin/stop-all.sh

关闭所有进程。


搞定。










0 0
原创粉丝点击