1 下载软件包
hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz
hive下载地址: http://archive.apache.org/dist/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz
sqoop下载地址: https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
spark 下载地址:https://archive.apache.org/dist/spark/spark-2.4.8/spark-2.4.8-bin-hadoop2.7.tgz
scala 下载地址:http://distfiles.macports.org/scala2.11/scala-2.11.12.tgz
jdk 下载地址: https://repo.huaweicloud.com/java/jdk/8u192-b12/jdk-8u192-linux-x64.tar.gz
2 安装hadoop
解压hadoop,jdk软件包
#cd 到hadoop软件包的目录
cd /usr/software/
#将jdk解压/ope/mode目录
tar -zxvf jdk-8u192-linux-x64.tar.gz -C /usr/java/j
#将hadoop解压/ope/mode目录
tar -zxvf hadoop-2.7.6.tar.gz -C /opt/mode/
将Java,hadoop配置到path环境变量
#编辑/etc/profile
vim /etc/profile
#将jdk配置到path
JAVA_HOME=/usr/java/jdk1.8.0_192
JRE_HOME=/usr/java/jdk1.8.0_192/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
#配置hadoop
export HADOOP_HOME=/opt/mode/hadoop-2.7.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#刷新环境变量
source /etc/profile
测试jdk
java -version
测试hadoop
hadoop version
配置hadoop 要修改hadoop安装目录中的etc/hadoop下的5个文件
hadoop-env.sh
#编辑hadoop-env.sh
vim hadoop-env.sh
#设置为jdk的安装目录
export JAVA_HOME=/usr/java/jdk1.8
core-site.xml
#添加
<property>
<name>fs.defaultFS</name>
<!-- 这里填的是你自己的ip,端口默认-->
<value>hdfs://192.168.99.199:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!-- 这里填的是你自定义的hadoop工作的目录,端口默认-->
<value>/opt/mode/hadoop-2.7.6/tmp</value>
</property>
hdfs-site.xml
#添加
<!-- 指定HDFS保存数据副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
mapred-site.xml
#添加
<!-- 告诉hadoop以后MR运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
#添加
<property>
<name>yarn.resourcemanager.hostname</name>
<!-- 自己的ip端口默认 -->
<value>192.168.99.199</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
格式化hadoop文件格式
#如果不执行该命令将无法打开hdfs 50070端口的管理页面
hadoop namenode -format
为hadoop创建一个账号
#创建用户名为hadoop的账号
useradd hadoop
#为hadoop账号设置密码
passwd hadoop
#修改module、software文件夹的所有者和所属组均为hadoop用户
chown -R /opt/mode
#切换为hadoop账号
su - hadoop
#启动hadoop
start-dfs.sh
start-yarn.sh
在浏览器用centos的IP+50070访问
3 安装hive
解压hive软件包
#cd 到hive软件包的目录
cd /usr/software/
#将hive解压/ope/mode目录
tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/mode/
配置环境变量
vim /etc/profile
#配置hive
export HIVE_HOME=/opt/mode/apache-hive-2.3.7-bin
export PATH=$PATH:$HIVE_HOME/bin
#刷新环境变量
source /etc/profile
测试hive
hive
配置hive
cd /opt/mode/apache-hive-2.3.7-bin/conf
vim hive-site.xml
#没有hive-site.xml就创建,添加如下内容
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--存放hive元数据的数据配置-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.99.197:3306/hive_metadata?&createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value> </property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
添加对应版本mysql驱动包到hive的lib目录
格式化数据库及验证
# 格式化数据库 (格式化后会在你配置的数据里生成hive元数据存放库)
schematool -dbType mysql -initSchema
# 启动hive
hive
# 查看数据库
hive> show databases;
4 配置sqoop
解压sqoop
cd /usr/software
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/mode
配置环境变量
vim /etc/profile #sqoop export SQOOP_HOME=/opt/mode/sqoop-1.4.7.bin__hadoop-2.6.0 export PATH=$PATH:$SQOOP_HOME/bin #刷新环境变量 source /etc/profile
测试sqoop
sqoop help
将对应版本mysql驱动包拷到sqoop的lib目录
将hive/lib中的hive-common.*.jar导入sqoop的lib目录
测试sqoop使用
#遍历test数据库的所有表
sqoop list-databases --username root --password 123456 --connect jdbc:mysql://10.200.110.4:3306/test?characterEncoding=UTF-8
#同步mysql表结构到hive
sqoop create-hive-table --connect jdbc:mysql://192.168.99.197:3306/test --table ticket --username root --password 123456 --hive-table test.ticket --fields-terminated-by '\t' --lines-terminated-by '\n'
#执行上命令出现Sqoop java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
#错误还需呀要将hive的lib目录的hive-common-2.3.3.jar拷贝到sqoop的lib目录
#导入mysql数据ticket表的数据到hdfs
sqoop import --connect jdbc:mysql://192.168.99.197:3306/test --username root --password 123456 --delete-target-dir --target-dir /sqoopTest --fields-terminated-by '\t' --enclosed-by '\"' --table ticket --m 1
#在hive客户端执行命令将hdfs数据导入到hive表里
LOAD DATA INPATH '/sqoopTest*' OVERWRITE INTO TABLE tess.ticket;
ssh免密登陆
1. 在cm节点上,执行 cd ~/.ssh 命令,进入到 .ssh 目录(如此目录不存在,可手动创建),然后执行 ssh-keygen -t rsa 一路回车到结束,然后此目录中会生成一个 id_rsa.pub 公钥文件
2. 在 .ssh 目录中执行 cat id_rsa.pub >> authorized_keys 命令,将公钥追加到 authorized_keys 文件
3. 在 .ssh 目录中执行 chmod 600 authorized_keys 命令,修改权限
配置spark
解压spark
cd /usr/software
tar -zxvf spark-2.4.8-bin-hadoop2.7.tgz -C /opt/mode
配置环境变量
vim /etc/profile
#配置spark
export SPARK_HOME=/opt/mode/spark-2.4.8-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
#刷新环境变量
source /etc/profile
配置scala
cd /usr/software
tar -zxvf scala-2.11.12.tgz -C /opt/mode
配置环境变量
vim /etc/profile
#配置scala
export SCALA_HOME=/opt/mode/scala-2.11.12
export PATH=$PATH:$SCALA_HOME/bin
#刷新环境变量
source /etc/profile
测试spark
[root@node1 shell]# spark-shell
23/01/12 18:48:00 WARN util.Utils: Your hostname, node1 resolves to a loopback address: 127.0.0.1; using 10.0.2.15 instead (on interface eth0)
23/01/12 18:48:00 WARN util.Utils: Set SPARK_LOCAL_IP if you need to bind to another address
23/01/12 18:48:00 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://10.0.2.15:4040
Spark context available as 'sc' (master = local[*], app id = local-1673520498489).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.4.8
/_/
Using Scala version 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_301)
Type in expressions to have them evaluated.
Type :help for more information.
scala>