一.首先安装JDK和HADOOP
1.在官方网站上下载java的开发包即JDK,扩展名是tar.gz的比较好,个人不太推荐RPM的;
2.下载之后,解压缩,
tar zxvf xxx.tar.gz ./jdk
sudo mv ./jdk /usr/lib/jdk
我将其存放在
/usr/lib/jdk
这个目录下了
3.同时呢,也下载一下hadoop吧,hadoop的下载地址,百度搜完不是广告的那个,第一个就是了。。。。
在release下下载,同样解压缩,方法同上,我放在了
/usr/lib/hadoop
这个目录中
4.最关键的,配置环境变量
这里面等一下说一个问题,就是按照网上的一些方法,会产生一些错误,导致eclipse这些软件报错。
环境变量可以在 ~/.bashrc 这里更改,通过bash的启动,来实现更新环境变量。
另一种方法是直接修改/etc/environment 这个文件。
这里面我们以第一种为例,比较常用,第二种可能会因为linux的版本不同而会产生些歧义。
sudo nano ~/.bashrc
这里不要忘记前面那个点,隐藏文件(往往也都是系统文件)
找一个地方填上几句话:
export JAVA_HOME=/usr/lib/jdk
export JRE_HOME=/usr/lib/jdk/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib/dt.jar:$JAVA_HOME/lib/tools$
export HADOOP_HOME=/usr/lib/hadoop
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:$PATH
在上面,我把hadoop和java的一并配置好了。
这里面顺便提一个我实际部署到时候遇到的一个问题。
我们在使用eclipse的时候,由于eclipse是绿色软件,直接解压缩就可一用了,是通过环境变量来找到java路径的,
网上的配置教程配置会提示找不到JRE,因为这里面的JRE_HOME环境变量没有被放在PATH中,这个要注意,截至目前,网上现有的教程有问题。
5.然后,保存好这个~/.bashrc文件,nano中ctrl+O搞定。
更新一下,立即生效
source ~/.bashrc
没有提示出错,就是这个脚本没问题。这个脚本实际上是在bash解释器启动时候自动运行的一个脚本,export命令可以用来更新环境变量。
这样处理,便可以在每次开机的时候,自动去动态更新环境变量了。
试一下,terminal中输入
java -version
hadoop version
有回显,基本没啥大问题。
二.配置ssh
网上其他配置教程我自己实践发现有点儿问题,这里等下一并指出。
首先,确保安装ssh了,ubuntu默认都有安装。
如果没有安装的话:
sudo apt-get install ssh
首先,配置ssh免密,网上给出 命令行带参数配置方法:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa其实,我还是比较喜欢手动配置:
ssh-keygen
按照提示生成密钥即可,空密码直接按三个回车即可。
然后:
cd ~/.ssh
cp ./id_dsa.pub ./authorized_keys
或
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys最好改下权限:
chmod 600 ./authorized_keys
或 chmod go-x ./authorized_keys 都行
配置好免密登录后,试一试吧:
ssh localhost
如果提示:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Sun Oct 12 13:27:58 2014 from localhost登录成功~
但是,大部分都会失败,因为ubuntu默认没有安装ssh server版本的,至少我的是失败的,会提示:
ssh connect refused!
需要我们安装一下server版本的:
sudo apt-get install openssh-server
有的童鞋仍然安装不上,因为xxx存在依赖关系,这样我们是没办法安装的,提示内容
大致是存在依赖关系,然后 给出一个具体的版本,大致内容是:
openssh-client(=xxxx)
有一个这样的东西,出现这个原因是机器上的client和server存在版本上到依赖关系,这样是没办法直接安装的,我们要给ssh client降级!
sudo apt-get install openssh-client=xxxx
注:这个xxxx每个电脑都有可能因为Linux版本不同而不同。
详细内容可以搜索 ssh 降级
降级之后,安装ssh server
sudo apt-get install openssh-server
基本就没问题了。
可以试一试:
ssh localhost
至于有的人说,最好给ssh加到启动项里面,我这个版本的是每必要,可能因为版本不同,实际也有些差距。
加到/etc/init.d/ssh这里,一般都默认,反正我是没有加。
三.配置hadoop
1.单机模式
不用配置了,可以试试HADOOP自带的文本统计
bin/hadoop jar /usr/lib/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.0.jar wordcount input output
其中 input上传hdfs中的命令是:
./bin/hdfs dfs -put input /input2.伪分布模式
首先创建一个用户文件夹,
mkdir ~/hadoop_tmp
就叫这个名吧,好多都用这个名
直接在hadoop的安装目录中找到配置文件改下就可以了,我的安装在了:
/usr/lib/hadoop
配置文件在下级目录的......./etc/hadoop中.
修改hadoop-env.sh的
export JAVA_HOME=${JAVA_HOME}
这个必须改,不要以为JAVA_HOME之前已经加到.bashrc中就不用改了。
core-site.xml
fs.defaultFS hdfs://localhost:9000 <final>truefinal>hadoop.tmp.dir ~/hadoop_tmp
hdfs-site.xml修改:
The address and the base port where the dfs namenode web ui will listen on.
If the port is 0 then the server will start on a free port.
mapred.xml修改:
yarn-site.xml:
4.启动伪分布式模式:
第一次启动都要格式化下数据文件,命令:
./bin/hdfs namenode -format
启动hadoop,命令:
./sbin/start-all.sh
查看,命令:
jps
有显示,是正确的,端口前面配置文件里面有写:
NameNode | 50070 |
ResourceManager | 8088 |
MapReduce JobHistory Server | 19888 |
其中19888端口要启动JobHistoryServer进程,启动命令如下:
./sbin/mr-jobhistory-daemon.sh start historyserver