本文为个人从装系统到搭建hadoop,zk,hbase过程的随记,仅供参考。
hadoop2.6.2
zk3.4.6
hbase1.1.5
需要注意的是安装的过程会提示你填写用户,此时我将需要的hadoop用户填好并设置好密码,所有
系统操作均在hadoop下用sudo 来操作。
下面先说配置网络部分。
个人把虚拟机环境都配置成了静态IP,选择的是桥接模式。
配置过程如下: 1,修改/etc/network/interfaces文件
auto eth0
iface eth0 inet static
address 192.168.1.121
netmask 255.255.255.0
gateway 192.168.1.1
2,修改/etc/NetworkManager/NetworkManager.conf中的managed=true
3,修改/etc/resolvconf/resolv.conf.d/base文件
nameserver DNS1
nameserver DNS2
其他准备工作:
启用ssh服务,以方便客户端连接传送文件等
sudo apt-get install openssh-server
配置hostname
sudo vi /etc/hostname
注意: 这里三台机器我分别配置成了master,node1,node2
配置/etc/hosts文件
sudo vi /etc/hosts
文件内容为
127.0.0.1 localhost
192.168.1.121 master
192.168.1.122 node1
192.168.1.123 node2
sudo vi /etc/profile
文件里填写 export JAVA_HOME=/home/hadoop/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
保存退出后需要执行source /etc/profile使环境变量生效
执行java -version查看jkd是否生效
执行scp -r jdk1.7.0_79 hadoop@node1:/home/hadoop/将jdk复制到另一台机器
执行scp -r jdk1.7.0_79 hadoop@node2:/home/hadoop/将jdk复制到另一台机器
注意:因为还没有配置免秘钥登录,所以需要输入密码。也可以先生成公钥免密访问两台机器
执行ssh-keygen –t rsa 生成公私钥(一路回车。。。)
cd .ssh 进入到公钥目录下
以上步骤三台机器均需要操作
主节点继续执行如下操作
执行sudo cat id_rsa.pub >> authorized_keys 公共文件并用scp命令 将 authorized_keys 复制到
其他两台机器
tar -zxvf hadoop-2.6.2.tar.gz
同配置java环境变量一样配置$HADOOP_HOME
sudo echo 'export HADOOP_HOME=/home/hadoop/hadoop2.6.2' >>/etc/profile
sudo echo 'export PATH=$HADOOP_HOME/bin:$PAHT'>>/etc/profile
source /etc/profile
配置hadoop配置文件
cd $HADOOP_HOME/etc/hadoop/
修改hadoop-env.sh 、yarn-env.sh(大家根据自己实际情况更改)
export JAVA_HOME=/home/hadoop/jdk1.7.0_79
修改core-site.xml文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>
注意:没有tmp目录的需要先创建tmp目录
修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.datanode.ipc.address</name>
<value>0.0.0.0:50020</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:50075</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
注意:dfs.replication表示数据副本数,一般不大于datanode的节点数。
修改mapred-site.xml文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
修改slaves文件:
vi slaves
里面填写datanode的节点名称,我填的是
node1
node2
使用scp将hadoop目录复制到其他两台机器,并配置相应的环境变量
主节点执行格式化:
$HADOOP_HOME/bin/hdfs namenode –format
如果提示有successfully字样,则进入$ HADOOP_HOME/sbin目录执行start-all.sh
通过jps查看hadoop进程是否正常启动
主节点进程如下:
7482 ResourceManager
7335 SecondaryNameNode
7159 NameNode
至此hadoop已经完全搭建成功。个人觉得写的比较糙。现附上我的参考文章链接,希望对看到的朋友有所帮助。
参考链接:http://www.cnblogs.com/yjmyzz/p/4280069.html
2,修改coo.cfg文件
增加dataDir和dataLogDir以及server1,2,3
下面是我的个人配置
dataDir=/home/hadoop/zk/data/
dataLogDir=/home/hadoop/zk/log/
server.1=master:3333:4444
server.2=master:3333:4444
server.3=master:3333:4444
由于我是三台服务器所以需要配置3个server
server.A=B:C:D:其中
A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的 ip 地址;
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口
注意:如果是伪分布式,则需要选择不同端口
3,创建myid文件
在dataDir目录下创建一个myid文件,分别在myid文件中按照zoo.cfg文件的server.A中A的数值
4,将主节点的zk文件夹scp到两个子节点并修改相应的myid文件(记得修改两台机器上的环境变量)
scp zk hadoop@node1:/home/hadoop/
scp zk hadoop@node2:/home/hadoop/
5,启动zk
三台机器分别执行zkServer.sh start并使用jps查看相应进程
2,配置hbase-env.sh文件
这里需要配置两个点
(1)export你的java_home
export JAVA_HOME=/home/hadoop/jdk-7u79-linux-x64/
(2)不使用系统自带的zookeeper
export HBASE_MANAGES_ZK=false
3,配置hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,node1,node2</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4,配置regionservers文件,将两个子节点ip添加到文件里面
192.168.1.122
192.168.1.123
5,将文件夹拷贝到两个子节点(记得修改两台机器上的环境变量)
scp hbase hadoop@node1:/home/hadoop/
scp hbase hadoop@node2:/home/hadoop/
6,启动hbase
./start-hbase.sh
注意:启动hbase之前应保证hadoop和zk服务正常
一,环境介绍
3台虚拟机均用乌班图14的系统二,安装包
jdk1.7.0_79hadoop2.6.2
zk3.4.6
hbase1.1.5
三,安装操作系统以及配置网络
虚拟机安装操作系统的部分暂且略过,相信都会安装。需要注意的是安装的过程会提示你填写用户,此时我将需要的hadoop用户填好并设置好密码,所有
系统操作均在hadoop下用sudo 来操作。
下面先说配置网络部分。
个人把虚拟机环境都配置成了静态IP,选择的是桥接模式。
配置过程如下: 1,修改/etc/network/interfaces文件
auto eth0
iface eth0 inet static
address 192.168.1.121
netmask 255.255.255.0
gateway 192.168.1.1
2,修改/etc/NetworkManager/NetworkManager.conf中的managed=true
3,修改/etc/resolvconf/resolv.conf.d/base文件
nameserver DNS1
nameserver DNS2
其他准备工作:
启用ssh服务,以方便客户端连接传送文件等
sudo apt-get install openssh-server
配置hostname
sudo vi /etc/hostname
注意: 这里三台机器我分别配置成了master,node1,node2
配置/etc/hosts文件
sudo vi /etc/hosts
文件内容为
127.0.0.1 localhost
192.168.1.121 master
192.168.1.122 node1
192.168.1.123 node2
四,安装hadoop(安装文件均放在了/home/hadoop/目录下)
1,配置JDK
tar -zxvf jdk-7u79-linux-x64.gzsudo vi /etc/profile
文件里填写 export JAVA_HOME=/home/hadoop/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
保存退出后需要执行source /etc/profile使环境变量生效
执行java -version查看jkd是否生效
执行scp -r jdk1.7.0_79 hadoop@node1:/home/hadoop/将jdk复制到另一台机器
执行scp -r jdk1.7.0_79 hadoop@node2:/home/hadoop/将jdk复制到另一台机器
注意:因为还没有配置免秘钥登录,所以需要输入密码。也可以先生成公钥免密访问两台机器
2,生成公钥免密访问两台Slaves
执行cd ~/ 进入到主目录执行ssh-keygen –t rsa 生成公私钥(一路回车。。。)
cd .ssh 进入到公钥目录下
以上步骤三台机器均需要操作
主节点继续执行如下操作
执行sudo cat id_rsa.pub >> authorized_keys 公共文件并用scp命令 将 authorized_keys 复制到
其他两台机器
主节点直接ssh node1看看是否实现免秘钥登录
3,配置hadoop
解压安装包tar -zxvf hadoop-2.6.2.tar.gz
同配置java环境变量一样配置$HADOOP_HOME
sudo echo 'export HADOOP_HOME=/home/hadoop/hadoop2.6.2' >>/etc/profile
sudo echo 'export PATH=$HADOOP_HOME/bin:$PAHT'>>/etc/profile
source /etc/profile
配置hadoop配置文件
cd $HADOOP_HOME/etc/hadoop/
修改hadoop-env.sh 、yarn-env.sh(大家根据自己实际情况更改)
export JAVA_HOME=/home/hadoop/jdk1.7.0_79
修改core-site.xml文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>
注意:没有tmp目录的需要先创建tmp目录
修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.datanode.ipc.address</name>
<value>0.0.0.0:50020</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:50075</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
注意:dfs.replication表示数据副本数,一般不大于datanode的节点数。
修改mapred-site.xml文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
修改slaves文件:
vi slaves
里面填写datanode的节点名称,我填的是
node1
node2
使用scp将hadoop目录复制到其他两台机器,并配置相应的环境变量
主节点执行格式化:
$HADOOP_HOME/bin/hdfs namenode –format
如果提示有successfully字样,则进入$ HADOOP_HOME/sbin目录执行start-all.sh
通过jps查看hadoop进程是否正常启动
主节点进程如下:
7482 ResourceManager
7335 SecondaryNameNode
7159 NameNode
至此hadoop已经完全搭建成功。个人觉得写的比较糙。现附上我的参考文章链接,希望对看到的朋友有所帮助。
参考链接:http://www.cnblogs.com/yjmyzz/p/4280069.html
五,安装zk
1,同安装hadoop一样先解压zk的tar包,然后配置环境变量2,修改coo.cfg文件
增加dataDir和dataLogDir以及server1,2,3
下面是我的个人配置
dataDir=/home/hadoop/zk/data/
dataLogDir=/home/hadoop/zk/log/
server.1=master:3333:4444
server.2=master:3333:4444
server.3=master:3333:4444
由于我是三台服务器所以需要配置3个server
server.A=B:C:D:其中
A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的 ip 地址;
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口
注意:如果是伪分布式,则需要选择不同端口
3,创建myid文件
在dataDir目录下创建一个myid文件,分别在myid文件中按照zoo.cfg文件的server.A中A的数值
4,将主节点的zk文件夹scp到两个子节点并修改相应的myid文件(记得修改两台机器上的环境变量)
scp zk hadoop@node1:/home/hadoop/
scp zk hadoop@node2:/home/hadoop/
5,启动zk
三台机器分别执行zkServer.sh start并使用jps查看相应进程
六,安装HBase
1,同安装hadoop一样先解压hbase的tar包,然后配置环境变量2,配置hbase-env.sh文件
这里需要配置两个点
(1)export你的java_home
export JAVA_HOME=/home/hadoop/jdk-7u79-linux-x64/
(2)不使用系统自带的zookeeper
export HBASE_MANAGES_ZK=false
3,配置hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,node1,node2</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4,配置regionservers文件,将两个子节点ip添加到文件里面
192.168.1.122
192.168.1.123
5,将文件夹拷贝到两个子节点(记得修改两台机器上的环境变量)
scp hbase hadoop@node1:/home/hadoop/
scp hbase hadoop@node2:/home/hadoop/
6,启动hbase
./start-hbase.sh
注意:启动hbase之前应保证hadoop和zk服务正常