您的位置:首页 > 运维架构

在Ubuntu上安装与配置Hadoop

2015-01-17 13:38 399 查看
安装环境

操作系统:ubuntu14.10,运行在virtualBox上。

Hadoop:hadoop-1.0.4.tar.gz

JDK:jdk-7u25-linux-i586.tar.gz

首先把要用到的压缩包上传到Ubuntu,在这里我使用Xshell作为远程管理工具,Xftp作为文件管理工具。在/home/caiyong(当前用户目录)下创建setup文件夹,将hadoop-1.0.4.tar.gz和jdk-7u25-linux-i586.tar.gz上传到/home/caiyong/setup。

Step1.添加用户和组

(1)添加组:

addgroup hadoop  //组名为hadoop
(2)添加用户:

adduser -ingroup hadoop hadoop //在hadoop组中添加名为hadoop用户
添加新的用户和组的作用:使用独立的账户保护hadoop文件,防止被其他用户修改,同时还能防止程序修改其他账户的文件。

Step2.hosts的配置

Hadoop通过域名来进行互相访问,通过修改/etc/hosts文件可以配置本地域名映射关系,在hosts文件中添加计算机的域名(别名)和IP的对应关系,如在本机中添加slave1的主机,假设ip为192.168.1.1,则在末尾添加的内容为:192.168.1.1 master。

(修改hosts时可能会提示权限不够,修改/etc/hosts文件的权限:chmod 777 /etc/hosts)

然后修改/etc/sysconfig/network文件,将主机名改为master,在network文件后面添加一行:HOSTNAME=master。重启系统后,主机名便会生效。也可以运行如下命令设置主机名,无须重启:

hostname master
然后输入hostname查看主机名已经变为master。

Step3.ssh无密码登录

(1)安装ssh客户端:

sudo apt-get install ssh
(2)生成无密码的“公私钥”对:

su hadoop  //切换到hadoop用户
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  // ssh-keygen代表生成密钥,-t表示指定生成的密钥类型,密钥类型为dsa和
rsa都可以,-P ''表示密码为空,-f指向生成的密钥文件地址为~/.ssh/id_dsa
   在Ubuntu中,~代表当前用户文件夹,这里为:/home/caiyong
cd .ssh/
ls -alh  //查看秘钥文件
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys //把公钥追加到用于认证的公钥文件中,这里authorized_keys就是用于认证的公钥文件
chmod 600 ~/.ssh/authorized_keys  //给authorized_keys最小的权限600,其他用户不能写
(3)验证ssh是否安装成功

切换到根目录:cd ~,修改.ssh的权限:chmod 700 .ssh/

输入:

ssh -V


显示ssh的版本信息,则说明ssh安装成功。

输入:

ssh localhost
会自动登录到localhost而不需要输入密码。

Step4.JDK的安装与配置

运行hadoop需要JDK1.6及以上的版本。

(1)安装

tar -zxvf  jdk-7u25-linux-i586.tar.gz -C /usr/java      // /usr/java是解压后存放jdk的位置
//建立一个软连接,目的是减少以后输入的复杂度,以后输入jdk就代表输入的是jdk1.7.0_25,便于配置
ln -s /usr/java/jdk1.7.0_25 /usr/java/jdk


(2)配置环境变量 在/etc/profile文件中添加下面的内容:
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
在命令行下输入:source /etc/profile使修改生效

输入:

java -version
显示java的版本信息,则说明JDK安装成功。

重启后,输入java -version看不到安装的java的版本信息,所以要手动将当前安装的JDK设置成系统默认的JDK,命令如下:

sudo update-alternatives  --install   /usr/bin/java  java   /usr/java/jdk/bin/java  300
sudo update-alternatives  --install   /usr/bin/javac  javac   /usr/java/jdk/bin/javac  300
sudo  update-alternatives  --config  java


Step5.hadoop的安装

在分布式安装的模式下,所有服务器的hadoop的安装目录需要一样,我安装的位置是:/opt/hadoop

tar -zxvf  hadoop*.tar.gz -C /opt
mv /opt/hadoop-1.0.4 hadoop     //把hadoop-1.0.4 移动到hadoop,方便配置
chown -R hadoop:hadoop /opt/hadoop/   //把hadoop文件的权限赋给hadoop组的hadoop用户


Step6.配置hadoop

首先切换到hadoop用户:

su hadoop
修改hadoop目录下conf/hadoop-env.sh的环境变量,在末尾添加:

export JAVA_HOME=/usr/java/jdk
export HADOOP_HEAPSIZE=256
export HADOOP_PID_DIR=/home/$USER/pids
修改hadoop目录下conf/core-site.xml的配置文件,在<configuration>标签中添加如下内容:

<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/${user.name}/tmp</value>
</property>
修改hadoop目录下conf/hdfs-site.xml的配置文件,在<configuration>标签中添加如下内容:

<property>
<name>dfs.replication</name>   //因为这是伪分布式模式,所以备份数为1
<value>1</value>
</property>

<property>
<name>dfs.name</name>
<value>/home/${user.name}/dfs_name</value>
</property>

<property>
<name>dfs.data.dir</name>
<value>/home/${user.name}/dfs_data</value>
</property>
修改hadoop目录下cong/mapred-site.xml的配置,在<configuration>标签中添加如下内容:

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

<property>
<name>mapred.system.dir</name>
<value>/home/${user.name}/mapred_system</value>
</property>

<property>
<name>mapred.local.dir</name>
<value>/home/${user.name}/mapred_local</value>
</property>
配置辅助名称节点:修改hadoop目录conf/masters文件,修改内容为:

master //用IP也可以

配置子节点:修改hadoop目录conf/slaves文件,修改内容为:

master
//用IP也可以

Step7.执行Hadoop

(1)格式化:

./bin/hadoop  namenode  -format(在/opt/hadoop目录下面执行)
(2)启动hadoop守护进程:

./bin/start-all.sh
hadoop的守护进程的日志写入到{HADOOP_LOG_DIR}目录(默认为log下面)

(3)查看启动是否成功,输入:jps

如果出现6个进程:jps,namenode,secondarynamenode,datanode,jobtraacker和tasktracker,则说明Hadoop安装成功。

(4)浏览namenode和jobtracker的网络接口,默认地址是:

namenode:http://192.168.56.101:50070/

jobtracker:http://192.168.56.101:50030/

参考资料:《Hadoop实战》 第二版 陆嘉恒 著 机械工业出版社

《Hadoop实战手册》 [美]Jonathan R.Owens 等 著 傅杰 等 译 人民邮电出版社
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: