大数据实践 Hadoop3 Hive Spark完全安装
-
在下载目录下打开终端,移动下载好的文件到
/usr/local
sudo mv 文件名 /usr/local
-
在
/usr/local
中解压文件cd /usr/local sudo tar -zxvf 文件名
-
改个名
sudo mv 文件名 简称
-
安装一些工具
sudo apt-get update sudo apt-get install -y openssh-client openssh-server vim ssh unzip
-
安装java
sudo apt install openjdk-8-jdk openjdk-8-jre
-
配置java环境变量
sudo gedit ~/.bashrc
在最后添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export JRE_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
保存退出后刷新、验证
source ~/.bashrc java -version
Lab 1
Hadoop配置
-
给文件夹添加最高权限
sudo chmod 777 /usr/local/hadoop
-
给hadoop添加环境变量
sudo gedit ~/.bashrc
在最后添加
export HADOOP_HOME=/usr/local/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
保存退出后刷新、验证
source ~/.bashrc hadoop version
-
给HDFS的NameNode和DataNode建立文件夹,建立保存日志的文件夹
mkdir -p $HADOOP_HOME/hdfs/namenode mkdir -p $HADOOP_HOME/hdfs/datanode mkdir $HADOOP_HOME/logs
-
进入hadoop的配置文件夹
cd $HADOOP_HOME/etc/hadoop ls
-
在Hadoop-env.sh中添加JAVA_HOME
gedit hadoop-env.sh
在最后添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
保存退出
-
配置core-site.xml
gedit core-site.xml
在
<configuration>
中添加<property> <name>fs.defaultFS</name> <value>hdfs://bigdata-master:9000/</value> </property>
保存退出
-
配置hdfs-site.xml
gedit hdfs-site.xml
在
<configuration>
中添加<property> <name>dfs.namenode.name.dir</name> <value>file:///usr/local/hadoop/hdfs/namenode</value> <description>NameNode directory for namespace and transaction logs storage.</description> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///usr/local/hadoop/hdfs/datanode</value> <description>DataNode directory</description> </property> <property> <name>dfs.replication</name> <value>2</value> </property>
保存退出
-
配置mapred-site.xml
gedit mapred-site.xml
在
<configuration>
中添加<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property>
保存退出
-
配置yarn-site.xml
gedit yarn-site.xml
在
<configuration>
中添加<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata-master</value> </property>
保存退出
-
调整log level (optional)
gedit log4j.properties
在最后添加
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
保存退出
-
免密码登陆
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
-
初始化Namenode
hdfs namenode -format
-
重启一下ssh
sudo /etc/init.d/ssh restart
-
运行hadoop
start-all.sh
-
查看进程
jps
打开浏览器,地址栏输入
localhost:9870
HDFS操作
-
在图形界面的Utilities-Browse the file system可以看到可视化的HDFS文件目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y3LvqMsR-1604631818431)(/Users/yiger/Library/Application Support/typora-user-images/截屏2020-11-05 下午2.54.01.png)]
-
添加一个目录
hadoop fs -mkdir /user/用户名/wordcount/input
-
上传一个文件到该HDFS目录中(以README.txt为例)
cd $HADOOP_HOME hadoop fs -copyFromLocal README.txt /user/用户名/wordcount/input # hadoop fs -ls -R
MapReduce操作 (optional)
Lab2
Hive配置
-
给文件夹添加最高权限
sudo chmod 777 /usr/local/hive
-
给hadoop添加环境变量
sudo gedit ~/.bashrc
在最后添加
export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin
保存退出后刷新、验证
source ~/.bashrc hive --version
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V43bAb7q-1604631818434)(/Users/yiger/Desktop/截屏2020-11-05 下午3.26.41.png)]
-
进入hive的配置文件夹
cd $HIVE_HOME/conf ls
-
重命名模板文件并复制一个用户自定义配置文件hive-site.xml
mv hive-default.xml.template hive-default.xml cp hive-default.xml hive-site.xml
-
编辑hive-site.xml
gedit hive-site.xml
在
<configuration>
中添加<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>密码</value> <description>password to use against metastore database</description> </property>
密码设置尽量复杂,如:Mysql@123
保存后退出
-
安装mysql
sudo apt-get install mysql-server
进入mysql shell创建用户并授权
sudo mysql
查看当前database、用户
show databases; select user from mysql.user;
如果有Navicat、DataGrip等工具可以建立一个允许全网访问的用户’external_test’@’%'并在本机上尝试连接
添加一个hive用户并授最高权限,检查用户表
grant all privileges on *.* to 'hive'@'localhost' identified by '密码'; select user from mysql.user;
退出
exit;
-
配置mysql jdbc
在虚拟机中打开https://dev.mysql.com/downloads/connector/j/选择对应版本下载
-
解压到/usr/local/mysql_jdbc目录
sudo dpkg-deb --extract 文件名 /usr/local/mysql_jdbc
进入解压好的文件夹并找到jar包
cd /usr/local/mysql_jdbc/usr/share/java ls
把这个jar包拷贝到hive里
cp 文件名 /usr/local/hive/lib
-
重启mysql并进入shell
service mysql stop service mysql start sudo mysql
创建数据库
create database hive; show databases;
-
删除版本冲突的包
cd /usr/local/hive/lib rm -rf guava-19.0.jar
利用schematool初始化元数据配置 更改到mysql中
schematool -dbType mysql -initSchema
启动hive
hive
Hive操作
-
查看数据库
show databases;
-
创建数据库
create database test_hive;
在hdfs中查看
-
创建表
create table if not exists usr( id bigint, name string, age int);
-
查看表
show tables in test_hive;
-
删库
drop database test_hive;
Lab3
Spark配置
-
给文件夹添加最高权限
sudo chmod 777 /usr/local/spark
-
给hadoop添加环境变量
sudo gedit ~/.bashrc
在最后添加
export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin
保存退出后刷新
source ~/.bashrc
-
进入spark的配置文件夹
cd $SPARK_HOME/conf ls
使用三个模板文件
mv spark-defaults.conf.template spark-defaults.conf mv slaves.template slaves mv spark-env.sh.template spark-env.sh
-
启动spark并检验
cd /usr/local/spark/sbin ./start-all.sh jps
Lab4
SparkSQL配置
-
进入spark的配置文件夹
cd $SPARK_HOME/conf
打开spark-defaults.conf
gedit spark-defaults.conf
在最后添加
spark.sql.warehouse.dir hdfs://localhost:9000/user/hive/warehouse
保存退出
-
复制hadoop、hive配置文件到spark中
cp /usr/local/hive/conf/hive-site.xml /usr/local/spark/conf cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/spark/conf cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/spark/conf
复制jdbc到spark中
cp /usr/local/hive/lib/mysql-connector-java-x.x.x.jar /usr/local/spark/jars
-
启动spark-sql
spark-sql
SparkSQL操作
-
查看数据库
show databases;
-
创建数据库
create database test_sparksql;
-
在hdfs中查看
pyspark操作
-
进入pyspark
pyspark
-
统计词频
textFile = spark.read.text("wordcount/input/README.txt") textFile.count()
-
使用spark.sql执行sql语句
df = spark.sql("show databases") df.show()
-
建库
spark.sql("create database test_pyspark_sql")
-
在hdfs中查看