环境是:Ubuntu 14.04.2+jdk1.8.0_121+hadoop-2.7.3
一、创建用户
先增加用户
sudo useradd -m ma
设置密码
sudo passwd ma
之后输入两次密码
添加用户 ma的权限
sudo adduser ma sudo
首先去官网找到合适的版本,官网
rpm在ubuntu里面比较麻烦,需要装个alien,再转格式。这里采用.gz的压缩包,解压即可。
先登录账号ma,
su ma
在ma下建立java文件夹
mkdir java
进入java文件
cd java/
在java文件夹下载jdk
wget http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz?AuthParam=1488203984_db8c16ae8cb38909890ae7336eaf6dea
下载下来之后,可能有一个很长的后缀,重命名成.gz结尾
tar -xvf jdk-8u121-linux-x64.tar.gz
进入该解压文件夹,用pwd查看路径
来配置环境变量
这里配置~/.bashrc文件(因为一个机子几个用户在使用,所以为了不影响对方,这里配置用户下的环境)
sudo vi ~/.bashrc
在最后一行加入,
#set jdk env
export JAVA_HOME=/home/ma/java/jdk1.8.0_121
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存退出后,source 一下,使得配置生效
source ~/.bashrc
使用java -version查看是否生效了。
生效会显示版本信息
三、配置ssh
因为一般ubuntu只装了ssh的客户端,没有转server,所以这里需要装一个openssh-server
sudo apt-get install openssh-server
使用ssh localhost登录,
ssh localhost
第一次输入yes回车。
因为每次要输入密码,挺麻烦的,所以这里设置免密码登录。
进入.ssh文件夹
cd ~/.ssh
生成公钥
ssh-keygen -t rsa
一路回车,
cat id_rsa.pub >> authorized_keys // 若是没有authorized_keys文件,则用cp id_rsa.pub authorized_keys
尝试免密码登录
ssh localhost
若还是要输入密码,则很有可能是因为文件权限问题。
这里 authorized-keys 需要600的权限,.ssh需要700的权限, ma需要755的权限。
chmod 600 ~/.ssh/authorized-keys
chmod 700 ~/.ssh
chmod 755 /home/ma
这里是用户ma,所以是/home/ma
到这一步权限配置已经完成。尝试ssh localhost免密码登录。
四、安装hadoop
先下载hadoop ,http://mirrors.cnnic.cn/apache/hadoop/common/stable/ 。这里选择稳定版的,而src版的需要编译,比较麻烦,这里选择不带src
wget上面两个文件之后,验证文件的完整性。
cat hadoop-2.7.3.tar.gz.mds | grep 'MD5'
md5sum hadoop-2.7.3.tar.gz | tr "a-z" "A-Z"
两个红色框中一致则下载完全,不一致则重下,(之前也出现过几次,不完整的情况)
这里直接装在~/hadoop中
tar -xvf hadoop-2.7.3.tar.gz
解压后,重命名(mv)回hadoop
mv hadoop-2.7.3 hadoop
未免报错,修改这个文件属主
sudo chown -R ma ~/hadoop
查看是否安装成功(单机版)
cd hadoop
./bin/hadoop version
能够显示版本信息则无问题。
接下来配置伪分布式
进入etc/hadoop
cd etc/hadoop
首先配置hadoop-env.sh
打开hadoop-env.sh
sudo vi hadoop-env.sh
将export JAVA_HOME=${$JAVA_HOME}
改成上述配的路径
export JAVA_HOME=/home/ma/java/jdk1.8.0_121
配置core-site.xml文件
将
<configuration>
</configuration>
改成
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/ma/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
将
<configuration>
</configuration>
改成
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/ma/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/ma/hadoop/tmp/dfs/data</value>
</property>
</configuration>
配置完成
退回到hadoop文件夹下
将namenode格式化
./bin/hdfs namenode -format
提醒EXITING with status 0则为成功,若为1则是出错。
配置hadoop环境变量
vi ~/.bashrc
在最后加入
export HADOOP_HOME=/home/ma/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
让环境变量生效
source ~/.bashrc
试着启动namenode和datanode进程
start -dfs.sh
提示则输入yes
通过,
jps
查看datanode、namenode、secondarynamenode是不是已经启动
也可以在浏览器上输入
localhost:50070 看是不是可以打开。
至此,hadoop伪分布式配置完成~