Ubuntu14 04+hadoop2 5 2完全分布式集群搭建
1.ubuntu创建新用户并增加管理员权限(所有主机)
$是普通管员,#是系统管理员,在Ubuntu下,root用户默认是没有密码的,因此也就无法使用(据说是为了安全)。想用root的话,得给root用户设置一个密码:
sudo passwd root
然后登录时用户名输入root,再输入密码就行了。
ubuntu建用户最好用adduser,虽然adduser和useradd是一样的在别的linux糸统下,但是我在ubuntu下用useradd时,并没有创建同名的用户主目录。
例子:adduser user1
这样他就会自动创建用户主目录,创建用户同名的组。
[email protected]:~# sudo adduser aboutyun
[sudo] password for xx:
输入xx用户的密码,出现如下信息
正在添加用户"aboutyun"…
正在添加新组"aboutyun" (1006)…
正在添加新用户"aboutyun" (1006) 到组"db"…
创建主目录"/home/aboutyun"…
正在从"/etc/skel"复制文件…
输入新的 UNIX 口令:
重新输入新的 UNIX 口令:
两次输入db的初始密码,出现的信息如下
passwd: password updated successfully
Changing the user information for db
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Full Name []:等信息一路回车
这个信息是否正确? [Y/n] y
到此,用户添加成功。如果需要让此用户有root权限,执行命令:
[email protected]:~# sudo vim /etc/sudoers
修改文件如下:
# User privilege specification
root ALL=(ALL) ALL
aboutyun ALL=(ALL) ALL
保存退出,db用户就拥有了root权限。
2. 修改/etc/hostname 和/etc/hosts(所有主机)
首先生成 master 的公匙,在 master 节点终端中执行:
cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
ssh-****** -t rsa # 一直按回车就可以,生成的**保存为.ssh/id_rsa
master 节点需能无密码 ssh 本机,这一步还是在 master 节点上执行:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
完成后可以使用 ssh Master
验证一下。接着将公匙传输到 Slave1 节点:
scp ~/.ssh/id_rsa.pub [email protected]:/home/aboutyun/
scp时会要求输入slave1上aboutyun用户的密码,输入完成后会提示传输完毕。
接着在 slave1节点
上将ssh公匙保存到相应位置,执行
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
如果有其他 slave 节点,也要执行 将公匙传输到 slave 节点、在 slave 节点上加入授权 这两步。
最后在 master 节点上就可以无密码SSH到slave1节点了。
ssh Slave1
tar -xzf jdk-7u67-linux-x64.tar.gz 解压到了/usr/java/jdk1.7
下载jdk
wget http://download.Oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz?AuthParam=1412395049_5ee2894e196e935ec18e4b2a6236bf28
重命名
mv jdk-7u67-linux-x64.tar.gz\?AuthParam\=1412395049_5ee2894e196e935ec18e4b2a6236bf28 jdk-7u67-linux-x64.tar.gz
解压
tar -xzf jdk-7u67-linux-x64.tar.gz
4.3设置环境变量
环境变量分为用户变量和系统变量。
用户变量配置文件:~/.bashrc(在当前用户主目录下的隐藏文件,可以通过`ls -a`查看到)
系统环境配置文件:/etc/profile
用户变量和系统变量的配置方法一样,本文以配置用户变量为例。
编辑配置文件.bashrc:
vi .bashrc
在文件末尾追加:
# set java environmentexport JAVA_HOME=/usr/java/jdk1.7export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
4.4使环境变量生效
source .bashrc
4.5验证
验证java是否安装成功。
$ java -versionjava version "1.7.0_67"Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
- <property>
- <name>hadoop.tmp.dir</name>
- <value>file:/home/aboutyun/tmp</value>
- <description>Abase forother temporary directories.</description>
- </property>
- /home/aboutyun/tmp
- /home/zhangsan/tmp
上面讲完,我们开始配置
- tar zxvf hadoop-2.5.2_x64.tar.gz
- mv hadoop-2.5.2 hadoop
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://master:8020</value>
- </property>
- <property>
- <name>io.file.buffer.size</name>
- <value>131072</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>file:/home/aboutyun/tmp</value>
- <description>Abase for other temporary directories.</description>
- </property>
- <property>
- <name>hadoop.proxyuser.aboutyun.hosts</name>
- <value>*</value>
- </property>
- <property>
- <name>hadoop.proxyuser.aboutyun.groups</name>
- <value>*</value>
- </property>
- </configuration>
- <configuration>
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>master:9001</value>
- </property>
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:/home/aboutyun/dfs/name</value>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:/home/aboutyun/dfs/data</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <name>dfs.webhdfs.enabled</name>
- <value>true</value>
- </property>
- </configuration>
- <configuration>
- <property> <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>master:10020</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.webapp.address</name>
- <value>master:19888</value>
- </property>
- </configuration>
- <configuration>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
- <value>org.apache.hadoop.mapred.ShuffleHandler</value>
- </property>
- <property>
- <name>yarn.resourcemanager.address</name>
- <value>master:8032</value>
- </property>
- <property>
- <name>yarn.resourcemanager.scheduler.address</name>
- <value>master:8030</value>
- </property>
- <property>
- <name>yarn.resourcemanager.resource-tracker.address</name>
- <value>master:8031</value>
- </property>
- <property>
- <name>yarn.resourcemanager.admin.address</name>
- <value>master:8033</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address</name>
- <value>master:8088</value>
- </property>
- </configuration>
- sudo scp -r /home/aboutyun/hadoop [email protected]:~/
- vi /etc/environment
- hdfs namenode –format
- hadoop namenode format
- start-dfs.sh
namenodesecondarynamenode
- start-yarn.sh
slave1有如下进程
- http://master:8088/