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

spark/hadoop/hive/alluxio/sqoop/zookeeper 安装文档

2017-05-03 11:34 666 查看
一、关闭防火墙

临时关闭:

sudo service iptables stop

永久关闭:

sudo chkconfig iptables off

查看运行状态

sudo service iptables status

二、添加用户

useradd hadoop

passwd hadoop

然后输入需要配置的密码

为新创建的用户添加root权限

在root用户下面,(su root 输入密码 进入root用户)

vi /etc/sudoers

做如下修改

三、免密钥登录

每台机器分别执行

ssh-keygen -t rsa

每台机器分别进入ssh目录

cd ~/.ssh/

每台机器分别执行

cp id_rsa.pub authorized_keys

在master机器上创建一个存储所有ssh公钥的目录

mkdir ~/ssh_keys

分别复制所有机器的ssh公钥到master的SSH公钥目录

master机器:

cp authorized_keys ~/ssh_keys/authorized_keys01

Slave1:

scp authorized_keys hadoop@master:/home/hadoop/ssh_keys/authorized_keys02

Slave2:

scp authorized_keys hadoop@master:/home/hadoop/ssh_keys/authorized_keys03

将master机器进入SSH公钥目录

cd ~/ssh_keys/

将master机器公钥复制到公共公钥

cp authorized_keys01 authorized_keys

将slave公钥插入公共公钥中

cat authorized_keys02 >> authorized_keys

cat authorized_keys03 >> authorized_keys

最后查看公共公钥内容是否正确

cat authorized_keys

注:所有机器公钥的内容组合在一起就是公共公钥

将公共公钥覆盖掉master机器的本机公钥

cp authorized_keys ~/.ssh/authorized_keys

将公共公钥覆盖掉slave的公钥

scp authorized_keys hadoop@slave1:/home/hadoop/.ssh/authorized_keys

scp authorized_keys hadoop@slave2:/home/hadoop/.ssh/authorized_keys

每台机器都需要更改文件权限

sudo chmod 600 ~/.ssh/authorized_keys

四、scala的安装与配置

1.Scala安装与配置

回到根目录解压安装文件到scala

sudo mkdir /usr/scala

sudo tar -zxf ~/setup/scala-2.11.8.tar.gz -C /usr/scala

2.配置Slave的scala

//将scala目录发送到slave1上

scp -r /usr/scala hadoop@slave1:/home/hadoop

sudo mv scala/ /usr/

//将scala目录发送到slave2上

scp -r /usr/scala hadoop@slave2:/home/hadoop

sudo mv scala/ /usr/

3.配置环境变量

每台机器都要操作

//配置环境变量

sudo nano ~/.bashrc

export SCALA_HOME=/usr/scala/scala-2.11.8

export PATH=SCALAHOME/bin:PATH

source ~/.bashrc

4.验证

scala -version

五、安装JDK

1. 创建JDK目录

sudo mkdir /usr/java

2. 解压jdk压缩包到安装目录

sudo tar -zxf jdk-8u121-linux-x64.tar.gz -C /usr/java/

//将jdk目录发送到slave2上

scp -r /usr/java hadoop@slave1:/home/hadoop

sudo mv java/ /usr/

//将jdk目录发送到slave2上

scp -r /usr/java hadoop@slave2:/home/hadoop

sudo mv java/ /usr/

3.打开环境变量文件

sudo nano ~/.bashrc

在文件末尾添加环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_121

export JRE_HOME=JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib:JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH

保存退出

source ~/.bashrc

4.测试是否配置成功

java -version

六、Hadoop的安装与配置

1. 配置Hadoop环境变量

1.1展开hadoop安装包

在master解压主目录中的hadoop压缩包

sudo tar -zxf hadoop-2.6.5.tar.gz

sudo mv hadoop-2.6.5 hadoop

sudo chmod -R +x ~/hadoop

2. 配置Hadoop集群配置文件

1222.1修改hadoop-env.sh配置文件

修改hadoop-env.sh中的JAVA_HOME路径

sudo nano ~/hadoop/etc/hadoop/hadoop-env.sh

修改JAVA_HOME路径

export JAVA_HOME=/usr/java/jdk1.8.0_121

保存后退出

2.2修改core-site.xml配置文件

创建Hadoop的默认临时路径

sudo mkdir ~/hadoop/temp

修改每台机器上的core-site.xml

sudo nano ~/hadoop/etc/hadoop/core-site.xml

在加入

fs.defaultFS

hdfs://master:9000

hadoop.tmp.dir

/home/hadoop/hadoop/temp

2.3修改mapred-site.xml配置文件

将mapred-site.xml.template拷贝到mapred-site.xml

sudo cp ~/hadoop/etc/hadoop/mapred-site.xml.template ~/hadoop/etc/hadoop/mapred-site.xml

修改mapred-site.xml

sudo nano ~/hadoop/etc/hadoop/mapred-site.xml

在加入

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

master:10020

mapreduce.jobhistory.webapp.address

master:19888

2.4修改hdfs-site.xml配置文件

修改hdfs-site.xml

sudo nano ~/hadoop/etc/hadoop/hdfs-site.xml

在加入

dfs.replication

1

dfs.permissions

false

dfs.namenode.secondary.http-address

master:9001

dfs.webhdfs.enabled

true

dfs.safemode.threshold.pct

0

2.5修改yarn-env.sh配置文件

修改yarn-env.sh

sudo nano ~/hadoop/etc/hadoop/yarn-env.sh

在# export JAVA_HOME=/home/y/libexec/jdk1.6.0/之上插入

export JAVA_HOME=/usr/java/jdk1.8.0_121

2.6修改yarn-site.xml配置文件

修改yarn-site.xml

sudo nano ~/hadoop/etc/hadoop/yarn-site.xml

在加入

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.resourcemanager.address

master:8032

yarn.resourcemanager.scheduler.address

master:8030

yarn.resourcemanager.resource-tracker.address

master:8031

yarn.resourcemanager.admin.address

master:8033

yarn.resourcemanager.webapp.address

master:8088

2.7修改masters和slaves配置文件

cd ~/hadoop/etc/hadoop

配置masters

sudo nano masters

加入:

master

配置slaves

sudo nano ~/hadoop/etc/hadoop/slaves

//将hadoop目录发送到slave1上

scp -r ~/hadoop hadoop@slave1:/home/hadoop

//将hadoop目录发送到slave2上

scp -r ~/hadoop hadoop@slave2:/home/hadoop

2.8配置hadoop环境变量

每台机器都需要操作

进入环境变量配置文件

sudo nano ~/.bashrc

注:在最后加入

export HADOOP_HOME=/home/hadoop/hadoop

export PATH=HADOOPHOME/bin:PATH

source ~/.bashrc

3. 格式化Hadoop集群的HDFS

在master主机上运行

格式化节点(首次启动)

hadoop namenode -format

问题:

移除安全模式

hadoop dfsadmin -safemode leave

七、spark的安装与配置

1.安装配置

解压安装文件到scala

sudo tar -zxf spark-2.0.0-bin-hadoop2.6.tgz

sudo mv spark-2.0.0-bin-hadoop2.6 spark

生成配置文件

sudo cp ~/spark/conf/spark-env.sh.template ~/spark/conf/spark-env.sh

sudo cp ~/spark/conf/slaves.template ~/spark/conf/slaves

修改配置文件spark-env.sh

sudo nano ~/spark/conf/spark-env.sh

export SPARK_MASTER_IP=master

export SPARK_MASTER_PORT=7077

export SPARK_MASTER_WEBUI_PORT=8080

export SPARK_WORKER_CORES=2

export SPARK_WORKER_MEMORY=4g

export SPARK_EXECUTOR_MEMORY=4g

export SPARK_DRIVER_MEMORY=4g

修改配置文件slaves

sudo nano ~/spark/conf/slaves

添加slave机器的hostname

2.配置Slave的spark

//将spark目录发送到slave1上

scp -r ~/spark hadoop@slave1:/home/hadoop

//将spark目录发送到slave2上

scp -r ~/spark hadoop@slave2:/home/hadoop

每台机器执行

sudo chmod -R +x spark

3.配置环境变量

每台机器都要操作

//配置环境变量

sudo nano ~/.bashrc

export SPARK_HOME=/home/hadoop/spark

export PATH=SPARKHOME/bin:PATH

export HADOOP_CONF_DIR=HADOOPHOME/etc/hadoopexportHDFSCONFDIR={HADOOP_HOME}/etc/hadoop

export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop

source ~/.bashrc

八、Sqoop的安装与配置

1.安装与配置

在master上操作

解压安装文件到sqoop

sudo tar -zxf ~/sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz -C ~/

sudo mv sqoop-1.4.4.bin__hadoop-2.0.4-alpha sqoop

将mysql的驱动包拷贝到sqoop/lib下

sudo cp postgresql-9.0-801.jdbc4.jar sqoop/lib/

修改配置文件

sudo cp ~/sqoop/conf/sqoop-env-template.sh ~/sqoop/conf/sqoop-env.sh

sudo nano ~/sqoop/conf/sqoop-env.sh

修改下列值:

export HADOOP_COMMON_HOME=/home/hadoop/hadoop

export HADOOP_MAPRED_HOME=/home/hadoop/hadoop

以下未安装,如果安装的话,可配置

export HBASE_HOME=/home/hadoop/hbase

export HIVE_HOME=/home/hadoop/hive

export ZOOCFGDIR=/home/hadoop/zookeeper

修改权限

sudo chmod -R +x sqoop

2.启动并验证Sqoop

cd ~/sqoop/bin

./sqoop help

问题:

1、Error: parquet.bytes.CapacityByteArrayOutputStream.(II)V

2、

九、Zookeeper的安装与配置

1.安装

解压安装文件到zookeeper

sudo tar -zxvf ~/setup/zookeeper-3.4.5-cdh5.0.0.tar -C ~/

重命名

sudo mv ~/zookeeper-3.4.5-cdh5.0.0 ~/zookeeper

2. 配置

创建数据目录tmp/data

sudo mkdir -p ~/zookeeper/tmp/data

将zoo_sample.cfg复制到zoo.cfg

sudo cp ~/zookeeper/conf/zoo_sample.cfg ~/zookeeper/conf/zoo.cfg

编辑zookeeper配置文件

sudo nano ~/zookeeper/conf/zoo.cfg

改写dataDir目录位置

dataDir=/home/hadoop/zookeeper/tmp/data

告知zookeeper集群信息

2888是zookeeper服务之间通信的端口

3888是zookeeper与其他应用程序通信的端口

server.0=master:2888:3888

server.1=slave1:2888:3888

server.2=slave2:2888:3888

3. 将安装文件发送到slave节点

//将zookeeper目录发送到slave1上

scp -r ~/zookeeper hadoop@slave1:/home/hadoop

//将zookeeper目录发送到slave2上

scp -r ~/zookeeper hadoop@slave2:/home/hadoop

在master上运行:

sudo nano ~/zookeeper/tmp/data/myid

//输入

0

保存退出

在slave1上运行:

ssh slave1

sudo nano ~/zookeeper/tmp/data/myid

//输入

1

保存退出

//退出slave1

exit

在slave2上运行:

ssh slave2

sudo nano ~/zookeeper/tmp/data/myid

//输入

2

保存退出

//退出slave2

exit

每台机器都要操作

sudo chmod 757 -R ~/zookeeper

启动zookeeper

每台机器都要启动

cd ~/zookeeper/bin

./zkServer.sh start

关闭zookeeper

每台机器都要关闭

cd ~/zookeeper/bin

./zkServer.sh stop

验证机器状态

可以通过ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是Leader,或是Follower),如下所示,是在ZooKeeper集群中的每个结点上查询的结果。

cd ~/zookeeper/bin

./zkServer.sh status

注:只有在集群所有机器都启动的情况下才可以查看

十、Hive的安装与配置

1. hive的安装

1.1. 环境要求

Hive是基于hadoop 的数据仓库,是建立在hadoop上的数据仓库基础架构,首先需要hadoop和jdk的支持,启动好hadoop

1.2. 安装包下载

下载:从apache官网下载新版本hive,要注意和hadoop版本的匹配。

http://my.oschina.net/u/204498/blog/51978

1.3. 安装

将下载好的Hive安装包上传到linux ,解压

tar –zxvf apache-hive-1.2.0-bin.tar.gz

1.4. 启动

进入hive/bin 目录,直接运行hive命令,即可进入hive提示符。

Hive不需要任何配置就可以运行,因为它可以通过

sudo cp hive-env.sh.template hive-env.sh

sudo nano hive-env.sh

//可导入

export HADOOP_USER_CLASSPATH_FIRST=true

sudo cp mysql-connector-java-5.1.38-bin.jar ~/hive/lib/

1.hive 与关系型数据库的整合

Hive在 conf 目录下提供了一个配置文件模版 hive-default.xml.template 供我们修改。而 Hive会默认加载 hive-site.xml 配置文件。因此,拷贝一份。

sudo cp hive-default.xml.template hive-site.xml

2.1修改Hive配置文件hive-site.xml,修改后的结果如下所示:

sudo nano hive-site.xml

javax.jdo.option.ConnectionURL

jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true

JDBC connect string for a JDBC metastore

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root123456</value>
<description>password to use against metastore database</description>
</property>


hive.metastore.uris

thrift://master:9083

IP address (or fully-qualified domain name) and port of the metastore host

hive的启动

./hive –service metastore &

./hive

问题解决:

//sqoop 导入数据到hive 格式parquet

此时环境变量里面必须配置:

sudo nano ~/.bashrc

export HIVE_HOME=/home/hadoop/hive

export PATH=HIVEHOME/bin:PATH

export HCAT_HOME=/home/hadoop/hive/hcatalog

source ~/.bashrc

否则会出现Check that JARs for hive datasets are on the classpath错误

./sqoop import –connect jdbc:postgresql://192.168.1.104:5432/ezdc –username adempiere –password adempiere –table ga_jnlkxx –fields-terminated-by ‘\t’ –verbose -m 1 –hive-import –hive-database test –hive-table ga_jnlkxx1 –as-parquetfile

十一、elasticsearch的安装与配置

1.安装与配置

在elasticsearch的官网下载2.3.3版本

https://www.elastic.co/downloads

1.1解压

sudo tar -zxf elasticsearch-2.3.3.tar.gz

sudo mv elasticsearch-2.3.3 elasticsearch

1.2 配置elasticsearch

sudo nano elasticsearch/config/elasticsearch.yml

每个节点都需要配置cluster.name

cluster.name: elasticsearch

Master节点配置

node.name: master

Slave1节点配置

node.name: slave1

Slave2节点配置

node.name: slave2

每个节点都配置如下:

Elasticsearch存放数据的目录

path.data: /home/hadoop/elasticsearch/data

Elasticsearch存放系统日志的目录

path.logs: /home/hadoop/elasticsearch/logs

配置节点的IP地址:

master:network.host: 192.168.1.114

slave1:network.host: 192.168.1.116

slave2:network.host: 192.168.1.117

配置集群发现:

Master:discovery.zen.ping.unicast.hosts: [“slave1”, “slave2”]

slave1:discovery.zen.ping.unicast.hosts: [“master”, “slave2”]

slave2:discovery.zen.ping.unicast.hosts: [“slave1”, “master”]

配置elasticsearch的分片和副本数

index.number_of_shards: 1

index.number_of_replicas: 0

Note:注意:

上述两个属性的设置直接影响集群中索引和搜索操作的执行,假 设有足够的机器来持有碎片和副本,那么可以按如下规则设置这 两个值:

- 拥有更多的碎片可以提升索引执行能力,并允许通过机器分发 一个 大型的索引;

- 拥有更多的副本能够提升搜索执行能力以及集群能力,但副本 增多,会降低插入和删除操作的效率。

- 对于一个索引来说,number_of_shards一旦设置 将不能修改,而 number_of_replicas可以使用索 引更新设置API在任何时候被增加 或者 减少;

节点角色配置

如果配置为true,该节点起到路由和负载均衡的作用

node.master: true

如果配置为true,该节点为存放数据的目录

node.data: true

Note:注意:

master和data同时配置会产生一些奇异的效果:

当master为false,而data为true时,会对该节点产生严重负荷;

当master为true,而data为false时,该节点作为一个协调者;

当master为false,data也为false时,该节点就变成了一个负载均衡器。

1.3 安装head插件

cd elasticsearch/bin

sudo plugin install mobz/elasticsearch-head

1.4 修改elasticsearch默认分词器

https://github.com/medcl/elasticsearch-analysis-ik

可以从上述网址去github上面下载相对应的版本的源码,上有说明,可详细查阅。然后使用maven编译,或者去release去查看相对应的版本

1.4.1 首先解压下载好的IK分词插件包

sudo tar -zxf elasticsearch-analysis-ik-1.9.3.tar.gz

1.4.2 将config拷贝到es的config中的ik目录下面,如果没有创建

sudo mkdir -p elasticsearch/config/ik

sudo mv elasticsearch-analysis-ik-1.9.3/config elasticsearch/config/ik

1.4.3 将相关的jar文件和config文件拷贝到es的lib下面

sudo mv elasticsearch-analysis-ik-1.9.3/*.jar elasticsearch/lib

1.4.4 在将plugin-descriptor.properties文件拷贝到es的plugins的ik目录下面

sudo mkdir -p plugins/ik

sudo mv elasticsearch-analysis-ik-1.9.3/plugin-descriptor.properties

elasticsearch/plugins/ik

然后修改elasticsearch/config/elasticsearch.yml 在文件尾部追加如下:

index:

analysis:

analyzer:

ik:

alias: [ik_analyzer]

type: org.elasticsearch.index.analysis.IkAnalyzerProvider

ik_max_word:

type: ik

use_smart: false

ik_smart:

type: ik

use_smart: true

index.analysis.analyzer.default.type: ik

jps 查看elasticsearch进程号 kill -2 pid 关闭elasticsearch

启动elasticsearch ./elasticsearch/bin/elasticsearch -d

1.4.5 可以通过webUI查看

http://IP:9200/_plugin/head/

十四、Alluxio的安装与配置

1. 安装与配置

sudo tar -zxf alluxio-1.3.0-bin.tar.gz -C ~/

sudo mv alluxio-1.3.0 alluxio

cd alluxio/conf

sudo cp alluxio-env.sh.template alluxio-env.sh

sudo nano alluxio-env.sh

在文件尾部加上:

export ALLUXIO_HOME=/home/hadoop/alluxio

export ALLUXIO_MASTER_HOSTNAME=master

export ALLUXIO_WORKER_MEMORY_SIZE=1GB

export ALLUXIO_UNDERFS_ADDRESS=hdfs://master:9000/alluxio/

配置worker节点:

sudo nano ~/alluxio/conf/workers

添加如下:

master

slave1

slave2

2.配置环境变量

sudo nano ~/.bashrc

注:在最后加入

export ALLUXIO_HOME=/home/hadoop/alluxio

export PATH=ALLUXIOHOME/bin:PATH

source ~/.bashrc

sudo chmod -R +x alluxio

3.启动

格式化:

alluxio format

在master节点启动:

./bin/alluxio-start.sh local

在worker节点启动

./alluxio-start.sh worker

访问的http://master:19999看到Alluxio的master

访问http://master:30000看到当前worker的信息。

十五、hive挂载alluxio

vi /etc/hadoop/conf/core-site.xml

property>

fs.alluxio.impl

alluxio.hadoop.FileSystem

fs.AbstractFileSystem.alluxio.impl

alluxio.hadoop.AlluxioFileSystem

<property>
<name>alluxio.user.file.writetype.default</name>
<value>CACHE_THROUGH</value>
</property>


vi /etc/hive/conf/hive-site.xml

fs.defaultFS

alluxio://master:19998

alluxio.user.file.writetype.default

CACHE_THROUGH

vi /etc/hadoop/conf/hadoop-env.sh

export HADOOP_CLASSPATH=/home/master/alluxio/core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar:${HADOOP_CLASSPATH}

./bin/alluxio fs mkdir /tmp

./bin/alluxio fs mkdir /user/hive/warehouse

./bin/alluxio fs chmod 775 /tmp

./bin/alluxio fs chmod 775 /user/hive/warehouse

CREATE TABLE IF NOT EXISTS test_alluxio_hive_tbl (id INT,word STRING)ROW FORMAT DELIMITED FIELDS TERMINATED BY ” ” LINES TERMINATED BY “\n”;

LOAD DATA LOCAL INPATH ‘hive-test.txt’ OVERWRITE INTO TABLE test_alluxio_hive_tbl;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: