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

centOS 操作记录二

2016-04-09 12:33 399 查看
LINUX下编译hadoop

安装protobuf

tar -zxf /usr/local/installPackage/protobuf-2.6.1.tar.gz -C /usr/local/installPackage/resource

cd /usr/local/installPackage/resource/protobuf-2.6.1

./configure --prefix=/usr/local/protobuf && make && make check

make install

ln -s /usr/local/protobuf/bin/protoc /usr/bin/protoc

 

安装cmake、zlib devel、openssl devel

yum search cmake

yum install cmake.x86_64

yum install zlib-devel

yum install openssl-devel

安装maven

tar -zxvf /usr/local/installPackage/apache-maven-3.3.9-bin.tar.gz -C /usr/local/software

修改conf/settings.xml的本地库路径

修改etc/profile

MAVEN_HOME=/usr/local/software/apache-maven-3.3.9

PATH=$MAVEN_HOME/bin:$PATH

export PATH

更新当前环境变量 source /etc/profile

修改主机名并配置免密码登录

vi /etc/hosts

vi /etc/hostname

ssh-keygen -t rsa

scp /root/.ssh/id_rsa.pub
root@S2:/root/.ssh/authorized_keys

scp /root/.ssh/id_rsa.pub
root@S3:/root/.ssh/authorized_keys

scp /root/.ssh/id_rsa.pub
root@S4:/root/.ssh/authorized_keys

编译安装hadoop

tar -zxf /usr/local/installPackage/hadoop-2.5.2-src.tar.gz -C /usr/local/installPackage/resource

cd /usr/local/installPackage/resource/hadoop-2.5.2-src

mvn package -Pdist,native -DskipTests -Dtar

四台虚拟机搭建hadoop高可用集群

集群规划

zookeeper:S1、S2、S3

namenode:S1、S2

datanode:S2、S3、S4

journalnode:S2、S3、S4

zkfc:S1、S2

修改四台主机名

vi /etc/hosts

vi /etc/hostname

主机名分别为:S1、S2、S3、S4

配置免密码登录

ssh-keygen -t rsascp /root/.ssh/id_rsa.pub
root@S2:/root/.ssh/authorized_keys
scp /root/.ssh/id_rsa.pub root@S3:/root/.ssh/authorized_keys
scp /root/.ssh/id_rsa.pub root@S4:/root/.ssh/authorized_keys安装hadoop

tar -zxf /usr/local/installPackage/resource/hadoop-2.5.2-src/hadoop-dist/target/hadoop-2.5.2.tar.gz -C /usr/local/software

安装zookeeper集群

三台zoopeeker集群放在S1、S2、S3上

tar -zxf /usr/local/installPackage/zookeeper-3.4.6.tar.gz -C /usr/local/software

cp /usr/local/software/zookeeper-3.4.6/conf/zoo_sample.cfg /usr/local/software/zookeeper-3.4.6/conf/zoo.cfg

vi /usr/local/software/zookeeper-3.4.6/zoo.cfg

mkdir /usr/local/software/zookeeper-3.4.6/data

scp -rp /usr/local/software/zookeeper-3.4.6 S2:/usr/local/software/zookeeper-3.4.6

scp -rp /usr/local/software/zookeeper-3.4.6 S3:/usr/local/software/zookeeper-3.4.6

echo "1" > /usr/local/software/zookeeper-3.4.6/data/myid

echo "2" > /usr/local/software/zookeeper-3.4.6/data/myid

echo "3" > /usr/local/software/zookeeper-3.4.6/data/myid

systemctl stop firewalld.service #关闭防火墙

/usr/local/software/zookeeper-3.4.6/bin/zkServer.sh start

/usr/local/software/zookeeper-3.4.6/bin/zkServer.sh status

hadoop集群配置

vi hadoop-env.sh #设置JAVA_HOME路径

vi core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>S1:2181,S2:2181,S3:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>

 

vi hdfs-site.xml

<configuration>
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>

<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>S1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>S2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>S1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>S2:50070</value>
</property>

<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://S2:8485;S3:8485;S4:8485/mycluster</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoop/journalnode/edits</value>
</property>

<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
</configuration>


vi slaves

S2
S3
S4


scp -r /usr/local/software/hadoop-2.5.2 S2:/usr/local/software/hadoop-2.5.2

scp -r /usr/local/software/hadoop-2.5.2 S3:/usr/local/software/hadoop-2.5.2

scp -r /usr/local/software/hadoop-2.5.2 S4:/usr/local/software/hadoop-2.5.2

格式化namenode

S2、S3、S4 上分别 hadoop-daemon.sh start journalnode

S1上bin/hdfs namenode -format(测试环境配置不够,运行慢,导致连接journalnode超时)

hadoop-daemon.sh start namenode

S2 上 bin/hdfs namenode -bootstrapStandby

启动hdfs集群

bin/hdfs zkfc -formatZK

sbin/start-dfs.sh(测试环境配置不够,运行慢,必须先开启journalnode)

 

访问 http://s1:50070 只能显示一个名为localhost的datanode

hdfs dfsadmin -report 所有的namenode都是Hostname: localhost
原因:/etc/hosts 中本机ip对应了两个主机名:localhost和Sx

解决:分别注释掉192.168.1.9x localhost

此问题会导致上传文件时连接不上其他datanode节点

测试上传文件

bin/hdfs dfs -mkdir -p /tmp

bin/hdfs dfs -put /usr/local/installPackage/jdk-7u75-linux-x64.tar.gz /tmp

测试HA时无法自动切换,查看zkfc日志,zkfc在执行sshfence时需要免密码登录到namenode;

且需要使用fuser,遂装之

yum search fuser

yum install psmisc.x86_64

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: