Hadoop安装
1. 创建hadoop用户组;
$sudo addgrouphadoop
记下这里为hadoop用户设置的密码,后面使用hadoop用户登录时需要用到。
2. 创建hadoop用户;
$sudo adduser -ingroup hadoop hadoop
3. 给hadoop用户添加权限,打开/etc/sudoers文件;
$sudo gedit /etc/sudoers
给hadoop用户赋予root用户同样的权限。
在 root ALL=(ALL:ALL) ALL下添加如下内容:
hadoop ALL=(ALL:ALL) ALL
4. 配置环境变量
$sudo gedit /etc/profile
在文件的末尾加上如下内容,保存并关闭文件
#Java Environment
export JAVA_HOME=/usr/jdk
exportJRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#Hadoop Environment
export HADOOP_HOME=/usr/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
使设置生效:到此部JDK的配置就都完成了
$source /etc/profile
为保证正确性,进行简单的测试
$java -version
输出:
Java version"1.8.0"
Java(TM) SE RuntimeEnvironment (build 1.8.0)
Java HotSpot(TM) ServerVM
5. 修改机器名
打开/etc/hostname文件;
$sudo gedit /etc/hostname
将/etc/hostname文件中的Ubuntu改为对应机器,如主节点中,修改为"master",重启生效。
修改/etc/hosts文件
$sudo gedit /etc/hosts
改为如下所示,并且将每台机器的IP设置为固定IP:
127.0.0.1 |
localhost |
192.168.0.1 |
Master |
192.168.0.2 |
Slave1 |
192.168.0.3 |
Slave2 |
6. 配置SSH无密码访问
$sudo apt-get install openssh-server
首先要转换成hadoop用户,执行以下命令:
$sudo su - hadoop
ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。
创建ssh-key,,这里我们采用rsa方式;
$ ssh-keygen -t rsa -P ""
请注意,ssh-kengen 是用连字符连着的,千万不要分开。问题如下:
(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)
创建授权文件authorized_keys
进入~/.ssh/目录下,发现开始是没有authorized_keys文件的,可以使用以下两种方法:
(1) 将id_rsa.pub追加到authorized_keys授权文件中;
$cd ~/.ssh
$cat id_rsa.pub >> authorized_keys
(2) 复制id_rsa.pub 为 authorized_keys
$ cp ~/.ssh/id_rsa.pub~/.ssh/authorized_keys
登录localhost;
$ ssh localhost
显示welcome…后面还有很多字不记得了 就是成功了。
执行退出命令(exit或CTRL+D);
使Master登录一个Slave都是免密码
scp authorized_keys slave1:/home/hadoop/.ssh/
7. 同步集群中所有节点的时间
1. 安装ntpdate工具
#sudo apt-get installntpdate
2. 设置系统时间与网络时间同步
#sudo ntpdatecn.pool.ntp.org
3. 将系统时间写入硬件时间
#sudohwclock –w
4.将硬件时间同步到系统时间
#sudohwclock –s
8. 配置Hadoop
hadoop-env.sh
export JAVA_HOME=/usr/jdk
yarn-env.sh
export JAVA_HOME=/usr/jdk
exportHADOOP_HOME=/usr/hadoop
mapred-en.sh
export JAVA_HOME=/usr/jdk
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
9. 添加Slaves
打开${HADOOP_HOME}/etc/hadoop/slaves文件,添加作为slave的主机名,一行一个。
例如:
1、slave1
2、slave2
3、slave3
10. 添加Secondarynamenode
打开${HADOOP_HOME}/etc/hadoop/masters文件,
添加作为secondarynamenode的主机名,一行一个。
11.
调整Java堆大小
大多数进程的默认堆大小为1GB,因为我们将可能运行在一个和标准服务器相比只有有限资源的工作站上,所以要调整堆的大小。(不要忘记删除每一行前面的“#”)。
hadoop-env.sh
HADOOP_HEAPSIZE=500
HADOOP_NAMENODE_INIT_HEAPSIZE=”500”
mapred-env.sh
HADOOP_JOB_HISTORYSERVER_HEAPSIZE=250
yarn-env.sh
JAVA_HEAP_MAX=Xmx500m
YANR_HEAPSIZE=500
12. 向各个节点复制Hadoop,JDK,Eclipse等
scp– r hadoop/ slave1:/usr/
scp– r jdk/ slave1:/usr/
scp– r eclipse/ slave1:/usr/
13. 关闭防火墙
sudoufw disable
serviceiptables stop / start
serviceiptables status
14. 运行Hadoop
进Hadoop目录下,格式化HDFS文件系统,初次运行Hadoop时一定要有该操作,
$ cd /usr/hadoop/
$ bin/hdfs namenode -format
启动sbin/start-all.sh
进入sbin目录下, $./start-all.sh
关闭:同目录下 $./stop-all.sh
检测hadoop是否启动成功
$ jps
Web查看
http://localhost:8080/ ResourceManager
http://localhost:10020/ JobHistory
http://localhost:19888/ 已完成MR
http://localhost:50070/ NameNode