两台电脑上配了两次 看了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
进入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
<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
关闭所有进程。
搞定。