pcDuino搭建hadoop集群版环境

pc朵拉 发布于 2013/07/25 16:30
阅读 967
收藏 4

最近大数据、云存储很热火,所以就试试用pcDuino搭建简单的服务器的集群,采用的是hadoop集群,但是搭建过程中也遇到了许多的困难,包括ssh授权这块,文件夹的用户权限,现在就是把主要遇到的问题和流程处理下。

一. 搭建环境前的准备:

我搭建只用了2个pcDuino,一个用来做Master,另一个用来做Salve。开始准备的思路是这样的,分别给你的每根节点分配静态IP和配置主机名字,便于管理,保证节点之间局域网连接,可以相互ping通。

1.1修改Master的静态IP

vim /etc/network/interfaces

添加静态IP信息和DNS,保证可以上网

auto eth0
iface eth0 inet static
address 192.168.3.150
netmask 255.255.255.0
gateway 192.168.3.1
dns-nameservers 192.168.3.1

1.2修改Master的主机名字

vim /etc/hostname

修改为

ubuntu-master

1.3修改Master主机的host文件

vim /etc/hosts

在后面添加内容为

192.168.3.150 ubuntu-master
192.168.3.151 ubuntu-son1

1.4修改Salve的信息可以参考1.1-1.3

Salve的主机名:ubuntu-son1

Salve的IP:192.168.3.151

Salve的hosts文件增加信息:

192.168.3.150 ubuntu-master
192.168.3.151 ubuntu-son1

二 . 为本机(ubuntu-master)和子节点(ubuntu-son1)分别创建hadoop用户和用户组

2.1 先创建hadoop用户组:

sudo addgroup hadoop

2.2 然后创建hadoop用户:

sudo adduser -ingroup hadoop hadoop

2.3 给hadoop用户添加权限,打开/etc/sudoers文件:

sudo vim /etc/sudoers

按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。在root ALL=(ALL:ALL) ALL下面添加hadoop ALL=(ALL:ALL) ALL。

hadoop ALL=(ALL:ALL) ALL

注意:/etc/sudoers这个文件的权限是0440的,就是只读不能修改的,你需要先用chmod命令,将文件改成0777的权限,在按照上述来修改,修改完了后记得在把权限改回0440

三. 为本机(ubuntu-master)和子节点(ubuntu-son1)安装JDK环境

这里最好安装JDK8 linux arm版本的,openjdk-6-jre我安装过,在bin目录下里面很多包都不全,安装JDK8可以参考之前的博客“PcDuino安装JDK+配置Tomcat服务”,安装JDK的部分。

四. 本机(ubuntu-master)和子节点(ubuntu-son1)安装ssh服务

sudo apt-get install ssh openssh-server

五. 先为本机(ubuntu-master)和子节点(ubuntu-son1)建立ssh无密码登录环境

做这一步之前首先建议所有的机子全部转换为hadoop用户,以防出现权限问题的干扰。

切换的命令为:

su – hadoop

ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

5.1 创建ssh-key,这里我们采用rsa方式

ssh-keygen -t rsa -P “”

注意:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的

5.2 进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

六. 为本机(ubuntu-master)安装hadoop,子节点(ubuntu-son1)不用做此操作

我们采用的hadoop版本是:hadoop-0.23.9.tar.gz,因为该版本比较稳定。

6.1 下载hadoop并将它复制到安装目录 /usr/local/下

sudo wget http://mirror.bjtu.edu.cn/apache ... adoop-0.23.9.tar.gz

sudo cp hadoop-0.23.9.tar.gz /usr/local/

6.2 解压hadoop-0.23.9.tar.gz

cd /usr/local

sudo tar -zxf hadoop-0.23.9.tar.gz

6.3. 将解压出的文件夹改名为hadoop

sudo mv hadoop-0.23.9 hadoop

6.4. 将该hadoop文件夹的属主用户设为hadoop

sudo chown -R hadoop:hadoop hadoop

6.5 打开hadoop/conf/hadoop-env.sh文件

sudo vim hadoop/conf/hadoop-env.sh

6.6 配置conf/hadoop-env.sh(找到#export JAVA_HOME=…,去掉#,然后加上本机jdk的路径)

export JAVA_HOME=/usr/lib/jdk/jdk1.8.0

6.7 打开conf/core-site.xml文件

sudo vim hadoop/conf/core-site.xml

编辑如下:

<?xml version=”1.0″?> 
<?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?> 
<!– Put site-specific property overrides in this file. –> 
<configuration> 
<property> 
<name>fs.default.name</name> 
<value>hdfs://ubuntu-master:9000</value> 
</property> 
</configuration>

6.8 打开conf/mapred-site.xml文件

sudo vim hadoop/conf/mapred-site.xml

编辑如下:

<?xml version=”1.0″?> 
<?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?> 
<!– Put site-specific property overrides in this file. –> 
<configuration> 
<property> 
<name>mapred.job.tracker</name> 
<value>ubuntu-master:9001</value> 
</property> 
</configuration>

6.9 打开conf/hdfs-site.xml文件

sudo vim hadoop/conf/hdfs-site.xml

编辑如下:

<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

6.10 打开conf/masters文件,添加作为secondarynamenode的主机名,这里需填写ubuntu-master就Ok了。

sudo vim hadoop/conf/masters

6.11 打开conf/slaves文件,添加作为slave的主机名,一行一个。

sudo vim hadoop/conf/slaves

这里填成下列的内容 :

ubuntu-son1

七. 要将ubuntu-master机器上的文件一一复制到datanode机器上ubuntu-son1

7.1 公钥的复制

scp ~/.ssh/id_rsa.pub hadoop@ubuntu-son1:~/.ssh/

7.2 hadoop文件夹的复制,其中的配置也就一起复制过来了

scp -r /usr/local/hadoop hadoop@ubuntu-son1:/usr/local

由于现在两个节点的当前用户都是hadoop,直接将文件复制到/usr/local权限不够,这个文件的用户权限是root所以,我在复制这个文件的时候是直接复制到子节点的“~”这个目录下的。

scp -r /usr/local/hadoop hadoop@ubuntu-son1:~

然后把用户改成root,在mv到到/usr/local这个文件当中,接着在把用户改成hadoop

并且要将所有节点的hadoop的目录的权限进行如下的修改:

cd /usr/local

sudo chown -R hadoop:hadoop hadoop

这些东西都复制完了之后,datanode机器还要将复制过来的公钥追加到收信任列表,在每个子节点的自己种都要操作。

cat ~/.ssh/id_rsa.pub >>  ~/.ssh/authorized_keys

还有很重要的一点,子节点datanode机器要把复制过来的hadoop文件夹里面的data1,data2和logs这三个文件删除掉!

这样环境已经基本搭建好了,现在开始测试一下。

八. 这样之后基本上就差不多了,首先进入master的hadoop目录。

cd /usr/local/hadoop

启动全部服务直接一条命令

./bin/start-all.sh

查看自己的datanode是否启动

jps

连接时可以在namenode上查看连接情况:

./bin/hadoop dfsadmin -report

也可以直接进入网址:

http://ubuntu-master:50070

见下图1:

图2:

这样两个节点都启动起来了

加载中
0
blindcat
blindcat

pcDuino这是要逆天呀
返回顶部
顶部